From 7c8ae12cbd909cd003719cb7f7150353a0f30d23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nathan=20V=C4=93rzemnieks?= Date: Wed, 10 Jul 2024 01:22:26 -0700 Subject: [PATCH] Tracing: Helper function to retrieve trace ID from context (#1027) --- backend/tracing/tracing.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/backend/tracing/tracing.go b/backend/tracing/tracing.go index 0ff7d5edc..5fb0d4444 100644 --- a/backend/tracing/tracing.go +++ b/backend/tracing/tracing.go @@ -1,6 +1,7 @@ package tracing import ( + "context" "sync" "go.opentelemetry.io/otel" @@ -40,3 +41,12 @@ func DefaultTracer() trace.Tracer { func InitDefaultTracer(tracer trace.Tracer) { defaultTracer = &contextualTracer{tracer: tracer} } + +func TraceIDFromContext(ctx context.Context, requireSampled bool) string { + spanCtx := trace.SpanContextFromContext(ctx) + if !spanCtx.HasTraceID() || !spanCtx.IsValid() || (requireSampled && !spanCtx.IsSampled()) { + return "" + } + + return spanCtx.TraceID().String() +}