Class GrpcOpenTelemetry


  • public final class GrpcOpenTelemetry
    extends java.lang.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 Detail

      • 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 java.util.Map<java.lang.String,​java.lang.Boolean> enableMetrics
      • disableDefault

        private final boolean disableDefault
      • optionalLabels

        private final java.util.List<java.lang.String> optionalLabels
      • sink

        private final io.grpc.MetricSink sink
    • Method Detail

      • getOpenTelemetryInstance

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

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

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

        java.util.Map<java.lang.String,​java.lang.Boolean> getEnableMetrics()
      • getOptionalLabels

        java.util.List<java.lang.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,
                                                                    java.util.Map<java.lang.String,​java.lang.Boolean> enableMetrics,
                                                                    boolean disableDefault)
      • isMetricEnabled

        static boolean isMetricEnabled​(java.lang.String metricName,
                                       java.util.Map<java.lang.String,​java.lang.Boolean> enableMetrics,
                                       boolean disableDefault)