Package io.grpc.opentelemetry
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 class
private final class
private static class
private 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.TracingClientInterceptor
private final io.opentelemetry.context.propagation.ContextPropagators
private static final Logger
private final MetadataGetter
private final MetadataSetter
(package private) final io.grpc.Context.Key
<io.opentelemetry.api.trace.Span> private final io.opentelemetry.api.trace.Tracer
private final io.grpc.ServerInterceptor
private final OpenTelemetryTracingModule.ServerTracerFactory
private static final AtomicIntegerFieldUpdater
<OpenTelemetryTracingModule.ServerTracer> -
Constructor Summary
ConstructorsConstructorDescriptionOpenTelemetryTracingModule
(io.opentelemetry.api.OpenTelemetry openTelemetry) -
Method Summary
Modifier and TypeMethodDescriptionprivate void
endSpanWithStatus
(io.opentelemetry.api.trace.Span span, io.grpc.Status status) private String
generateErrorStatusDescription
(io.grpc.Status status) (package private) static String
generateTraceSpanName
(boolean isServer, String fullMethodName) Convert a full method name to a tracing span name.(package private) io.grpc.ClientInterceptor
Returns the client interceptor that facilitates otel tracing reporting.(package private) io.grpc.ServerInterceptor
(package private) io.grpc.ServerStreamTracer.Factory
Returns the server tracer factory.(package private) io.opentelemetry.api.trace.Tracer
(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 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.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
-
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
-false
if the span is on the client-side,true
if on the server-sidefullMethodName
- the method name as returned byMethodDescriptor.getFullMethodName()
.
-