jaeger: introduce process tags' option for tracer

Closes-bug: 2006611
Signed-off-by: Sahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com>
Change-Id: I938b52d7785d421015b888c9d70a5b0bf032772f
This commit is contained in:
Sahid Orentino Ferdjaoui 2023-02-09 09:56:42 +01:00
parent b7468756bc
commit 91d7c35f1c
4 changed files with 28 additions and 3 deletions

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -0,0 +1,5 @@
---
features:
- |
Add ability to set tracer process tags to Jaeger via a
configuration option introduced, `profiler_jaeger/process_tags`.