Package io.grpc.opentelemetry
Class GrpcOpenTelemetry
java.lang.Object
io.grpc.opentelemetry.GrpcOpenTelemetry
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.
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final boolean(package private) static booleanprivate final io.opentelemetry.api.metrics.Meterprivate final io.opentelemetry.api.metrics.MeterProviderprivate final OpenTelemetryMetricsModuleprivate final io.opentelemetry.api.OpenTelemetryprivate final OpenTelemetryTracingModuleprivate final OpenTelemetryMetricsResourceprivate final io.grpc.MetricSinkprivate static final com.google.common.base.Supplier<com.google.common.base.Stopwatch> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidconfigureChannelBuilder(io.grpc.ManagedChannelBuilder<?> builder) Configures the givenManagedChannelBuilderwith OpenTelemetry metrics instrumentation.voidconfigureServerBuilder(io.grpc.ServerBuilder<?> serverBuilder) Configures the givenServerBuilderwith OpenTelemetry metrics instrumentation.(package private) static OpenTelemetryMetricsResourcecreateMetricInstruments(io.opentelemetry.api.metrics.Meter meter, Map<String, Boolean> enableMetrics, boolean disableDefault) (package private) io.opentelemetry.api.metrics.MetergetMeter()(package private) io.opentelemetry.api.metrics.MeterProvider(package private) io.opentelemetry.api.OpenTelemetry(package private) OpenTelemetryMetricsResource(package private) io.grpc.MetricSinkgetSink()(package private) io.opentelemetry.api.trace.Tracer(package private) static booleanisMetricEnabled(String metricName, Map<String, Boolean> enableMetrics, boolean disableDefault) static GrpcOpenTelemetry.BuildervoidRegisters GrpcOpenTelemetry globally, applying its configuration to all subsequently created gRPC channels and servers.
-
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
-
disableDefault
private final boolean disableDefault -
resource
-
openTelemetryMetricsModule
-
openTelemetryTracingModule
-
optionalLabels
-
sink
private final io.grpc.MetricSink sink
-
-
Constructor Details
-
GrpcOpenTelemetry
-
-
Method Details
-
newBuilder
-
getOpenTelemetryInstance
io.opentelemetry.api.OpenTelemetry getOpenTelemetryInstance() -
getMeterProvider
io.opentelemetry.api.metrics.MeterProvider getMeterProvider() -
getMeter
io.opentelemetry.api.metrics.Meter getMeter() -
getResource
OpenTelemetryMetricsResource getResource() -
getEnableMetrics
-
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 givenManagedChannelBuilderwith OpenTelemetry metrics instrumentation. -
configureServerBuilder
public void configureServerBuilder(io.grpc.ServerBuilder<?> serverBuilder) Configures the givenServerBuilderwith 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
-