diff --git a/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViewConstants.java b/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViewConstants.java index 7501438d4..e0eb04466 100644 --- a/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViewConstants.java +++ b/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViewConstants.java @@ -134,6 +134,10 @@ public final class RpcViewConstants { 0.0, 1.0, 2.0, 4.0, 8.0, 16.0, 32.0, 64.0, 128.0, 256.0, 512.0, 1024.0, 2048.0, 4096.0, 8192.0, 16384.0, 32768.0, 65536.0)); + @VisibleForTesting + static final List RETRY_COUNT_PER_CALL_BUCKET_BOUNDARIES = + Collections.unmodifiableList(Arrays.asList(1.0, 2.0, 3.0, 4.0, 5.0, 10.0, 100.0, 1000.0)); + // Use Aggregation.Mean to record sum and count stats at the same time. @VisibleForTesting static final Aggregation MEAN = Aggregation.Mean.create(); @VisibleForTesting static final Aggregation COUNT = Count.create(); @@ -154,6 +158,10 @@ public final class RpcViewConstants { static final Aggregation AGGREGATION_WITH_COUNT_HISTOGRAM = Distribution.create(BucketBoundaries.create(RPC_COUNT_BUCKET_BOUNDARIES)); + @VisibleForTesting + static final Aggregation AGGREGATION_WITH_COUNT_RETRY_HISTOGRAM = + Distribution.create(BucketBoundaries.create(RETRY_COUNT_PER_CALL_BUCKET_BOUNDARIES)); + @VisibleForTesting static final Duration MINUTE = Duration.create(60, 0); @VisibleForTesting static final Duration HOUR = Duration.create(60 * 60, 0); @@ -515,7 +523,7 @@ public final class RpcViewConstants { View.Name.create("grpc.io/client/retries_per_call"), "Number of client retries per call", GRPC_CLIENT_TRANSPARENT_RETRIES_PER_CALL, - AGGREGATION_WITH_COUNT_HISTOGRAM, + AGGREGATION_WITH_COUNT_RETRY_HISTOGRAM, Arrays.asList(GRPC_CLIENT_METHOD)); /** @@ -524,12 +532,12 @@ public final class RpcViewConstants { * @since 0.28 */ public static final View GRPC_CLIENT_TRANSPARENT_RETRIES_VIEW = - View.create( - View.Name.create("grpc.io/client/transparent_retries"), - "Total number of transparent client retries across calls", - GRPC_CLIENT_TRANSPARENT_RETRIES_PER_CALL, - SUM, - Arrays.asList(GRPC_CLIENT_METHOD)); + View.create( + View.Name.create("grpc.io/client/transparent_retries"), + "Total number of transparent client retries across calls", + GRPC_CLIENT_TRANSPARENT_RETRIES_PER_CALL, + SUM, + Arrays.asList(GRPC_CLIENT_METHOD)); /** * {@link View} for total time of delay while there is no active attempt during the client call. @@ -537,12 +545,12 @@ public final class RpcViewConstants { * @since 0.28 */ public static final View GRPC_CLIENT_RETRY_DELAY_PER_CALL_VIEW = - View.create( - View.Name.create("grpc.io/client/retry_delay_per_call"), - "Total time of delay while there is no active attempt during the client call", - GRPC_CLIENT_RETRY_DELAY_PER_CALL, - AGGREGATION_WITH_MILLIS_HISTOGRAM, - Arrays.asList(GRPC_CLIENT_METHOD)); + View.create( + View.Name.create("grpc.io/client/retry_delay_per_call"), + "Total time of delay while there is no active attempt during the client call", + GRPC_CLIENT_RETRY_DELAY_PER_CALL, + AGGREGATION_WITH_MILLIS_HISTOGRAM, + Arrays.asList(GRPC_CLIENT_METHOD)); /** * {@link View} for total retries across all calls, excluding transparent retries. @@ -550,12 +558,12 @@ public final class RpcViewConstants { * @since 0.28 */ public static final View GRPC_CLIENT_RETRIES_VIEW = - View.create( - View.Name.create("grpc.io/client/retries"), - "Total number of client retries across all calls", - GRPC_CLIENT_RETRIES_PER_CALL, - SUM, - Arrays.asList(GRPC_CLIENT_METHOD)); + View.create( + View.Name.create("grpc.io/client/retries"), + "Total number of client retries across all calls", + GRPC_CLIENT_RETRIES_PER_CALL, + SUM, + Arrays.asList(GRPC_CLIENT_METHOD)); /** * {@link View} for transparent retries per call. @@ -563,12 +571,12 @@ public final class RpcViewConstants { * @since 0.28 */ public static final View GRPC_CLIENT_TRANSPARENT_RETRIES_PER_CALL_VIEW = - View.create( - View.Name.create("grpc.io/client/transparent_retries_per_call"), - "Number of transparent client retries per call", - GRPC_CLIENT_TRANSPARENT_RETRIES_PER_CALL, - AGGREGATION_WITH_COUNT_HISTOGRAM, - Arrays.asList(GRPC_CLIENT_METHOD)); + View.create( + View.Name.create("grpc.io/client/transparent_retries_per_call"), + "Number of transparent client retries per call", + GRPC_CLIENT_TRANSPARENT_RETRIES_PER_CALL, + AGGREGATION_WITH_COUNT_RETRY_HISTOGRAM, + Arrays.asList(GRPC_CLIENT_METHOD)); // Rpc server cumulative views. diff --git a/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViews.java b/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViews.java index 6e53df981..8fe0c506f 100644 --- a/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViews.java +++ b/contrib/grpc_metrics/src/main/java/io/opencensus/contrib/grpc/metrics/RpcViews.java @@ -146,12 +146,12 @@ public final class RpcViews { @VisibleForTesting static final ImmutableSet GRPC_CLIENT_RETRY_VIEWS_SET = - ImmutableSet.of( - RpcViewConstants.GRPC_CLIENT_RETRIES_PER_CALL_VIEW, - RpcViewConstants.GRPC_CLIENT_RETRIES_VIEW, - RpcViewConstants.GRPC_CLIENT_TRANSPARENT_RETRIES_PER_CALL_VIEW, - RpcViewConstants.GRPC_CLIENT_TRANSPARENT_RETRIES_VIEW, - RpcViewConstants.GRPC_CLIENT_RETRY_DELAY_PER_CALL_VIEW); + ImmutableSet.of( + RpcViewConstants.GRPC_CLIENT_RETRIES_PER_CALL_VIEW, + RpcViewConstants.GRPC_CLIENT_RETRIES_VIEW, + RpcViewConstants.GRPC_CLIENT_TRANSPARENT_RETRIES_PER_CALL_VIEW, + RpcViewConstants.GRPC_CLIENT_TRANSPARENT_RETRIES_VIEW, + RpcViewConstants.GRPC_CLIENT_RETRY_DELAY_PER_CALL_VIEW); @VisibleForTesting static final ImmutableSet GRPC_SERVER_BASIC_VIEWS_SET = diff --git a/contrib/grpc_metrics/src/test/java/io/opencensus/contrib/grpc/metrics/RpcViewConstantsTest.java b/contrib/grpc_metrics/src/test/java/io/opencensus/contrib/grpc/metrics/RpcViewConstantsTest.java index 749340c73..67a943db3 100644 --- a/contrib/grpc_metrics/src/test/java/io/opencensus/contrib/grpc/metrics/RpcViewConstantsTest.java +++ b/contrib/grpc_metrics/src/test/java/io/opencensus/contrib/grpc/metrics/RpcViewConstantsTest.java @@ -66,6 +66,9 @@ public void testConstants() { 0.0, 1.0, 2.0, 4.0, 8.0, 16.0, 32.0, 64.0, 128.0, 256.0, 512.0, 1024.0, 2048.0, 4096.0, 8192.0, 16384.0, 32768.0, 65536.0) .inOrder(); + assertThat(RpcViewConstants.RETRY_COUNT_PER_CALL_BUCKET_BOUNDARIES) + .containsExactly(1.0, 2.0, 3.0, 4.0, 5.0, 10.0, 100.0, 1000.0) + .inOrder(); // Test Aggregations assertThat(RpcViewConstants.MEAN).isEqualTo(Mean.create()); @@ -82,7 +85,10 @@ public void testConstants() { .isEqualTo( Distribution.create( BucketBoundaries.create(RpcViewConstants.RPC_COUNT_BUCKET_BOUNDARIES))); - + assertThat(RpcViewConstants.AGGREGATION_WITH_COUNT_RETRY_HISTOGRAM) + .isEqualTo( + Distribution.create( + BucketBoundaries.create(RpcViewConstants.RETRY_COUNT_PER_CALL_BUCKET_BOUNDARIES))); // Test Duration and Window assertThat(RpcViewConstants.MINUTE).isEqualTo(Duration.create(60, 0)); assertThat(RpcViewConstants.HOUR).isEqualTo(Duration.create(60 * 60, 0)); diff --git a/contrib/grpc_metrics/src/test/java/io/opencensus/contrib/grpc/metrics/RpcViewsTest.java b/contrib/grpc_metrics/src/test/java/io/opencensus/contrib/grpc/metrics/RpcViewsTest.java index a9295321e..5052ab17a 100644 --- a/contrib/grpc_metrics/src/test/java/io/opencensus/contrib/grpc/metrics/RpcViewsTest.java +++ b/contrib/grpc_metrics/src/test/java/io/opencensus/contrib/grpc/metrics/RpcViewsTest.java @@ -88,7 +88,7 @@ public void registerClientRetryGrpcViews() { FakeViewManager fakeViewManager = new FakeViewManager(); RpcViews.registerClientRetryGrpcViews(fakeViewManager); assertThat(fakeViewManager.getRegisteredViews()) - .containsExactlyElementsIn(RpcViews.GRPC_CLIENT_RETRY_VIEWS_SET); + .containsExactlyElementsIn(RpcViews.GRPC_CLIENT_RETRY_VIEWS_SET); } @Test