2025-04-29 06:03:47 +02:00
|
|
|
package tracing
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
|
|
|
"go.opentelemetry.io/otel/trace"
|
|
|
|
"go.opentelemetry.io/otel/trace/noop"
|
|
|
|
)
|
|
|
|
|
2025-05-08 19:01:55 +02:00
|
|
|
// Tracer is a wrapper around the OpenTelemetry Tracer interface.
|
2025-04-29 06:03:47 +02:00
|
|
|
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...)
|
|
|
|
}
|