blob: 30d0c5fe32a376a90a71da44491dd04fc38a2678 [file] [edit]
package otelutil
import (
"context"
"github.com/containerd/log"
"go.opentelemetry.io/otel/baggage"
)
// TriggerKey is the key used for the 'trigger' member in the baggage. It is
// used to know what triggered a code path (e.g. API call, libnet init, etc...)
const TriggerKey = "trigger"
// MustNewBaggage creates an OTel Baggage containing the provided members. It
// panics if the baggage cannot be created.
//
// DO NOT USE this function with dynamic values.
func MustNewBaggage(members ...baggage.Member) baggage.Baggage {
b, err := baggage.New(members...)
if err != nil {
log.G(context.Background()).WithFields(log.Fields{
"error": err,
"members": members,
}).Fatal("OTel baggage creation failure")
}
return b
}
// MustNewMemberRaw creates an OTel Baggage member with the provided key and
// value. It panics if the key or value aren't valid UTF-8 strings.
//
// DO NOT USE this function with dynamic key/value.
func MustNewMemberRaw(key, value string) baggage.Member {
m, err := baggage.NewMemberRaw(key, value)
if err != nil {
log.G(context.Background()).WithFields(log.Fields{
"error": err,
"key": key,
"value": value,
}).Fatal("OTel baggage member creation failure")
}
return m
}