Package io.grpc.opentelemetry
Class BinaryFormat
- java.lang.Object
-
- io.grpc.opentelemetry.BinaryFormat
-
- All Implemented Interfaces:
io.grpc.Metadata.BinaryMarshaller<io.opentelemetry.api.trace.SpanContext>
final class BinaryFormat extends java.lang.Object implements io.grpc.Metadata.BinaryMarshaller<io.opentelemetry.api.trace.SpanContext>
Binary encodedSpanContext
for context propagation. This is adapted from OpenCensus binary format.BinaryFormat format:
- Binary value: <version_id><version_format>
- version_id: 1-byte representing the version id.
- For version_id = 0:
- version_format: <field><field>
- field_format: <field_id><field_format>
- Fields:
- TraceId: (field_id = 0, len = 16, default = "0000000000000000") - 16-byte array representing the trace_id.
- SpanId: (field_id = 1, len = 8, default = "00000000") - 8-byte array representing the span_id.
- TraceFlags: (field_id = 2, len = 1, default = "0") - 1-byte array representing the trace_flags.
- Fields MUST be encoded using the field id order (smaller to higher).
- Valid value example:
- {0, 0, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 1, 97, 98, 99, 100, 101, 102, 103, 104, 2, 1}
- version_id = 0;
- trace_id = {64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79}
- span_id = {97, 98, 99, 100, 101, 102, 103, 104};
- trace_flags = {1};
-
-
Field Summary
Fields Modifier and Type Field Description private static int
ALL_FORMAT_LENGTH
private static byte
ID_SIZE
private static BinaryFormat
INSTANCE
private static int
REQUIRED_FORMAT_LENGTH
private static byte
SPAN_ID_FIELD_ID
private static int
SPAN_ID_FIELD_ID_OFFSET
private static int
SPAN_ID_OFFSET
private static int
SPAN_ID_SIZE
private static byte
TRACE_FLAG_FIELD_ID
private static int
TRACE_FLAG_FIELD_ID_OFFSET
private static int
TRACE_FLAG_OFFSET
private static int
TRACE_FLAG_SIZE
private static byte
TRACE_ID_FIELD_ID
private static int
TRACE_ID_FIELD_ID_OFFSET
private static int
TRACE_ID_OFFSET
private static int
TRACE_ID_SIZE
private static byte
VERSION_ID
private static int
VERSION_ID_OFFSET
-
Constructor Summary
Constructors Constructor Description BinaryFormat()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static BinaryFormat
getInstance()
io.opentelemetry.api.trace.SpanContext
parseBytes(byte[] serialized)
byte[]
toBytes(io.opentelemetry.api.trace.SpanContext spanContext)
-
-
-
Field Detail
-
VERSION_ID
private static final byte VERSION_ID
- See Also:
- Constant Field Values
-
VERSION_ID_OFFSET
private static final int VERSION_ID_OFFSET
- See Also:
- Constant Field Values
-
ID_SIZE
private static final byte ID_SIZE
- See Also:
- Constant Field Values
-
TRACE_ID_FIELD_ID
private static final byte TRACE_ID_FIELD_ID
- See Also:
- Constant Field Values
-
TRACE_ID_FIELD_ID_OFFSET
private static final int TRACE_ID_FIELD_ID_OFFSET
- See Also:
- Constant Field Values
-
TRACE_ID_OFFSET
private static final int TRACE_ID_OFFSET
- See Also:
- Constant Field Values
-
TRACE_ID_SIZE
private static final int TRACE_ID_SIZE
-
SPAN_ID_FIELD_ID
private static final byte SPAN_ID_FIELD_ID
- See Also:
- Constant Field Values
-
SPAN_ID_FIELD_ID_OFFSET
private static final int SPAN_ID_FIELD_ID_OFFSET
-
SPAN_ID_OFFSET
private static final int SPAN_ID_OFFSET
-
SPAN_ID_SIZE
private static final int SPAN_ID_SIZE
-
TRACE_FLAG_FIELD_ID
private static final byte TRACE_FLAG_FIELD_ID
- See Also:
- Constant Field Values
-
TRACE_FLAG_FIELD_ID_OFFSET
private static final int TRACE_FLAG_FIELD_ID_OFFSET
-
TRACE_FLAG_OFFSET
private static final int TRACE_FLAG_OFFSET
-
REQUIRED_FORMAT_LENGTH
private static final int REQUIRED_FORMAT_LENGTH
-
TRACE_FLAG_SIZE
private static final int TRACE_FLAG_SIZE
-
ALL_FORMAT_LENGTH
private static final int ALL_FORMAT_LENGTH
-
INSTANCE
private static final BinaryFormat INSTANCE
-
-
Method Detail
-
getInstance
public static BinaryFormat getInstance()
-
toBytes
public byte[] toBytes(io.opentelemetry.api.trace.SpanContext spanContext)
- Specified by:
toBytes
in interfaceio.grpc.Metadata.BinaryMarshaller<io.opentelemetry.api.trace.SpanContext>
-
parseBytes
public io.opentelemetry.api.trace.SpanContext parseBytes(byte[] serialized)
- Specified by:
parseBytes
in interfaceio.grpc.Metadata.BinaryMarshaller<io.opentelemetry.api.trace.SpanContext>
-
-