Package io.grpc.opentelemetry
Class OpenTelemetryTracingModule
- java.lang.Object
-
- io.grpc.opentelemetry.OpenTelemetryTracingModule
-
final class OpenTelemetryTracingModule extends java.lang.Object
Provides factories forStreamTracer
that records tracing to OpenTelemetry.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) class
OpenTelemetryTracingModule.CallAttemptsTracerFactory
private class
OpenTelemetryTracingModule.ClientTracer
private static class
OpenTelemetryTracingModule.ContextServerCallListener<ReqT>
private class
OpenTelemetryTracingModule.ServerTracer
(package private) class
OpenTelemetryTracingModule.ServerTracerFactory
(package private) class
OpenTelemetryTracingModule.TracingClientInterceptor
(package private) class
OpenTelemetryTracingModule.TracingServerSpanPropagationInterceptor
-
Field Summary
Fields Modifier and Type Field Description private static java.util.concurrent.atomic.AtomicIntegerFieldUpdater<OpenTelemetryTracingModule.CallAttemptsTracerFactory>
callEndedUpdater
private OpenTelemetryTracingModule.TracingClientInterceptor
clientInterceptor
private io.opentelemetry.context.propagation.ContextPropagators
contextPropagators
private static java.util.logging.Logger
logger
private MetadataGetter
metadataGetter
private MetadataSetter
metadataSetter
(package private) io.grpc.Context.Key<io.opentelemetry.api.trace.Span>
otelSpan
private io.opentelemetry.api.trace.Tracer
otelTracer
private io.grpc.ServerInterceptor
serverSpanPropagationInterceptor
private OpenTelemetryTracingModule.ServerTracerFactory
serverTracerFactory
private static java.util.concurrent.atomic.AtomicIntegerFieldUpdater<OpenTelemetryTracingModule.ServerTracer>
streamClosedUpdater
-
Constructor Summary
Constructors Constructor Description OpenTelemetryTracingModule(io.opentelemetry.api.OpenTelemetry openTelemetry)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
endSpanWithStatus(io.opentelemetry.api.trace.Span span, io.grpc.Status status)
private java.lang.String
generateErrorStatusDescription(io.grpc.Status status)
(package private) static java.lang.String
generateTraceSpanName(boolean isServer, java.lang.String fullMethodName)
Convert a full method name to a tracing span name.(package private) io.grpc.ClientInterceptor
getClientInterceptor()
Returns the client interceptor that facilitates otel tracing reporting.(package private) io.grpc.ServerInterceptor
getServerSpanPropagationInterceptor()
(package private) io.grpc.ServerStreamTracer.Factory
getServerTracerFactory()
Returns the server tracer factory.(package private) io.opentelemetry.api.trace.Tracer
getTracer()
(package private) OpenTelemetryTracingModule.CallAttemptsTracerFactory
newClientCallTracer(io.opentelemetry.api.trace.Span clientSpan, io.grpc.MethodDescriptor<?,?> method)
Creates aOpenTelemetryTracingModule.CallAttemptsTracerFactory
for a new call.private void
recordInboundCompressedMessage(io.opentelemetry.api.trace.Span span, int seqNo, long optionalWireSize)
private void
recordInboundMessageSize(io.opentelemetry.api.trace.Span span, int seqNo, long bytes)
private void
recordOutboundMessageSentEvent(io.opentelemetry.api.trace.Span span, int seqNo, long optionalWireSize, long optionalUncompressedSize)
-
-
-
Field Detail
-
logger
private static final java.util.logging.Logger logger
-
otelSpan
final io.grpc.Context.Key<io.opentelemetry.api.trace.Span> otelSpan
-
callEndedUpdater
@Nullable private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<OpenTelemetryTracingModule.CallAttemptsTracerFactory> callEndedUpdater
-
streamClosedUpdater
@Nullable private static final java.util.concurrent.atomic.AtomicIntegerFieldUpdater<OpenTelemetryTracingModule.ServerTracer> streamClosedUpdater
-
otelTracer
private final io.opentelemetry.api.trace.Tracer otelTracer
-
contextPropagators
private final io.opentelemetry.context.propagation.ContextPropagators contextPropagators
-
metadataGetter
private final MetadataGetter metadataGetter
-
metadataSetter
private final MetadataSetter metadataSetter
-
clientInterceptor
private final OpenTelemetryTracingModule.TracingClientInterceptor clientInterceptor
-
serverSpanPropagationInterceptor
private final io.grpc.ServerInterceptor serverSpanPropagationInterceptor
-
serverTracerFactory
private final OpenTelemetryTracingModule.ServerTracerFactory serverTracerFactory
-
-
Method Detail
-
getTracer
io.opentelemetry.api.trace.Tracer getTracer()
-
newClientCallTracer
OpenTelemetryTracingModule.CallAttemptsTracerFactory newClientCallTracer(io.opentelemetry.api.trace.Span clientSpan, io.grpc.MethodDescriptor<?,?> method)
Creates aOpenTelemetryTracingModule.CallAttemptsTracerFactory
for a new call.
-
getServerTracerFactory
io.grpc.ServerStreamTracer.Factory getServerTracerFactory()
Returns the server tracer factory.
-
getClientInterceptor
io.grpc.ClientInterceptor getClientInterceptor()
Returns the client interceptor that facilitates otel tracing reporting.
-
getServerSpanPropagationInterceptor
io.grpc.ServerInterceptor getServerSpanPropagationInterceptor()
-
recordOutboundMessageSentEvent
private void recordOutboundMessageSentEvent(io.opentelemetry.api.trace.Span span, int seqNo, long optionalWireSize, long optionalUncompressedSize)
-
recordInboundCompressedMessage
private void recordInboundCompressedMessage(io.opentelemetry.api.trace.Span span, int seqNo, long optionalWireSize)
-
recordInboundMessageSize
private void recordInboundMessageSize(io.opentelemetry.api.trace.Span span, int seqNo, long bytes)
-
generateErrorStatusDescription
private java.lang.String generateErrorStatusDescription(io.grpc.Status status)
-
endSpanWithStatus
private void endSpanWithStatus(io.opentelemetry.api.trace.Span span, io.grpc.Status status)
-
generateTraceSpanName
static java.lang.String generateTraceSpanName(boolean isServer, java.lang.String fullMethodName)
Convert a full method name to a tracing span name.- Parameters:
isServer
-false
if the span is on the client-side,true
if on the server-sidefullMethodName
- the method name as returned byMethodDescriptor.getFullMethodName()
.
-
-