Skip to content

Commit 583ec7c

Browse files
Dhamodhar-DDRDhamodhar Reddy  Dakannagari
andauthored
expose-latency-percentile-metrics-grpc (#92)
Co-authored-by: Dhamodhar Reddy Dakannagari <[email protected]>
1 parent 9dc0c2d commit 583ec7c

File tree

1 file changed

+17
-3
lines changed

1 file changed

+17
-3
lines changed

platform-grpc-service-framework/src/main/java/org/hypertrace/core/serviceframework/grpc/GrpcPlatformServiceContainer.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
import io.grpc.Server;
88
import io.grpc.ServerBuilder;
9+
import io.grpc.Status;
910
import io.grpc.health.v1.HealthCheckRequest;
1011
import io.grpc.health.v1.HealthCheckResponse.ServingStatus;
1112
import io.grpc.health.v1.HealthGrpc;
@@ -25,6 +26,7 @@
2526
import java.util.concurrent.ScheduledExecutorService;
2627
import java.util.concurrent.ScheduledFuture;
2728
import java.util.function.Function;
29+
import java.util.function.UnaryOperator;
2830
import java.util.stream.Collectors;
2931
import java.util.stream.Stream;
3032
import lombok.Value;
@@ -63,7 +65,11 @@ protected void doInit() {
6365
final ServerBuilder<?> inProcessServerBuilder =
6466
InProcessServerBuilder.forName(this.getInProcessServerName())
6567
.intercept(
66-
new MetricCollectingServerInterceptor(PlatformMetricsRegistry.getMeterRegistry()))
68+
new MetricCollectingServerInterceptor(
69+
PlatformMetricsRegistry.getMeterRegistry(),
70+
UnaryOperator.identity(),
71+
timerBuilder -> timerBuilder.publishPercentiles(0.5, 0.75, 0.90, 0.95, 0.99),
72+
Status.Code.OK))
6773
.addService(this.healthStatusManager.getHealthService());
6874
final GrpcServiceContainerEnvironment serviceContainerEnvironment =
6975
this.buildContainerEnvironment(this.grpcChannelRegistry, this.healthStatusManager);
@@ -198,7 +204,11 @@ protected InProcessGrpcChannelRegistry buildChannelRegistry() {
198204
this.getAuthorityInProcessOverrideMap(),
199205
GrpcRegistryConfig.builder()
200206
.defaultInterceptor(
201-
new MetricCollectingClientInterceptor(PlatformMetricsRegistry.getMeterRegistry()))
207+
new MetricCollectingClientInterceptor(
208+
PlatformMetricsRegistry.getMeterRegistry(),
209+
UnaryOperator.identity(),
210+
timerBuilder -> timerBuilder.publishPercentiles(0.5, 0.75, 0.90, 0.95, 0.99),
211+
Status.Code.OK))
202212
.build());
203213
}
204214

@@ -244,7 +254,11 @@ private ServerBuilder<?> initializeBuilder(GrpcPlatformServerDefinition serverDe
244254
}
245255
// add micrometer-grpc interceptor to collect server metrics.
246256
builder.intercept(
247-
new MetricCollectingServerInterceptor(PlatformMetricsRegistry.getMeterRegistry()));
257+
new MetricCollectingServerInterceptor(
258+
PlatformMetricsRegistry.getMeterRegistry(),
259+
UnaryOperator.identity(),
260+
timerBuilder -> timerBuilder.publishPercentiles(0.5, 0.75, 0.90, 0.95, 0.99),
261+
Status.Code.OK));
248262

249263
serverDefinition.getServerInterceptors().forEach(builder::intercept);
250264
return builder;

0 commit comments

Comments
 (0)