1818
1919import org .bson .util .annotations .Immutable ;
2020
21+ import java .text .DecimalFormat ;
2122import java .util .Collections ;
2223import java .util .HashSet ;
2324import java .util .Map ;
3233import static com .mongodb .ServerType .ShardRouter ;
3334import static com .mongodb .ServerType .StandAlone ;
3435import static com .mongodb .ServerType .Unknown ;
35- import static java .util .concurrent .TimeUnit .MILLISECONDS ;
36- import static java .util .concurrent .TimeUnit .NANOSECONDS ;
3736import static org .bson .util .Assertions .notNull ;
3837
3938
@@ -64,7 +63,7 @@ class ServerDescription {
6463 private final int maxMessageSize ;
6564 private final Tags tags ;
6665 private final String setName ;
67- private final long averagePingTimeNanos ;
66+ private final long averageLatencyNanos ;
6867 private final boolean ok ;
6968 private final ServerConnectionState state ;
7069 private final ServerVersion version ;
@@ -86,7 +85,7 @@ static class Builder {
8685 private Tags tags = Tags .freeze (new Tags ());
8786 private String setName ;
8887 private Integer setVersion ;
89- private long averagePingTimeNanos ;
88+ private long averageLatency ;
9089 private boolean ok ;
9190 private ServerConnectionState state ;
9291 private ServerVersion version = new ServerVersion ();
@@ -144,8 +143,8 @@ public Builder tags(final Tags tags) {
144143 return this ;
145144 }
146145
147- public Builder averagePingTime (final long averagePingTime , final TimeUnit timeUnit ) {
148- this .averagePingTimeNanos = timeUnit .toNanos (averagePingTime );
146+ public Builder averageLatency (final long averageLatency , final TimeUnit timeUnit ) {
147+ this .averageLatency = timeUnit .toNanos (averageLatency );
149148 return this ;
150149 }
151150
@@ -355,8 +354,8 @@ public Integer getSetVersion() {
355354 return setVersion ;
356355 }
357356
358- public long getAveragePingTimeNanos () {
359- return averagePingTimeNanos ;
357+ public long getAverageLatencyNanos () {
358+ return averageLatencyNanos ;
360359 }
361360
362361 /**
@@ -469,7 +468,7 @@ public String toString() {
469468 + ", tags=" + tags
470469 + ", setName='" + setName + '\''
471470 + ", setVersion='" + setVersion + '\''
472- + ", averagePingTimeNanos =" + averagePingTimeNanos
471+ + ", averageLatencyNanos =" + averageLatencyNanos
473472 + ", ok=" + ok
474473 + ", state=" + state
475474 + ", version=" + version
@@ -483,11 +482,15 @@ public String getShortDescription() {
483482 + "address=" + address
484483 + ", type=" + type
485484 + (tags .isEmpty () ? "" : tags )
486- + (state == Connected ? (", averagePingTime =" + NANOSECONDS . convert ( averagePingTimeNanos , MILLISECONDS ) + " ms" ) : "" )
485+ + (state == Connected ? (", averageLatency =" + getAverageLatencyFormattedInMilliseconds ( ) + " ms" ) : "" )
487486 + ", state=" + state
488487 + '}' ;
489488 }
490489
490+ private String getAverageLatencyFormattedInMilliseconds () {
491+ return new DecimalFormat ("#0.0" ).format (averageLatencyNanos / 1000.0 / 1000.0 );
492+ }
493+
491494 ServerDescription (final Builder builder ) {
492495 address = notNull ("address" , builder .address );
493496 type = notNull ("type" , builder .type );
@@ -503,7 +506,7 @@ public String getShortDescription() {
503506 tags = builder .tags ;
504507 setName = builder .setName ;
505508 setVersion = builder .setVersion ;
506- averagePingTimeNanos = builder .averagePingTimeNanos ;
509+ averageLatencyNanos = builder .averageLatency ;
507510 ok = builder .ok ;
508511 minWireVersion = builder .minWireVersion ;
509512 maxWireVersion = builder .maxWireVersion ;
0 commit comments