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{})




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


Path Synopsis
examples module