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 boolean
private final io.opentelemetry.api.metrics.Meter
private final io.opentelemetry.api.metrics.MeterProvider
private final OpenTelemetryMetricsModule
private final io.opentelemetry.api.OpenTelemetry
private final OpenTelemetryTracingModule
private final OpenTelemetryMetricsResource
private final io.grpc.MetricSink
private static final com.google.common.base.Supplier
<com.google.common.base.Stopwatch> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
configureChannelBuilder
(io.grpc.ManagedChannelBuilder<?> builder) Configures the givenManagedChannelBuilder
with OpenTelemetry metrics instrumentation.void
configureServerBuilder
(io.grpc.ServerBuilder<?> serverBuilder) Configures the givenServerBuilder
with OpenTelemetry metrics instrumentation.(package private) static OpenTelemetryMetricsResource
createMetricInstruments
(io.opentelemetry.api.metrics.Meter meter, Map<String, Boolean> enableMetrics, boolean disableDefault) (package private) io.opentelemetry.api.metrics.Meter
getMeter()
(package private) io.opentelemetry.api.metrics.MeterProvider
(package private) io.opentelemetry.api.OpenTelemetry
(package private) OpenTelemetryMetricsResource
(package private) io.grpc.MetricSink
getSink()
(package private) io.opentelemetry.api.trace.Tracer
(package private) static boolean
isMetricEnabled
(String metricName, Map<String, Boolean> enableMetrics, boolean disableDefault) static GrpcOpenTelemetry.Builder
void
Registers 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 givenManagedChannelBuilder
with OpenTelemetry metrics instrumentation. -
configureServerBuilder
public void configureServerBuilder(io.grpc.ServerBuilder<?> serverBuilder) Configures the givenServerBuilder
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
-