OpenCensus Binary Propagation Format

The Problem

The ocgrpc GRPC plugin for OpenCensus is hard-coded to use a Binary propagation format.

A GRPC client and server that use OpenCensus cannot easily migrate to OpenTelemetry because there will be a period of time during which one will use OpenCensus and the other will use OpenTelemetry. If both client and server export spans to the same trace backend, the server spans will not be a child of the client spans, because they are using different propagation formats. To be able to easily migrate from OpenCensus to OpenTelemetry, it is necessary to use the OpenCensus binary propagation format with OpenTelemetry.


To add the binary propagation format with otelgrpc, use the WithPropagators option to the otelgrpc Interceptors:

import ""

opt := otelgrpc.WithPropagators(opencensus.Binary{})
Expand ▾ Collapse ▴




This section is empty.


This section is empty.


This section is empty.


type Binary

type Binary struct{}

    Binary is an OpenTelemetry implementation of the OpenCensus grpc binary format. Binary propagation was temporarily removed from opentelemetry. See

    func (Binary) Extract

      Extract extracts the SpanContext from the TextMapCarrier

      func (Binary) Fields

      func (b Binary) Fields() []string

        Fields returns the fields that this propagator modifies.

        func (Binary) Inject

        func (b Binary) Inject(ctx context.Context, carrier propagation.TextMapCarrier)

          Inject injects context into the TextMapCarrier

          Source Files