otelgo.opentelemetry.io/otel/propagators Index | Examples | Files

package propagators

import "go.opentelemetry.io/otel/propagators"

Package propagators contains OpenTelemetry context propagators.

OpenTelemetry propagators are used to extract and inject context data from and into messages exchanged by applications. The propagator supported by this package is the W3C Trace Context encoding (https://www.w3.org/TR/trace-context/), and W3C Baggage (https://w3c.github.io/baggage/).

Index

Examples

Types

type Baggage

type Baggage struct{}

Baggage is a propagator that supports the W3C Baggage format.

This propagates user-defined baggage associated with a trace. The complete specification is defined at https://w3c.github.io/baggage/.

func (Baggage) Extract

func (b Baggage) Extract(parent context.Context, carrier otel.TextMapCarrier) context.Context

Extract returns a copy of parent with the baggage from the carrier added.

func (Baggage) Fields

func (b Baggage) Fields() []string

Fields returns the keys who's values are set with Inject.

func (Baggage) Inject

func (b Baggage) Inject(ctx context.Context, carrier otel.TextMapCarrier)

Inject sets baggage key-values from ctx into the carrier.

type TraceContext

type TraceContext struct{}

TraceContext is a propagator that supports the W3C Trace Context format (https://www.w3.org/TR/trace-context/)

This propagator will propagate the traceparent and tracestate headers to guarantee traces are not broken. It is up to the users of this propagator to choose if they want to participate in a trace by modifying the traceparent header and relevant parts of the tracestate header containing their proprietary information.

Example

Code:play 

package main

import (
	"go.opentelemetry.io/otel/api/global"
	"go.opentelemetry.io/otel/propagators"
)

func main() {
	tc := propagators.TraceContext{}
	// Register the TraceContext propagator globally.
	global.SetTextMapPropagator(tc)
}

func (TraceContext) Extract

func (tc TraceContext) Extract(ctx context.Context, carrier otel.TextMapCarrier) context.Context

Extract reads tracecontext from the carrier into a returned Context.

func (TraceContext) Fields

func (tc TraceContext) Fields() []string

Fields returns the keys who's values are set with Inject.

func (TraceContext) Inject

func (tc TraceContext) Inject(ctx context.Context, carrier otel.TextMapCarrier)

Inject set tracecontext from the Context into the carrier.

Source Files

baggage.go doc.go trace_context.go

Version
v0.13.0
Published
Oct 8, 2020
Platform
linux/amd64
Imports
10 packages
Last checked
1 hour ago

Tools for package owners.