From cb6176dbbbe98b6a4c7bf913cda0689bb2dc6d01 Mon Sep 17 00:00:00 2001 From: Germiniku Date: Wed, 24 Aug 2022 12:39:20 +0800 Subject: [PATCH] feat(tracing) custom tracer name (#2310) * feat(log): add tencent cls fix update * refactor(log) use the same interface name * fix(log) tencent toString * feat(tracing) custom tracer name --- middleware/tracing/tracer.go | 5 +++-- middleware/tracing/tracing.go | 8 ++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/middleware/tracing/tracer.go b/middleware/tracing/tracer.go index 48d4eaa14..cf9115bbf 100644 --- a/middleware/tracing/tracer.go +++ b/middleware/tracing/tracer.go @@ -24,6 +24,7 @@ type Tracer struct { func NewTracer(kind trace.SpanKind, opts ...Option) *Tracer { op := options{ propagator: propagation.NewCompositeTextMapPropagator(Metadata{}, propagation.Baggage{}, propagation.TraceContext{}), + tracerName: "kratos", } for _, o := range opts { o(&op) @@ -34,9 +35,9 @@ func NewTracer(kind trace.SpanKind, opts ...Option) *Tracer { switch kind { case trace.SpanKindClient: - return &Tracer{tracer: otel.Tracer("kratos"), kind: kind, opt: &op} + return &Tracer{tracer: otel.Tracer(op.tracerName), kind: kind, opt: &op} case trace.SpanKindServer: - return &Tracer{tracer: otel.Tracer("kratos"), kind: kind, opt: &op} + return &Tracer{tracer: otel.Tracer(op.tracerName), kind: kind, opt: &op} default: panic(fmt.Sprintf("unsupported span kind: %v", kind)) } diff --git a/middleware/tracing/tracing.go b/middleware/tracing/tracing.go index c04b13d0b..167725f40 100644 --- a/middleware/tracing/tracing.go +++ b/middleware/tracing/tracing.go @@ -15,6 +15,7 @@ import ( type Option func(*options) type options struct { + tracerName string tracerProvider trace.TracerProvider propagator propagation.TextMapPropagator } @@ -34,6 +35,13 @@ func WithTracerProvider(provider trace.TracerProvider) Option { } } +// WithTracerName with tracer name +func WithTracerName(tracerName string) Option { + return func(opts *options) { + opts.tracerName = tracerName + } +} + // Server returns a new server middleware for OpenTelemetry. func Server(opts ...Option) middleware.Middleware { tracer := NewTracer(trace.SpanKindServer, opts...)