File tree Expand file tree Collapse file tree 2 files changed +20
-5
lines changed
observability/opentelemetry/v2/client Expand file tree Collapse file tree 2 files changed +20
-5
lines changed Original file line number Diff line number Diff line change @@ -24,6 +24,8 @@ import (
2424
2525// OTelObservabilityService implements the ObservabilityService interface from cloudevents
2626type OTelObservabilityService struct {
27+ traceProvider trace.TracerProvider
28+
2729 tracer trace.Tracer
2830 spanAttributesGetter func (cloudevents.Event ) []attribute.KeyValue
2931 spanNameFormatter func (cloudevents.Event ) string
@@ -34,11 +36,8 @@ func NewOTelObservabilityService(opts ...OTelObservabilityServiceOption) *OTelOb
3436 tracerProvider := otel .GetTracerProvider ()
3537
3638 o := & OTelObservabilityService {
37- tracer : tracerProvider .Tracer (
38- instrumentationName ,
39- // TODO: Can we have the package version here?
40- // trace.WithInstrumentationVersion("1.0.0"),
41- ),
39+ traceProvider : tracerProvider ,
40+ tracer : nil ,
4241 spanNameFormatter : defaultSpanNameFormatter ,
4342 }
4443
@@ -47,6 +46,12 @@ func NewOTelObservabilityService(opts ...OTelObservabilityServiceOption) *OTelOb
4746 opt (o )
4847 }
4948
49+ o .tracer = o .traceProvider .Tracer (
50+ instrumentationName ,
51+ // TODO: Can we have the package version here?
52+ // trace.WithInstrumentationVersion("1.0.0"),
53+ )
54+
5055 return o
5156}
5257
Original file line number Diff line number Diff line change @@ -7,6 +7,7 @@ package client
77
88import (
99 "go.opentelemetry.io/otel/attribute"
10+ "go.opentelemetry.io/otel/trace"
1011
1112 cloudevents "github.com/cloudevents/sdk-go/v2"
1213 "github.com/cloudevents/sdk-go/v2/observability"
@@ -37,6 +38,15 @@ func WithSpanNameFormatter(nameFormatter func(cloudevents.Event) string) OTelObs
3738 }
3839}
3940
41+ // WithTracerProvider sets the tracer provider to use for creating spans.
42+ func WithTracerProvider (tracerProvider trace.TracerProvider ) OTelObservabilityServiceOption {
43+ return func (os * OTelObservabilityService ) {
44+ if tracerProvider != nil {
45+ os .traceProvider = tracerProvider
46+ }
47+ }
48+ }
49+
4050var defaultSpanNameFormatter func (cloudevents.Event ) string = func (e cloudevents.Event ) string {
4151 return observability .ClientSpanName + "." + e .Context .GetType ()
4252}
You can’t perform that action at this time.
0 commit comments