Skip to content

Commit 15a5f24

Browse files
committed
Allow only one sensor per process
- Avoids duplicated, triplicated metric reporting
1 parent d5bc33f commit 15a5f24

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

instana/tracer.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,28 @@
44
import opentracing
55
import instana.options as o
66
import instana.sensor as s
7+
import instana.log as ilog
78

89
from basictracer.context import SpanContext
910
from basictracer.span import BasicSpan
1011
from instana.util import generate_id
1112

13+
# In case a user or app creates multiple tracers, we limit to just
14+
# one sensor per process otherwise metrics collection is duplicated,
15+
# triplicated etc.
16+
gSensor = None
17+
1218

1319
class InstanaTracer(BasicTracer):
1420
sensor = None
1521

1622
def __init__(self, options=o.Options()):
17-
self.sensor = s.Sensor(options)
23+
global gSensor
24+
if gSensor is None:
25+
self.sensor = s.Sensor(options)
26+
gSensor = self.sensor
27+
else:
28+
self.sensor = gSensor
1829
super(InstanaTracer, self).__init__(
1930
r.InstanaRecorder(self.sensor), r.InstanaSampler())
2031

0 commit comments

Comments
 (0)