From a822bcf24505a7757fa10a76fa6f250c0d0e4212 Mon Sep 17 00:00:00 2001 From: Andrew Steurer <94206073+asteurer@users.noreply.github.com> Date: Wed, 29 Apr 2026 14:28:17 -0500 Subject: [PATCH 1/2] fix: removing hardcoded traceflag Signed-off-by: Andrew Steurer <94206073+asteurer@users.noreply.github.com> --- go/tracing/conversions.go | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/go/tracing/conversions.go b/go/tracing/conversions.go index 9be14a1..16a063b 100644 --- a/go/tracing/conversions.go +++ b/go/tracing/conversions.go @@ -119,10 +119,18 @@ func toOtelSpanContext(ctx wasi_otel_tracing.SpanContext) traceApi.SpanContext { traceState = ts } + var traceFlags traceApi.TraceFlags + switch ctx.TraceFlags { + case wasi_otel_tracing.TraceFlagsSampled: + traceFlags = traceApi.FlagsSampled + default: + // traceFlags is empty, which means FlagsNotSampled + } + return traceApi.NewSpanContext(traceApi.SpanContextConfig{ TraceID: [16]byte(tid), SpanID: [8]byte(sid), - TraceFlags: traceApi.FlagsSampled, + TraceFlags: traceFlags, TraceState: traceState, Remote: ctx.IsRemote, }) @@ -138,10 +146,18 @@ func toWasiSpanContext(s traceApi.SpanContext) wasi_otel_tracing.SpanContext { return true }) + var traceFlags wasi_otel_tracing.TraceFlags + switch s.TraceFlags() { + case traceApi.FlagsSampled: + traceFlags = wasi_otel_tracing.TraceFlagsSampled + default: + // traceFlags is empty, which means FlagsNotSampled + } + return wasi_otel_tracing.SpanContext{ TraceId: s.TraceID().String(), SpanId: s.SpanID().String(), - TraceFlags: wasi_otel_tracing.TraceFlagsSampled, + TraceFlags: traceFlags, IsRemote: s.IsRemote(), TraceState: traceState, } From 797cd2afbb1b851c2aed9e1a42f34b9d1eba4a58 Mon Sep 17 00:00:00 2001 From: Andrew Steurer <94206073+asteurer@users.noreply.github.com> Date: Wed, 29 Apr 2026 15:34:13 -0500 Subject: [PATCH 2/2] fix: bug in metrics exemplars Signed-off-by: Andrew Steurer <94206073+asteurer@users.noreply.github.com> --- go/metrics/conversions.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/go/metrics/conversions.go b/go/metrics/conversions.go index 82b4b7a..02d3fe5 100644 --- a/go/metrics/conversions.go +++ b/go/metrics/conversions.go @@ -1,6 +1,7 @@ package metrics import ( + "encoding/hex" "time" "github.com/calebschoepp/opentelemetry-wasi/internal/wasi_clocks_wall_clock" @@ -245,8 +246,8 @@ func toWasiExemplar[T float64 | int64](exemplars []metricdata.Exemplar[T]) []was FilteredAttributes: types.ToWasiAttributes(e.FilteredAttributes), Time: types.ToWasiTime(e.Time), Value: toWasiMetricNumber(e.Value), - SpanId: string(e.SpanID), - TraceId: string(e.TraceID), + SpanId: hex.EncodeToString(e.SpanID), + TraceId: hex.EncodeToString(e.TraceID), } }