Class OpenTelemetryTracingModule
java.lang.Object
io.grpc.opentelemetry.OpenTelemetryTracingModule
Provides factories for
StreamTracer that records tracing to OpenTelemetry.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) final classprivate final classprivate static classprivate final class(package private) final class(package private) final class(package private) final class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final AtomicIntegerFieldUpdater<OpenTelemetryTracingModule.CallAttemptsTracerFactory> private final OpenTelemetryTracingModule.TracingClientInterceptorprivate final io.opentelemetry.context.propagation.ContextPropagatorsprivate static final Loggerprivate final MetadataGetterprivate final MetadataSetter(package private) final io.grpc.Context.Key<io.opentelemetry.api.trace.Span> private final io.opentelemetry.api.trace.Tracerprivate final io.grpc.ServerInterceptorprivate final OpenTelemetryTracingModule.ServerTracerFactoryprivate static final AtomicIntegerFieldUpdater<OpenTelemetryTracingModule.ServerTracer> -
Constructor Summary
ConstructorsConstructorDescriptionOpenTelemetryTracingModule(io.opentelemetry.api.OpenTelemetry openTelemetry) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidendSpanWithStatus(io.opentelemetry.api.trace.Span span, io.grpc.Status status) private StringgenerateErrorStatusDescription(io.grpc.Status status) (package private) static StringgenerateTraceSpanName(boolean isServer, String fullMethodName) Convert a full method name to a tracing span name.(package private) io.grpc.ClientInterceptorReturns the client interceptor that facilitates otel tracing reporting.(package private) io.grpc.ServerInterceptor(package private) io.grpc.ServerStreamTracer.FactoryReturns the server tracer factory.(package private) io.opentelemetry.api.trace.Tracer(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 Details
-
logger
-
otelSpan
final io.grpc.Context.Key<io.opentelemetry.api.trace.Span> otelSpan -
callEndedUpdater
@Nullable private static final AtomicIntegerFieldUpdater<OpenTelemetryTracingModule.CallAttemptsTracerFactory> callEndedUpdater -
streamClosedUpdater
@Nullable private static final AtomicIntegerFieldUpdater<OpenTelemetryTracingModule.ServerTracer> streamClosedUpdater -
otelTracer
private final io.opentelemetry.api.trace.Tracer otelTracer -
contextPropagators
private final io.opentelemetry.context.propagation.ContextPropagators contextPropagators -
metadataGetter
-
metadataSetter
-
clientInterceptor
-
serverSpanPropagationInterceptor
private final io.grpc.ServerInterceptor serverSpanPropagationInterceptor -
serverTracerFactory
-
-
Constructor Details
-
OpenTelemetryTracingModule
OpenTelemetryTracingModule(io.opentelemetry.api.OpenTelemetry openTelemetry)
-
-
Method Details
-
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
-
endSpanWithStatus
private void endSpanWithStatus(io.opentelemetry.api.trace.Span span, io.grpc.Status status) -
generateTraceSpanName
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().
-