baggage

package
v1.32.0 Latest Latest
Warning

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

Go to latest
Published: Nov 8, 2024 License: Apache-2.0 Imports: 7 Imported by: 402

README

Baggage

PkgGoDev

Documentation

Overview

Package baggage provides functionality for storing and retrieving baggage items in Go context. For propagating the baggage, see the go.opentelemetry.io/otel/propagation package.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ContextWithBaggage added in v1.0.0

func ContextWithBaggage(parent context.Context, b Baggage) context.Context

ContextWithBaggage returns a copy of parent with baggage.

func ContextWithoutBaggage added in v1.0.0

func ContextWithoutBaggage(parent context.Context) context.Context

ContextWithoutBaggage returns a copy of parent with no baggage.

Types

type Baggage added in v1.0.0

type Baggage struct {
	// contains filtered or unexported fields
}

Baggage is a list of baggage members representing the baggage-string as defined by the W3C Baggage specification.

func FromContext added in v1.0.0

func FromContext(ctx context.Context) Baggage

FromContext returns the baggage contained in ctx.

func New added in v1.0.0

func New(members ...Member) (Baggage, error)

New returns a new valid Baggage. It returns an error if it results in a Baggage exceeding limits set in that specification.

It expects all the provided members to have already been validated.

func Parse added in v1.0.0

func Parse(bStr string) (Baggage, error)

Parse attempts to decode a baggage-string from the passed string. It returns an error if the input is invalid according to the W3C Baggage specification.

If there are duplicate list-members contained in baggage, the last one defined (reading left-to-right) will be the only one kept. This diverges from the W3C Baggage specification which allows duplicate list-members, but conforms to the OpenTelemetry Baggage specification.

func (Baggage) DeleteMember added in v1.0.0

func (b Baggage) DeleteMember(key string) Baggage

DeleteMember returns a copy of the Baggage with the list-member identified by key removed.

func (Baggage) Len added in v1.0.0

func (b Baggage) Len() int

Len returns the number of list-members in the Baggage.

func (Baggage) Member added in v1.0.0

func (b Baggage) Member(key string) Member

Member returns the baggage list-member identified by key.

If there is no list-member matching the passed key the returned Member will be a zero-value Member. The returned member is not validated, as we assume the validation happened when it was added to the Baggage.

func (Baggage) Members added in v1.0.0

func (b Baggage) Members() []Member

Members returns all the baggage list-members. The order of the returned list-members is not significant.

The returned members are not validated, as we assume the validation happened when they were added to the Baggage.

func (Baggage) SetMember added in v1.0.0

func (b Baggage) SetMember(member Member) (Baggage, error)

SetMember returns a copy of the Baggage with the member included. If the baggage contains a Member with the same key, the existing Member is replaced.

If member is invalid according to the W3C Baggage specification, an error is returned with the original Baggage.

func (Baggage) String added in v1.0.0

func (b Baggage) String() string

String encodes Baggage into a header string compliant with the W3C Baggage specification. It would ignore members where the member key is invalid with the W3C Baggage specification. This could happen for a UTF-8 key, as it may contain invalid characters.

type Member added in v1.0.0

type Member struct {
	// contains filtered or unexported fields
}

Member is a list-member of a baggage-string as defined by the W3C Baggage specification.

func NewMember added in v1.0.0

func NewMember(key, value string, props ...Property) (Member, error)

NewMember returns a new Member from the passed arguments.

The passed key must be compliant with W3C Baggage specification. The passed value must be percent-encoded as defined in W3C Baggage specification.

Notice: Consider using NewMemberRaw instead that does not require percent-encoding of the value.

func NewMemberRaw added in v1.22.0

func NewMemberRaw(key, value string, props ...Property) (Member, error)

NewMemberRaw returns a new Member from the passed arguments.

The passed key must be valid, non-empty UTF-8 string. The passed value must be valid UTF-8 string. However, the specific Propagators that are used to transmit baggage entries across component boundaries may impose their own restrictions on baggage key. For example, the W3C Baggage specification restricts the baggage keys to strings that satisfy the token definition from RFC7230, Section 3.2.6. For maximum compatibility, alphanumeric value are strongly recommended to be used as baggage key.

func (Member) Key added in v1.0.0

func (m Member) Key() string

Key returns the Member key.

func (Member) Properties added in v1.0.0

func (m Member) Properties() []Property

Properties returns a copy of the Member properties.

func (Member) String added in v1.0.0

func (m Member) String() string

String encodes Member into a header string compliant with the W3C Baggage specification. It would return empty string if the key is invalid with the W3C Baggage specification. This could happen for a UTF-8 key, as it may contain invalid characters.

func (Member) Value added in v1.0.0

func (m Member) Value() string

Value returns the Member value.

type Property added in v1.0.0

type Property struct {
	// contains filtered or unexported fields
}

Property is an additional metadata entry for a baggage list-member.

func NewKeyProperty added in v1.0.0

func NewKeyProperty(key string) (Property, error)

NewKeyProperty returns a new Property for key.

The passed key must be valid, non-empty UTF-8 string. If key is invalid, an error will be returned. However, the specific Propagators that are used to transmit baggage entries across component boundaries may impose their own restrictions on Property key. For example, the W3C Baggage specification restricts the Property keys to strings that satisfy the token definition from RFC7230, Section 3.2.6. For maximum compatibility, alphanumeric value are strongly recommended to be used as Property key.

func NewKeyValueProperty added in v1.0.0

func NewKeyValueProperty(key, value string) (Property, error)

NewKeyValueProperty returns a new Property for key with value.

The passed key must be compliant with W3C Baggage specification. The passed value must be percent-encoded as defined in W3C Baggage specification.

Notice: Consider using NewKeyValuePropertyRaw instead that does not require percent-encoding of the value.

func NewKeyValuePropertyRaw added in v1.22.0

func NewKeyValuePropertyRaw(key, value string) (Property, error)

NewKeyValuePropertyRaw returns a new Property for key with value.

The passed key must be valid, non-empty UTF-8 string. The passed value must be valid UTF-8 string. However, the specific Propagators that are used to transmit baggage entries across component boundaries may impose their own restrictions on Property key. For example, the W3C Baggage specification restricts the Property keys to strings that satisfy the token definition from RFC7230, Section 3.2.6. For maximum compatibility, alphanumeric value are strongly recommended to be used as Property key.

func (Property) Key added in v1.0.0

func (p Property) Key() string

Key returns the Property key.

func (Property) String added in v1.0.0

func (p Property) String() string

String encodes Property into a header string compliant with the W3C Baggage specification. It would return empty string if the key is invalid with the W3C Baggage specification. This could happen for a UTF-8 key, as it may contain invalid characters.

func (Property) Value added in v1.0.0

func (p Property) Value() (string, bool)

Value returns the Property value. Additionally, a boolean value is returned indicating if the returned value is the empty if the Property has a value that is empty or if the value is not set.

Jump to

Keyboard shortcuts

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