You've already forked opentelemetry-go
mirror of
https://github.com/open-telemetry/opentelemetry-go.git
synced 2026-06-03 18:35:08 +02:00
Pass options to configured TracerProvider (#1329)
Co-authored-by: Tyler Yahn <MrAlias@users.noreply.github.com>
This commit is contained in:
+2
-1
@@ -37,7 +37,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
||||
- Rename `MergeItererator` to `MergeIterator` in the `go.opentelemetry.io/otel/label` package. (#1244)
|
||||
- Move the `go.opentelemetry.io/otel/api/metric/metrictest` package into `go.opentelemetry.io/oteltest` as part of #964. (#1252)
|
||||
- Move the `go.opentelemetry.io/otel/api/metric` package into `go.opentelemetry.io/otel/metric` as part of #1303. (#1321)
|
||||
- Move the `go.opentelemetry.io/otel/api/metric/registry` package into `go.opentelemetry.io/otel/metric/registry as a part of #1303. (#1316)
|
||||
- Move the `go.opentelemetry.io/otel/api/metric/registry` package into `go.opentelemetry.io/otel/metric/registry` as a part of #1303. (#1316)
|
||||
- Move the `Number` type (together with related functions) from `go.opentelemetry.io/otel/api/metric` package into `go.opentelemetry.io/otel/metric/number` as a part of #1303. (#1316)
|
||||
- The function signature of the Span `AddEvent` method in `go.opentelemetry.io/otel` is updated to no longer take an unused context and instead take a required name and a variable number of `EventOption`s. (#1254)
|
||||
- The function signature of the Span `RecordError` method in `go.opentelemetry.io/otel` is updated to no longer take an unused context and instead take a required error value and a variable number of `EventOption`s. (#1254)
|
||||
@@ -63,6 +63,7 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
||||
|
||||
- The `go.opentelemetry.io/otel/api/global` packages global TextMapPropagator now delegates functionality to a globally set delegate for all previously returned propagators. (#1258)
|
||||
- Fix condition in `label.Any`. (#1299)
|
||||
- Fix global `TracerProvider` to pass options to its configured provider. (#1329)
|
||||
|
||||
## [0.13.0] - 2020-10-08
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ func (p *tracerProvider) Tracer(name string, opts ...trace.TracerOption) trace.T
|
||||
defer p.mtx.Unlock()
|
||||
|
||||
if p.delegate != nil {
|
||||
return p.delegate.Tracer(name)
|
||||
return p.delegate.Tracer(name, opts...)
|
||||
}
|
||||
|
||||
t := &tracer{name: name, opts: opts}
|
||||
|
||||
@@ -23,6 +23,7 @@ import (
|
||||
"go.opentelemetry.io/otel"
|
||||
"go.opentelemetry.io/otel/internal/global"
|
||||
"go.opentelemetry.io/otel/oteltest"
|
||||
"go.opentelemetry.io/otel/trace"
|
||||
)
|
||||
|
||||
func TestTraceWithSDK(t *testing.T) {
|
||||
@@ -61,3 +62,32 @@ func TestTraceWithSDK(t *testing.T) {
|
||||
assert.ElementsMatch(t, expected, filterNames(sr.Started()))
|
||||
assert.ElementsMatch(t, expected, filterNames(sr.Completed()))
|
||||
}
|
||||
|
||||
type fnTracerProvider struct {
|
||||
tracer func(string, ...trace.TracerOption) trace.Tracer
|
||||
}
|
||||
|
||||
func (fn fnTracerProvider) Tracer(instrumentationName string, opts ...trace.TracerOption) trace.Tracer {
|
||||
return fn.tracer(instrumentationName, opts...)
|
||||
}
|
||||
|
||||
func TestTraceProviderDelegates(t *testing.T) {
|
||||
global.ResetForTest()
|
||||
|
||||
// Retrieve the placeholder TracerProvider.
|
||||
gtp := otel.GetTracerProvider()
|
||||
|
||||
// Configure it with a spy.
|
||||
called := false
|
||||
otel.SetTracerProvider(fnTracerProvider{
|
||||
tracer: func(name string, opts ...trace.TracerOption) trace.Tracer {
|
||||
called = true
|
||||
assert.Equal(t, "abc", name)
|
||||
assert.Equal(t, []trace.TracerOption{trace.WithInstrumentationVersion("xyz")}, opts)
|
||||
return trace.NewNoopTracerProvider().Tracer("")
|
||||
},
|
||||
})
|
||||
|
||||
gtp.Tracer("abc", trace.WithInstrumentationVersion("xyz"))
|
||||
assert.True(t, called, "expected configured TraceProvider to be called")
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user