1
0
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:
Haibo
2023-05-08 11:29:02 +08:00
committed by GitHub
parent c6a4604839
commit 1f10166028
2 changed files with 5 additions and 5 deletions

View File

@@ -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))
}

View File

@@ -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