From 21dc2405311c04d0a10d2299ac4fc6e9b94848c9 Mon Sep 17 00:00:00 2001 From: Jeff Schroeder Date: Sat, 28 Apr 2018 20:50:28 -0500 Subject: [PATCH] Don't attempt to lookup the ip address if specified via a tag This matches the functionality of jaeger-client-java after jaegertracing/jaeger-client-java#371 was merged. Refs: #166 --- jaeger_client/tracer.py | 5 +++-- tests/test_tracer.py | 15 +++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/jaeger_client/tracer.py b/jaeger_client/tracer.py index 0a42d223..845d4407 100644 --- a/jaeger_client/tracer.py +++ b/jaeger_client/tracer.py @@ -53,7 +53,6 @@ def __init__( self.service_name = service_name self.reporter = reporter self.sampler = sampler - self.ip_address = ipv4_to_int(local_ip()) self.metrics_factory = metrics_factory or LegacyMetricsFactory(metrics or Metrics()) self.metrics = TracerMetrics(self.metrics_factory) self.random = random.Random(time.time() * (os.getpid() or 1)) @@ -80,11 +79,13 @@ def __init__( self.codecs.update(extra_codecs) self.tags = { constants.JAEGER_VERSION_TAG_KEY: constants.JAEGER_CLIENT_VERSION, - constants.JAEGER_IP_TAG_KEY: self.ip_address, } if tags: self.tags.update(tags) + if self.tags.get(constants.JAEGER_IP_TAG_KEY) is None: + self.tags[constants.JAEGER_IP_TAG_KEY] = ipv4_to_int(local_ip()) + if self.tags.get(constants.JAEGER_HOSTNAME_TAG_KEY) is None: try: hostname = socket.gethostname() diff --git a/tests/test_tracer.py b/tests/test_tracer.py index 33da6eba..f9bd29ed 100644 --- a/tests/test_tracer.py +++ b/tests/test_tracer.py @@ -262,6 +262,7 @@ def test_tracer_override_codecs(): assert tracer.codecs[Format.BINARY] == "overridden_binary_codec",\ "Binary format codec not overridden" + def test_tracer_hostname_tag(): reporter = mock.MagicMock() sampler = ConstSampler(True) @@ -274,3 +275,17 @@ def test_tracer_hostname_tag(): assert tracer.tags[c.JAEGER_HOSTNAME_TAG_KEY] == \ 'jaeger-client-app.local' + + +def test_tracer_ip_tag(): + reporter = mock.MagicMock() + sampler = ConstSampler(True) + tracer = Tracer( + service_name='x', + tags={c.JAEGER_IP_TAG_KEY: '192.0.2.3'}, + reporter=reporter, + sampler=sampler, + ) + + assert tracer.tags[c.JAEGER_IP_TAG_KEY] == \ + '192.0.2.3'