Package io.grpc.opentelemetry
Class GrpcTraceBinContextPropagator
- java.lang.Object
-
- io.grpc.opentelemetry.GrpcTraceBinContextPropagator
-
- All Implemented Interfaces:
io.opentelemetry.context.propagation.TextMapPropagator
@ExperimentalApi("https://github.com/grpc/grpc-java/issues/11400") public final class GrpcTraceBinContextPropagator extends Object implements io.opentelemetry.context.propagation.TextMapPropagator
ATextMapPropagator
for transmitting "grpc-trace-bin" span context.This propagator can transmit the "grpc-trace-bin" context in either binary or Base64-encoded text format, depending on the capabilities of the provided
TextMapGetter
andTextMapSetter
.If the
TextMapGetter
andTextMapSetter
only support text format, Base64 encoding and decoding will be used when communicating with the carrier API. But gRPC uses it with gRPC's metadata-based getter/setter, and the propagator can directly transmit the binary header, avoiding the need for Base64 encoding.
-
-
Field Summary
Fields Modifier and Type Field Description static String
GRPC_TRACE_BIN_HEADER
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static GrpcTraceBinContextPropagator
defaultInstance()
<C> io.opentelemetry.context.Context
extract(io.opentelemetry.context.Context context, C carrier, io.opentelemetry.context.propagation.TextMapGetter<C> getter)
Collection<String>
fields()
<C> void
inject(io.opentelemetry.context.Context context, C carrier, io.opentelemetry.context.propagation.TextMapSetter<C> setter)
-
-
-
Field Detail
-
GRPC_TRACE_BIN_HEADER
public static final String GRPC_TRACE_BIN_HEADER
- See Also:
- Constant Field Values
-
-
Method Detail
-
defaultInstance
public static GrpcTraceBinContextPropagator defaultInstance()
-
fields
public Collection<String> fields()
- Specified by:
fields
in interfaceio.opentelemetry.context.propagation.TextMapPropagator
-
inject
public <C> void inject(io.opentelemetry.context.Context context, @Nullable C carrier, io.opentelemetry.context.propagation.TextMapSetter<C> setter)
- Specified by:
inject
in interfaceio.opentelemetry.context.propagation.TextMapPropagator
-
extract
public <C> io.opentelemetry.context.Context extract(io.opentelemetry.context.Context context, @Nullable C carrier, io.opentelemetry.context.propagation.TextMapGetter<C> getter)
- Specified by:
extract
in interfaceio.opentelemetry.context.propagation.TextMapPropagator
-
-