Class BinaryFormat

java.lang.Object
io.opencensus.trace.propagation.BinaryFormat
Direct Known Subclasses:
BinaryFormat.NoopBinaryFormat, BinaryFormatImpl

public abstract class BinaryFormat extends Object
This is a helper class for SpanContext propagation on the wire using binary encoding.

Example of usage on the client:

private static final Tracer tracer = Tracing.getTracer();
private static final BinaryFormat binaryFormat =
    Tracing.getPropagationComponent().getBinaryFormat();
void onSendRequest() {
  try (Scope ss = tracer.spanBuilder("Sent.MyRequest").startScopedSpan()) {
    byte[] binaryValue = binaryFormat.toByteArray(tracer.getCurrentContext().context());
    // Send the request including the binaryValue and wait for the response.
  }
}

Example of usage on the server:

private static final Tracer tracer = Tracing.getTracer();
private static final BinaryFormat binaryFormat =
    Tracing.getPropagationComponent().getBinaryFormat();
void onRequestReceived() {
  // Get the binaryValue from the request.
  SpanContext spanContext = SpanContext.INVALID;
  try {
    if (binaryValue != null) {
      spanContext = binaryFormat.fromByteArray(binaryValue);
    }
  } catch (SpanContextParseException e) {
    // Maybe log the exception.
  }
  try (Scope ss =
           tracer.spanBuilderWithRemoteParent("Recv.MyRequest", spanContext).startScopedSpan()) {
    // Handle request and send response back.
  }
}
Since:
0.5
  • Field Details

  • Constructor Details

    • BinaryFormat

      public BinaryFormat()
  • Method Details

    • toBinaryValue

      @Deprecated public byte[] toBinaryValue(SpanContext spanContext)
      Deprecated.
      Serializes a SpanContext into a byte array using the binary format.
      Parameters:
      spanContext - the SpanContext to serialize.
      Returns:
      the serialized binary value.
      Throws:
      NullPointerException - if the spanContext is null.
      Since:
      0.5
    • toByteArray

      public byte[] toByteArray(SpanContext spanContext)
      Serializes a SpanContext into a byte array using the binary format.
      Parameters:
      spanContext - the SpanContext to serialize.
      Returns:
      the serialized binary value.
      Throws:
      NullPointerException - if the spanContext is null.
      Since:
      0.7
    • fromBinaryValue

      @Deprecated public SpanContext fromBinaryValue(byte[] bytes) throws ParseException
      Deprecated.
      Parses the SpanContext from a byte array using the binary format.
      Parameters:
      bytes - a binary encoded buffer from which the SpanContext will be parsed.
      Returns:
      the parsed SpanContext.
      Throws:
      NullPointerException - if the input is null.
      ParseException - if the version is not supported or the input is invalid
      Since:
      0.5
    • fromByteArray

      public SpanContext fromByteArray(byte[] bytes) throws SpanContextParseException
      Parses the SpanContext from a byte array using the binary format.
      Parameters:
      bytes - a binary encoded buffer from which the SpanContext will be parsed.
      Returns:
      the parsed SpanContext.
      Throws:
      NullPointerException - if the input is null.
      SpanContextParseException - if the version is not supported or the input is invalid
      Since:
      0.7
    • getNoopBinaryFormat

      static BinaryFormat getNoopBinaryFormat()
      Returns the no-op implementation of the BinaryFormat.
      Returns:
      the no-op implementation of the BinaryFormat.