1
0
Fork 0
mirror of https://github.com/pomerium/pomerium.git synced 2025-07-13 23:08:17 +02:00
pomerium/internal/telemetry/trace/util.go
Joe Kralicky 86bf8a1d5f
[tracing] refactor to use custom extension for trace id editing ()
refactor to use custom extension for trace id editing
2025-01-13 17:34:37 +00:00

32 lines
594 B
Go

package trace
import (
"unique"
oteltrace "go.opentelemetry.io/otel/trace"
)
var (
zeroSpanID oteltrace.SpanID
zeroTraceID = unique.Make(oteltrace.TraceID([16]byte{}))
)
func ToSpanID(bytes []byte) (oteltrace.SpanID, bool) {
switch len(bytes) {
case 0:
return zeroSpanID, true
case 8:
return oteltrace.SpanID(bytes), true
}
return zeroSpanID, false
}
func ToTraceID(bytes []byte) (unique.Handle[oteltrace.TraceID], bool) {
switch len(bytes) {
case 0:
return zeroTraceID, true
case 16:
return unique.Make(oteltrace.TraceID(bytes)), true
}
return zeroTraceID, false
}