diff --git a/census/src/main/java/io/grpc/census/CensusStatsModule.java b/census/src/main/java/io/grpc/census/CensusStatsModule.java index fa72384a3e5..487e49e5005 100644 --- a/census/src/main/java/io/grpc/census/CensusStatsModule.java +++ b/census/src/main/java/io/grpc/census/CensusStatsModule.java @@ -342,6 +342,8 @@ public void outboundMessage(int seqNo) { @Override public void streamClosed(Status status) { + stopwatch.stop(); + roundtripNanos = stopwatch.elapsed(TimeUnit.NANOSECONDS); Deadline deadline = info.getCallOptions().getDeadline(); statusCode = status.getCode(); if (statusCode == Status.Code.CANCELLED && deadline != null) { @@ -353,8 +355,6 @@ public void streamClosed(Status status) { } } attemptsState.attemptEnded(); - stopwatch.stop(); - roundtripNanos = stopwatch.elapsed(TimeUnit.NANOSECONDS); if (inboundReceivedOrClosed.compareAndSet(false, true)) { if (module.recordFinishedRpcs) { // Stream is closed early. So no need to record metrics for any inbound events after this