summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com>2023-02-09 09:56:42 +0100
committerSahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com>2023-02-16 12:17:31 +0000
commit91d7c35f1c11b57c4b3d625c4810dbfa1437191d (patch)
tree4c5d5fd07e7e1df3baa50d6cc73eb96100686b73
parentb7468756bcfdf3fe74e7cacb0562a7f969472250 (diff)
downloadosprofiler-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.py3
-rw-r--r--osprofiler/opts.py10
-rw-r--r--osprofiler/tests/unit/drivers/test_jaeger.py13
-rw-r--r--releasenotes/notes/jaeger-add-process-tags-79d5f5d7a0b049ef.yaml5
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`.