Provides OpenTelemetry instrumentation for gRPC.
Replace OPENTELEMETRY_VERSION
with the latest release.
For Maven, add the following to your pom.xml
dependencies:
<dependencies>
<dependency>
<groupId>io.opentelemetry.instrumentation</groupId>
<artifactId>opentelemetry-grpc-1.6</artifactId>
<version>OPENTELEMETRY_VERSION</version>
</dependency>
</dependencies>
For Gradle, add the following to your dependencies:
implementation("io.opentelemetry.instrumentation:opentelemetry-grpc-1.6:OPENTELEMETRY_VERSION")
The instrumentation library provides the implementation of ClientInterceptor
and ServerInterceptor
to provide OpenTelemetry-based spans and context propagation.
// For client-side, attach the interceptor to your channel builder.
void configureClientInterceptor(Opentelemetry opentelemetry, NettyChannelBuilder nettyChannelBuilder) {
GrpcTelemetry grpcTelemetry = GrpcTelemetry.create(opentelemetry);
nettyChannelBuilder.intercept(grpcTelemetry.newClientInterceptor());
}
// For server-side, attatch the interceptor to your service.
ServerServiceDefinition configureServerInterceptor(Opentelemetry opentelemetry, ServerServiceDefinition serviceDefinition) {
GrpcTelemetry grpcTelemetry = GrpcTelemetry.create(opentelemetry);
return ServiceInterceptors.intercept(serviceDefinition, grpcTelemetry.newServerInterceptor());
}