mirror of
https://github.com/go-kratos/kratos.git
synced 2025-09-16 09:16:35 +02:00
fix(tracing): use global provider by default, but allow custom providers (#2803)
This commit is contained in:
@@ -30,15 +30,15 @@ func NewTracer(kind trace.SpanKind, opts ...Option) *Tracer {
|
||||
for _, o := range opts {
|
||||
o(&op)
|
||||
}
|
||||
if op.tracerProvider != nil {
|
||||
otel.SetTracerProvider(op.tracerProvider)
|
||||
if op.tracerProvider == nil {
|
||||
op.tracerProvider = otel.GetTracerProvider()
|
||||
}
|
||||
|
||||
switch kind {
|
||||
case trace.SpanKindClient:
|
||||
return &Tracer{tracer: otel.Tracer(op.tracerName), kind: kind, opt: &op}
|
||||
return &Tracer{tracer: op.tracerProvider.Tracer(op.tracerName), kind: kind, opt: &op}
|
||||
case trace.SpanKindServer:
|
||||
return &Tracer{tracer: otel.Tracer(op.tracerName), kind: kind, opt: &op}
|
||||
return &Tracer{tracer: op.tracerProvider.Tracer(op.tracerName), kind: kind, opt: &op}
|
||||
default:
|
||||
panic(fmt.Sprintf("unsupported span kind: %v", kind))
|
||||
}
|
||||
|
@@ -29,7 +29,7 @@ func WithPropagator(propagator propagation.TextMapPropagator) Option {
|
||||
}
|
||||
|
||||
// WithTracerProvider with tracer provider.
|
||||
// Deprecated: use otel.SetTracerProvider(provider) instead.
|
||||
// By default, it uses the global provider that is set by otel.SetTracerProvider(provider).
|
||||
func WithTracerProvider(provider trace.TracerProvider) Option {
|
||||
return func(opts *options) {
|
||||
opts.tracerProvider = provider
|
||||
|
Reference in New Issue
Block a user