otelgo.opentelemetry.io/otel/api/propagation Index | Files

package propagation

import "go.opentelemetry.io/otel/api/propagation"

Package propagation contains interface definition for Binary and TextFormat propagators.

Index

Types

type BinaryFormatPropagator

type BinaryFormatPropagator interface {
	// ToBytes serializes span context into a byte array and returns the array.
	ToBytes(sc core.SpanContext) []byte

	// FromBytes de-serializes byte array into span context and returns the span context.
	FromBytes([]byte) core.SpanContext
}

BinaryFormatPropagator is an interface that specifies methods to convert SpanContext to/from byte array.

type NoopTextFormatPropagator

type NoopTextFormatPropagator struct{}

NoopTextFormatPropagator implements TextFormatPropagator that does nothing.

func (NoopTextFormatPropagator) Extract

Extract does nothing and returns an empty SpanContext

func (NoopTextFormatPropagator) GetAllKeys

func (np NoopTextFormatPropagator) GetAllKeys() []string

GetAllKeys returns empty list of strings.

func (NoopTextFormatPropagator) Inject

func (np NoopTextFormatPropagator) Inject(ctx context.Context, supplier Supplier)

Inject does nothing.

type Supplier

type Supplier interface {
	Get(key string) string
	Set(key string, value string)
}

Supplier is an interface that specifies methods to retrieve and store value for a key to an associated carrier. Get method retrieves the value for a given key. Set method stores the value for a given key.

type TextFormatPropagator

type TextFormatPropagator interface {
	// Inject method retrieves current SpanContext from the ctx, encodes it into propagator
	// specific format and then injects the encoded SpanContext using supplier into a carrier
	// associated with the supplier. It also takes a correlationCtx whose values will be
	// injected into a carrier using the supplier.
	Inject(ctx context.Context, supplier Supplier)

	// Extract method retrieves encoded SpanContext using supplier from the associated carrier.
	// It decodes the SpanContext and returns it and a dctx of correlated context.
	// If no SpanContext was retrieved OR if the retrieved SpanContext is invalid then
	// an empty SpanContext is returned.
	Extract(ctx context.Context, supplier Supplier) (core.SpanContext, dctx.Map)

	// GetAllKeys returns all the keys that this propagator injects/extracts into/from a
	// carrier. The use cases for this are
	// * allow pre-allocation of fields, especially in systems like gRPC Metadata
	// * allow a single-pass over an iterator (ex OpenTracing has no getter in TextMap)
	GetAllKeys() []string
}

TextFormatPropagator is an interface that specifies methods to inject and extract SpanContext and distributed context into/from a carrier using Supplier interface. For example, HTTP Trace Context propagator would encode SpanContext into W3C Trace Context Header and set the header into HttpRequest.

Source Files

doc.go noop_propagator.go propagator.go

Version
v0.2.0
Published
Dec 3, 2019
Platform
darwin/amd64
Imports
3 packages
Last checked
1 hour ago

Tools for package owners.