Package io.grpc.opentelemetry
Class GrpcOpenTelemetry
- java.lang.Object
-
- io.grpc.opentelemetry.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. Seeio.opentelemetry.sdk.OpenTelemetrySdk
for information on how to construct the SDK.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
GrpcOpenTelemetry.Builder
Builder for configuringGrpcOpenTelemetry
.
-
Field Summary
Fields Modifier and Type Field Description private boolean
disableDefault
(package private) static boolean
ENABLE_OTEL_TRACING
private java.util.Map<java.lang.String,java.lang.Boolean>
enableMetrics
private io.opentelemetry.api.metrics.Meter
meter
private io.opentelemetry.api.metrics.MeterProvider
meterProvider
private OpenTelemetryMetricsModule
openTelemetryMetricsModule
private io.opentelemetry.api.OpenTelemetry
openTelemetrySdk
private OpenTelemetryTracingModule
openTelemetryTracingModule
private java.util.List<java.lang.String>
optionalLabels
private OpenTelemetryMetricsResource
resource
private io.grpc.MetricSink
sink
private static com.google.common.base.Supplier<com.google.common.base.Stopwatch>
STOPWATCH_SUPPLIER
-
Constructor Summary
Constructors Modifier Constructor Description private
GrpcOpenTelemetry(GrpcOpenTelemetry.Builder builder)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description void
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, java.util.Map<java.lang.String,java.lang.Boolean> enableMetrics, boolean disableDefault)
(package private) java.util.Map<java.lang.String,java.lang.Boolean>
getEnableMetrics()
(package private) io.opentelemetry.api.metrics.Meter
getMeter()
(package private) io.opentelemetry.api.metrics.MeterProvider
getMeterProvider()
(package private) io.opentelemetry.api.OpenTelemetry
getOpenTelemetryInstance()
(package private) java.util.List<java.lang.String>
getOptionalLabels()
(package private) OpenTelemetryMetricsResource
getResource()
(package private) io.grpc.MetricSink
getSink()
(package private) io.opentelemetry.api.trace.Tracer
getTracer()
(package private) static boolean
isMetricEnabled(java.lang.String metricName, java.util.Map<java.lang.String,java.lang.Boolean> enableMetrics, boolean disableDefault)
static GrpcOpenTelemetry.Builder
newBuilder()
void
registerGlobal()
Registers GrpcOpenTelemetry globally, applying its configuration to all subsequently created gRPC channels and servers.
-
-
-
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
-
resource
private final OpenTelemetryMetricsResource resource
-
openTelemetryMetricsModule
private final OpenTelemetryMetricsModule openTelemetryMetricsModule
-
openTelemetryTracingModule
private final OpenTelemetryTracingModule openTelemetryTracingModule
-
optionalLabels
private final java.util.List<java.lang.String> optionalLabels
-
sink
private final io.grpc.MetricSink sink
-
-
Constructor Detail
-
GrpcOpenTelemetry
private GrpcOpenTelemetry(GrpcOpenTelemetry.Builder builder)
-
-
Method Detail
-
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
OpenTelemetryMetricsResource getResource()
-
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 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, 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)
-
-