@@ -41,35 +41,25 @@ type TelemetryClient interface {
41
41
// each time this function is invoked.
42
42
Resource () * resource.Resource
43
43
44
- // TracerProvider returns a TracerProvider. This TracerProvider will be configured
45
- // with the default tracing components for a CLI program along with any options given
46
- // for the SDK.
47
- TracerProvider (ctx context.Context , opts ... sdktrace.TracerProviderOption ) TracerProvider
44
+ // TracerProvider returns the currently initialized TracerProvider. This TracerProvider will be configured
45
+ // with the default tracing components for a CLI program
46
+ TracerProvider () trace.TracerProvider
48
47
49
- // MeterProvider returns a MeterProvider. This MeterProvider will be configured
50
- // with the default metric components for a CLI program along with any options given
51
- // for the SDK.
52
- MeterProvider (ctx context.Context , opts ... sdkmetric.Option ) MeterProvider
48
+ // MeterProvider returns the currently initialized MeterProvider. This MeterProvider will be configured
49
+ // with the default metric components for a CLI program
50
+ MeterProvider () metric.MeterProvider
53
51
}
54
52
55
53
func (cli * DockerCli ) Resource () * resource.Resource {
56
54
return cli .res .Get ()
57
55
}
58
56
59
- func (cli * DockerCli ) TracerProvider (ctx context.Context , opts ... sdktrace.TracerProviderOption ) TracerProvider {
60
- allOpts := make ([]sdktrace.TracerProviderOption , 0 , len (opts )+ 2 )
61
- allOpts = append (allOpts , sdktrace .WithResource (cli .Resource ()))
62
- allOpts = append (allOpts , dockerSpanExporter (ctx , cli )... )
63
- allOpts = append (allOpts , opts ... )
64
- return sdktrace .NewTracerProvider (allOpts ... )
57
+ func (cli * DockerCli ) TracerProvider () trace.TracerProvider {
58
+ return otel .GetTracerProvider ()
65
59
}
66
60
67
- func (cli * DockerCli ) MeterProvider (ctx context.Context , opts ... sdkmetric.Option ) MeterProvider {
68
- allOpts := make ([]sdkmetric.Option , 0 , len (opts )+ 2 )
69
- allOpts = append (allOpts , sdkmetric .WithResource (cli .Resource ()))
70
- allOpts = append (allOpts , dockerMetricExporter (ctx , cli )... )
71
- allOpts = append (allOpts , opts ... )
72
- return sdkmetric .NewMeterProvider (allOpts ... )
61
+ func (cli * DockerCli ) MeterProvider () metric.MeterProvider {
62
+ return otel .GetMeterProvider ()
73
63
}
74
64
75
65
// WithResourceOptions configures additional options for the default resource. The default
@@ -122,6 +112,28 @@ func (r *telemetryResource) init() {
122
112
r .opts = nil
123
113
}
124
114
115
+ // createGlobalMeterProvider creates a new MeterProvider from the initialized DockerCli struct
116
+ // with the given options and sets it as the global meter provider
117
+ func (cli * DockerCli ) createGlobalMeterProvider (ctx context.Context , opts ... sdkmetric.Option ) {
118
+ allOpts := make ([]sdkmetric.Option , 0 , len (opts )+ 2 )
119
+ allOpts = append (allOpts , sdkmetric .WithResource (cli .Resource ()))
120
+ allOpts = append (allOpts , dockerMetricExporter (ctx , cli )... )
121
+ allOpts = append (allOpts , opts ... )
122
+ mp := sdkmetric .NewMeterProvider (allOpts ... )
123
+ otel .SetMeterProvider (mp )
124
+ }
125
+
126
+ // createGlobalTracerProvider creates a new TracerProvider from the initialized DockerCli struct
127
+ // with the given options and sets it as the global tracer provider
128
+ func (cli * DockerCli ) createGlobalTracerProvider (ctx context.Context , opts ... sdktrace.TracerProviderOption ) {
129
+ allOpts := make ([]sdktrace.TracerProviderOption , 0 , len (opts )+ 2 )
130
+ allOpts = append (allOpts , sdktrace .WithResource (cli .Resource ()))
131
+ allOpts = append (allOpts , dockerSpanExporter (ctx , cli )... )
132
+ allOpts = append (allOpts , opts ... )
133
+ tp := sdktrace .NewTracerProvider (allOpts ... )
134
+ otel .SetTracerProvider (tp )
135
+ }
136
+
125
137
func defaultResourceOptions () []resource.Option {
126
138
return []resource.Option {
127
139
resource .WithDetectors (serviceNameDetector {}),
0 commit comments