package propagation
import "go.opentelemetry.io/otel/api/propagation"
Package propagation contains interface definition for Binary and TextFormat propagators.
Index ¶
- type BinaryFormatPropagator
- type NoopTextFormatPropagator
- func (np NoopTextFormatPropagator) Extract(ctx context.Context, supplier Supplier) (core.SpanContext, dctx.Map)
- func (np NoopTextFormatPropagator) GetAllKeys() []string
- func (np NoopTextFormatPropagator) Inject(ctx context.Context, supplier Supplier)
- type Supplier
- type TextFormatPropagator
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 ¶
func (np NoopTextFormatPropagator) Extract(ctx context.Context, supplier Supplier) (core.SpanContext, dctx.Map)
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 ¶
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
- linux/amd64
- Imports
- 3 packages
- Last checked
- 1 minute ago –
Tools for package owners.