Skip to content

Commit

Permalink
simplify tracer
Browse files Browse the repository at this point in the history
  • Loading branch information
sysulq committed Jan 9, 2025
1 parent d9c232d commit e5e9358
Showing 1 changed file with 4 additions and 19 deletions.
23 changes: 4 additions & 19 deletions pkg/core/xtrace/trace.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,43 +40,28 @@ func SetGlobalTracer(tp trace.TracerProvider) {
otel.SetTracerProvider(wrapperTracerProvider)
}

type options struct {
propagator propagation.TextMapPropagator
}

// Option is tracing option.
type Option func(*options)

// Tracer is otel span tracer
type Tracer struct {
tracer trace.Tracer
kind trace.SpanKind
opt *options
}

// NewTracer create tracer instance
func NewTracer(kind trace.SpanKind, opts ...Option) *Tracer {
op := options{
propagator: propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, Jaeger{}),
// propagator: propagation.NewCompositeTextMapPropagator(Metadata{}, propagation.Baggage{}, propagation.TraceContext{}),
}
for _, o := range opts {
o(&op)
}
return &Tracer{tracer: otel.Tracer("jupiter"), kind: kind, opt: &op}
func NewTracer(kind trace.SpanKind) *Tracer {
return &Tracer{tracer: otel.Tracer("jupiter"), kind: kind}
}

// Start start tracing span
func (t *Tracer) Start(ctx context.Context, operation string, carrier propagation.TextMapCarrier, opts ...trace.SpanStartOption) (context.Context, trace.Span) {
if (t.kind == trace.SpanKindServer || t.kind == trace.SpanKindConsumer) && carrier != nil {
ctx = t.opt.propagator.Extract(ctx, carrier)
ctx = otel.GetTextMapPropagator().Extract(ctx, carrier)
}
opts = append(opts, trace.WithSpanKind(t.kind))

ctx, span := t.tracer.Start(ctx, operation, opts...)

if (t.kind == trace.SpanKindClient || t.kind == trace.SpanKindProducer) && carrier != nil {
t.opt.propagator.Inject(ctx, carrier)
otel.GetTextMapPropagator().Inject(ctx, carrier)
}
return ctx, span
}

0 comments on commit e5e9358

Please sign in to comment.