openmeter / pkg /otelx /spancontext.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 10)
6380833 verified
Raw
History Blame Contribute Delete
676 Bytes
package otelx
import (
"encoding/base64"
"encoding/json"
"go.opentelemetry.io/otel/trace"
)
const OTelSpanContextKey = "otel.span.context"
func SerializeSpanContext(c trace.SpanContext) ([]byte, error) {
b, err := c.MarshalJSON()
if err != nil {
return nil, err
}
s := base64.StdEncoding.EncodeToString(b)
return []byte(s), nil
}
func DeserializeSpanContext(b []byte) (*trace.SpanContext, error) {
b, err := base64.StdEncoding.DecodeString(string(b))
if err != nil {
return nil, err
}
config := trace.SpanContextConfig{}
err = json.Unmarshal(b, &config)
if err != nil {
return nil, err
}
ctx := trace.NewSpanContext(config)
return &ctx, nil
}