propagators

package
v0.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2020 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Overview

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

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Baggage added in v0.13.0

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 added in v0.13.0

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 added in v0.13.0

func (b Baggage) Fields() []string

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

func (Baggage) Inject added in v0.13.0

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
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)
}
Output:

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 added in v0.13.0

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL