Class GrpcOpenTelemetry

java.lang.Object
io.grpc.opentelemetry.GrpcOpenTelemetry

public final class GrpcOpenTelemetry extends Object
The entrypoint for OpenTelemetry metrics functionality in gRPC.

GrpcOpenTelemetry uses OpenTelemetry APIs for instrumentation. When no SDK is explicitly added no telemetry data will be collected. See io.opentelemetry.sdk.OpenTelemetrySdk for information on how to construct the SDK.

  • Field Details

    • STOPWATCH_SUPPLIER

      private static final com.google.common.base.Supplier<com.google.common.base.Stopwatch> STOPWATCH_SUPPLIER
    • ENABLE_OTEL_TRACING

      static boolean ENABLE_OTEL_TRACING
    • openTelemetrySdk

      private final io.opentelemetry.api.OpenTelemetry openTelemetrySdk
    • meterProvider

      private final io.opentelemetry.api.metrics.MeterProvider meterProvider
    • meter

      private final io.opentelemetry.api.metrics.Meter meter
    • enableMetrics

      private final Map<String,Boolean> enableMetrics
    • disableDefault

      private final boolean disableDefault
    • resource

      private final OpenTelemetryMetricsResource resource
    • openTelemetryMetricsModule

      private final OpenTelemetryMetricsModule openTelemetryMetricsModule
    • openTelemetryTracingModule

      private final OpenTelemetryTracingModule openTelemetryTracingModule
    • optionalLabels

      private final List<String> optionalLabels
    • sink

      private final io.grpc.MetricSink sink
  • Constructor Details

  • Method Details

    • newBuilder

      public static GrpcOpenTelemetry.Builder newBuilder()
    • getOpenTelemetryInstance

      io.opentelemetry.api.OpenTelemetry getOpenTelemetryInstance()
    • getMeterProvider

      io.opentelemetry.api.metrics.MeterProvider getMeterProvider()
    • getMeter

      io.opentelemetry.api.metrics.Meter getMeter()
    • getResource

    • getEnableMetrics

      Map<String,Boolean> getEnableMetrics()
    • getOptionalLabels

      List<String> getOptionalLabels()
    • getSink

      io.grpc.MetricSink getSink()
    • getTracer

      io.opentelemetry.api.trace.Tracer getTracer()
    • registerGlobal

      @ExperimentalApi("https://github.com/grpc/grpc-java/issues/10591") public void registerGlobal()
      Registers GrpcOpenTelemetry globally, applying its configuration to all subsequently created gRPC channels and servers.
    • configureChannelBuilder

      public void configureChannelBuilder(io.grpc.ManagedChannelBuilder<?> builder)
      Configures the given ManagedChannelBuilder with OpenTelemetry metrics instrumentation.
    • configureServerBuilder

      public void configureServerBuilder(io.grpc.ServerBuilder<?> serverBuilder)
      Configures the given ServerBuilder with OpenTelemetry metrics instrumentation.
      Parameters:
      serverBuilder - the server builder to configure
    • createMetricInstruments

      static OpenTelemetryMetricsResource createMetricInstruments(io.opentelemetry.api.metrics.Meter meter, Map<String,Boolean> enableMetrics, boolean disableDefault)
    • isMetricEnabled

      static boolean isMetricEnabled(String metricName, Map<String,Boolean> enableMetrics, boolean disableDefault)