Documentation ¶
Overview ¶
This package implements the correlation functionality as specified in the OpenTelemetry specification. Currently it provides a data structure for storing correlations (Map) and a way of putting Map object into the context and retrieving it from context.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var CorrelationContextHeader = "Correlation-Context"
CorrelationContextHeader is specified by W3C.
Functions ¶
func ContextWithMap ¶
ContextWithMap returns a context with the Map entered into it.
func DefaultHTTPPropagator ¶
func DefaultHTTPPropagator() propagation.HTTPPropagator
DefaultHTTPPropagator returns the default context correlation HTTP propagator.
Types ¶
type CorrelationContext ¶
type CorrelationContext struct{}
CorrelationContext propagates Key:Values in W3C CorrelationContext format. nolint:golint
func (CorrelationContext) Extract ¶
func (CorrelationContext) Extract(ctx context.Context, supplier propagation.HTTPSupplier) context.Context
Extract implements HTTPExtractor.
func (CorrelationContext) GetAllKeys ¶
func (CorrelationContext) GetAllKeys() []string
GetAllKeys implements HTTPPropagator.
func (CorrelationContext) Inject ¶
func (CorrelationContext) Inject(ctx context.Context, supplier propagation.HTTPSupplier)
Inject implements HTTPInjector.
type Map ¶
type Map struct {
// contains filtered or unexported fields
}
Map is an immutable storage for correlations.
func MapFromContext ¶
MapFromContext gets the current Map from a Context.
func NewMap ¶
NewMap creates a map with the contents of the update applied. In this function, having an update with DropSingleK or DropMultiK makes no sense - those fields are effectively ignored.
func (Map) Apply ¶
Apply creates a copy of the map with the contents of the update applied. Apply will first drop the keys from DropSingleK and DropMultiK, then add key-value pairs from SingleKV and MultiKV.
func (Map) Foreach ¶
Foreach calls a passed callback once on each key-value pair until all the key-value pairs of the map were iterated or the callback returns false, whichever happens first.
type MapUpdate ¶
type MapUpdate struct { // DropSingleK contains a single key to be dropped from // correlations. Use this to avoid an overhead of a slice // allocation if there is only one key to drop. DropSingleK core.Key // DropMultiK contains all the keys to be dropped from // correlations. DropMultiK []core.Key // SingleKV contains a single key-value pair to be added to // correlations. Use this to avoid an overhead of a slice // allocation if there is only one key-value pair to add. SingleKV core.KeyValue // MultiKV contains all the key-value pairs to be added to // correlations. MultiKV []core.KeyValue }
MapUpdate contains information about correlation changes to be made.