propagation

package
v0.0.0-...-a71ec85 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2019 License: Apache-2.0 Imports: 3 Imported by: 0

Documentation

Overview

Package propagation contains interface definition for Binary and TextFormat propagators.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

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.

Jump to

Keyboard shortcuts

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