Package io.grpc.opentelemetry
Class OpenTelemetryTracingModule
- java.lang.Object
-
- io.grpc.opentelemetry.OpenTelemetryTracingModule
-
final class OpenTelemetryTracingModule extends java.lang.ObjectProvides factories forStreamTracerthat records tracing to OpenTelemetry.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) classOpenTelemetryTracingModule.CallAttemptsTracerFactoryprivate classOpenTelemetryTracingModule.ClientTracerprivate static classOpenTelemetryTracingModule.ContextServerCallListener<ReqT>private classOpenTelemetryTracingModule.ServerTracer(package private) classOpenTelemetryTracingModule.ServerTracerFactory(package private) classOpenTelemetryTracingModule.TracingClientInterceptor(package private) classOpenTelemetryTracingModule.TracingServerSpanPropagationInterceptor
-
Field Summary
Fields Modifier and Type Field Description private static java.util.concurrent.atomic.AtomicIntegerFieldUpdater<OpenTelemetryTracingModule.CallAttemptsTracerFactory>callEndedUpdaterprivate OpenTelemetryTracingModule.TracingClientInterceptorclientInterceptorprivate io.opentelemetry.context.propagation.ContextPropagatorscontextPropagatorsprivate static java.util.logging.Loggerloggerprivate MetadataGettermetadataGetterprivate MetadataSettermetadataSetter(package private) io.grpc.Context.Key<io.opentelemetry.api.trace.Span>otelSpanprivate io.opentelemetry.api.trace.TracerotelTracerprivate io.grpc.ServerInterceptorserverSpanPropagationInterceptorprivate OpenTelemetryTracingModule.ServerTracerFactoryserverTracerFactoryprivate 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 voidendSpanWithStatus(io.opentelemetry.api.trace.Span span, io.grpc.Status status)private java.lang.StringgenerateErrorStatusDescription(io.grpc.Status status)(package private) static java.lang.StringgenerateTraceSpanName(boolean isServer, java.lang.String fullMethodName)Convert a full method name to a tracing span name.(package private) io.grpc.ClientInterceptorgetClientInterceptor()Returns the client interceptor that facilitates otel tracing reporting.(package private) io.grpc.ServerInterceptorgetServerSpanPropagationInterceptor()(package private) io.grpc.ServerStreamTracer.FactorygetServerTracerFactory()Returns the server tracer factory.(package private) io.opentelemetry.api.trace.TracergetTracer()(package private) OpenTelemetryTracingModule.CallAttemptsTracerFactorynewClientCallTracer(io.opentelemetry.api.trace.Span clientSpan, io.grpc.MethodDescriptor<?,?> method)Creates aOpenTelemetryTracingModule.CallAttemptsTracerFactoryfor a new call.private voidrecordInboundCompressedMessage(io.opentelemetry.api.trace.Span span, int seqNo, long optionalWireSize)private voidrecordInboundMessageSize(io.opentelemetry.api.trace.Span span, int seqNo, long bytes)private voidrecordOutboundMessageSentEvent(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.CallAttemptsTracerFactoryfor 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-falseif the span is on the client-side,trueif on the server-sidefullMethodName- the method name as returned byMethodDescriptor.getFullMethodName().
-
-