Class 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 encoded SpanContext 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 Detail

      • TRACE_ID_FIELD_ID_OFFSET

        private static final int TRACE_ID_FIELD_ID_OFFSET
        See Also:
        Constant Field Values
      • TRACE_ID_SIZE

        private static final int TRACE_ID_SIZE
      • 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_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
    • Constructor Detail

      • BinaryFormat

        BinaryFormat()
    • Method Detail

      • toBytes

        public byte[] toBytes​(io.opentelemetry.api.trace.SpanContext spanContext)
        Specified by:
        toBytes in interface io.grpc.Metadata.BinaryMarshaller<io.opentelemetry.api.trace.SpanContext>
      • parseBytes

        public io.opentelemetry.api.trace.SpanContext parseBytes​(byte[] serialized)
        Specified by:
        parseBytes in interface io.grpc.Metadata.BinaryMarshaller<io.opentelemetry.api.trace.SpanContext>