@@ -26,6 +26,8 @@ type detector struct {
26
26
var ServiceName string
27
27
var Recorder * TraceRecorder
28
28
29
+ var Resource * resource.Resource
30
+
29
31
var detectors map [string ]detector
30
32
var once sync.Once
31
33
var tp trace.TracerProvider
@@ -97,13 +99,16 @@ func detect() error {
97
99
// enable log with traceID when valid exporter
98
100
bklog .EnableLogWithTraceID (true )
99
101
100
- res , err := resource .Detect (context .Background (), serviceNameDetector {})
101
- if err != nil {
102
- return err
103
- }
104
- res , err = resource .Merge (resource .Default (), res )
105
- if err != nil {
106
- return err
102
+ if Resource == nil {
103
+ res , err := resource .Detect (context .Background (), serviceNameDetector {})
104
+ if err != nil {
105
+ return err
106
+ }
107
+ res , err = resource .Merge (resource .Default (), res )
108
+ if err != nil {
109
+ return err
110
+ }
111
+ Resource = res
107
112
}
108
113
109
114
sp := sdktrace .NewBatchSpanProcessor (exp )
@@ -112,7 +117,10 @@ func detect() error {
112
117
Recorder .flush = sp .ForceFlush
113
118
}
114
119
115
- sdktp := sdktrace .NewTracerProvider (sdktrace .WithSpanProcessor (sp ), sdktrace .WithResource (res ))
120
+ sdktp := sdktrace .NewTracerProvider (
121
+ sdktrace .WithSpanProcessor (sp ),
122
+ sdktrace .WithResource (Resource ),
123
+ )
116
124
closers = append (closers , sdktp .Shutdown )
117
125
118
126
exporter = exp
0 commit comments