diff options
author | Sahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com> | 2023-02-09 09:56:42 +0100 |
---|---|---|
committer | Sahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com> | 2023-02-16 12:17:31 +0000 |
commit | 91d7c35f1c11b57c4b3d625c4810dbfa1437191d (patch) | |
tree | 4c5d5fd07e7e1df3baa50d6cc73eb96100686b73 | |
parent | b7468756bcfdf3fe74e7cacb0562a7f969472250 (diff) | |
download | osprofiler-91d7c35f1c11b57c4b3d625c4810dbfa1437191d.tar.gz |
jaeger: introduce process tags' option for tracer
Closes-bug: 2006611
Signed-off-by: Sahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com>
Change-Id: I938b52d7785d421015b888c9d70a5b0bf032772f
-rw-r--r-- | osprofiler/drivers/jaeger.py | 3 | ||||
-rw-r--r-- | osprofiler/opts.py | 10 | ||||
-rw-r--r-- | osprofiler/tests/unit/drivers/test_jaeger.py | 13 | ||||
-rw-r--r-- | releasenotes/notes/jaeger-add-process-tags-79d5f5d7a0b049ef.yaml | 5 |
4 files changed, 28 insertions, 3 deletions
diff --git a/osprofiler/drivers/jaeger.py b/osprofiler/drivers/jaeger.py index 990818c..67e75c3 100644 --- a/osprofiler/drivers/jaeger.py +++ b/osprofiler/drivers/jaeger.py @@ -49,7 +49,8 @@ class Jaeger(base.Driver): "local_agent": { "reporting_host": parsed_url.hostname, "reporting_port": parsed_url.port, - } + }, + "tags": conf.profiler_jaeger.process_tags } # Initialize tracer for each profiler diff --git a/osprofiler/opts.py b/osprofiler/opts.py index 13a8022..58d5806 100644 --- a/osprofiler/opts.py +++ b/osprofiler/opts.py @@ -180,8 +180,16 @@ _service_name_prefix = cfg.StrOpt( Set service name prefix to Jaeger service name. """) +_process_tags = cfg.DictOpt( + "process_tags", + default={}, + help=""" +Set process tracer tags. +""") + _JAEGER_OPTS = [ - _service_name_prefix + _service_name_prefix, + _process_tags ] cfg.CONF.register_opts(_JAEGER_OPTS, group=_jaegerprofiler_opt_group) diff --git a/osprofiler/tests/unit/drivers/test_jaeger.py b/osprofiler/tests/unit/drivers/test_jaeger.py index 69cccd9..128d8aa 100644 --- a/osprofiler/tests/unit/drivers/test_jaeger.py +++ b/osprofiler/tests/unit/drivers/test_jaeger.py @@ -30,6 +30,8 @@ class JaegerTestCase(test.TestCase): super(JaegerTestCase, self).setUp() opts.set_defaults(cfg.CONF) + cfg.CONF.set_default( + "process_tags", "k1:v1,k2:v2", "profiler_jaeger") self.payload_start = { "name": "api-start", @@ -60,7 +62,8 @@ class JaegerTestCase(test.TestCase): # see: jaeger_client/config.py#L374 Config._initialized = False self.driver = jaeger.Jaeger("jaeger://127.0.0.1:6831", - project="nova", service="api") + project="nova", service="api", + conf=cfg.CONF) @mock.patch("osprofiler._utils.shorten_id") def test_notify_start(self, mock_shorten_id): @@ -97,3 +100,11 @@ class JaegerTestCase(test.TestCase): "service_name_prefix", "prx1", "profiler_jaeger") self.assertEqual("prx1-pr1-svc1", self.driver._get_service_name( cfg.CONF, "pr1", "svc1")) + + def test_process_tags(self): + tags = self.driver.tracer.tags + # Let's remove variable tags generated by Jaeger client + del tags['hostname'] + del tags['jaeger.version'] + del tags['ip'] + self.assertEqual({'k1': 'v1', 'k2': 'v2'}, tags) diff --git a/releasenotes/notes/jaeger-add-process-tags-79d5f5d7a0b049ef.yaml b/releasenotes/notes/jaeger-add-process-tags-79d5f5d7a0b049ef.yaml new file mode 100644 index 0000000..383f7b5 --- /dev/null +++ b/releasenotes/notes/jaeger-add-process-tags-79d5f5d7a0b049ef.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + Add ability to set tracer process tags to Jaeger via a + configuration option introduced, `profiler_jaeger/process_tags`. |