package baggage

import "go.opentelemetry.io/otel/internal/baggage"

Package baggage provides base types and functionality to store and retrieve baggage in Go context. This package exists because the OpenTracing bridge to OpenTelemetry needs to synchronize state whenever baggage for a context is modified and that context contains an OpenTracing span. If it were not for this need this package would not need to exist and the `go.opentelemetry.io/otel/baggage` package would be the singular place where W3C baggage is handled.

Index

Functions

func ContextWithGetHook

func ContextWithGetHook(parent context.Context, hook GetHookFunc) context.Context

ContextWithGetHook returns a copy of parent with hook configured to be invoked every time FromContext is called.

Passing nil GetHookFunc creates a context with no get hook to call.

func ContextWithList

func ContextWithList(parent context.Context, list List) context.Context

ContextWithList returns a copy of parent with baggage. Passing nil list returns a context without any baggage.

func ContextWithSetHook

func ContextWithSetHook(parent context.Context, hook SetHookFunc) context.Context

ContextWithSetHook returns a copy of parent with hook configured to be invoked every time ContextWithBaggage is called.

Passing nil SetHookFunc creates a context with no set hook to call.

Types

type GetHookFunc

type GetHookFunc func(context.Context, List) List

GetHookFunc is a callback called when getting baggage from the context.

type Item

type Item struct {
	Value      string
	Properties []Property
}

Item is the value and metadata properties part of a list-member.

type List

type List map[string]Item

List is the collection of baggage members. The W3C allows for duplicates, but OpenTelemetry does not, therefore, this is represented as a map.

func ListFromContext

func ListFromContext(ctx context.Context) List

ListFromContext returns the baggage contained in ctx.

type Property

type Property struct {
	Key, Value string

	// HasValue indicates if a zero-value value means the property does not
	// have a value or if it was the zero-value.
	HasValue bool
}

Property is a metadata entry for a list-member.

type SetHookFunc

type SetHookFunc func(context.Context, List) context.Context

SetHookFunc is a callback called when storing baggage in the context.

Source Files

baggage.go context.go

Version
v1.0.0
Published
Sep 20, 2021
Platform
js/wasm
Imports
1 packages
Last checked
25 minutes ago

Tools for package owners.