Skip to content

Files

Latest commit

749fafa · Aug 21, 2024

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Aug 21, 2024
Nov 14, 2023
Apr 11, 2024

Library Instrumentation for gRPC 1.6.0+

Provides OpenTelemetry instrumentation for gRPC.

Quickstart

Add the following dependencies to your project

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")

Usage

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());
}