Files
zitadel/backend/v3/telemetry/tracing/tracer.go
2025-05-08 19:01:55 +02:00

25 lines
540 B
Go

package tracing
import (
"context"
"go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/otel/trace/noop"
)
// Tracer is a wrapper around the OpenTelemetry Tracer interface.
type Tracer struct {
trace.Tracer
}
var noopTracer = Tracer{
Tracer: noop.NewTracerProvider().Tracer(""),
}
func (t *Tracer) Start(ctx context.Context, spanName string, opts ...trace.SpanStartOption) (context.Context, trace.Span) {
if t.Tracer == nil {
return noopTracer.Start(ctx, spanName, opts...)
}
return t.Tracer.Start(ctx, spanName, opts...)
}