Class OpenTelemetryMetricsModule


  • final class OpenTelemetryMetricsModule
    extends java.lang.Object
    Provides factories for StreamTracer that records metrics to OpenTelemetry.

    On the client-side, a factory is created for each call, and the factory creates a stream tracer for each attempt. If there is no stream created when the call is ended, we still create a tracer. It's the tracer that reports per-attempt stats, and the factory that reports the stats of the overall RPC, such as RETRIES_PER_CALL, to OpenTelemetry.

    On the server-side, there is only one ServerStream per each ServerCall, and ServerStream starts earlier than the ServerCall. Therefore, only one tracer is created per stream/call, and it's the tracer that reports the summary to OpenTelemetry.

    • Field Detail

      • logger

        private static final java.util.logging.Logger logger
      • LOCALITY_LABEL_NAME

        private static final java.lang.String LOCALITY_LABEL_NAME
        See Also:
        Constant Field Values
      • DEFAULT_PER_CALL_METRICS_SET

        public static final com.google.common.collect.ImmutableSet<java.lang.String> DEFAULT_PER_CALL_METRICS_SET
      • stopwatchSupplier

        private final com.google.common.base.Supplier<com.google.common.base.Stopwatch> stopwatchSupplier
      • localityEnabled

        private final boolean localityEnabled
    • Constructor Detail

      • OpenTelemetryMetricsModule

        OpenTelemetryMetricsModule​(com.google.common.base.Supplier<com.google.common.base.Stopwatch> stopwatchSupplier,
                                   OpenTelemetryMetricsResource resource,
                                   java.util.Collection<java.lang.String> optionalLabels,
                                   java.util.List<OpenTelemetryPlugin> plugins)
    • Method Detail

      • getServerTracerFactory

        io.grpc.ServerStreamTracer.Factory getServerTracerFactory()
        Returns the server tracer factory.
      • getClientInterceptor

        io.grpc.ClientInterceptor getClientInterceptor​(java.lang.String target)
        Returns the client interceptor that facilitates OpenTelemetry metrics reporting.
      • recordMethodName

        static java.lang.String recordMethodName​(java.lang.String fullMethodName,
                                                 boolean isGeneratedMethod)