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:
@@ -49,7 +49,8 @@ class Jaeger(base.Driver):
|
|||||||
"local_agent": {
|
"local_agent": {
|
||||||
"reporting_host": parsed_url.hostname,
|
"reporting_host": parsed_url.hostname,
|
||||||
"reporting_port": parsed_url.port,
|
"reporting_port": parsed_url.port,
|
||||||
}
|
},
|
||||||
|
"tags": conf.profiler_jaeger.process_tags
|
||||||
}
|
}
|
||||||
|
|
||||||
# Initialize tracer for each profiler
|
# Initialize tracer for each profiler
|
||||||
|
@@ -180,8 +180,16 @@ _service_name_prefix = cfg.StrOpt(
|
|||||||
Set service name prefix to Jaeger service name.
|
Set service name prefix to Jaeger service name.
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
_process_tags = cfg.DictOpt(
|
||||||
|
"process_tags",
|
||||||
|
default={},
|
||||||
|
help="""
|
||||||
|
Set process tracer tags.
|
||||||
|
""")
|
||||||
|
|
||||||
_JAEGER_OPTS = [
|
_JAEGER_OPTS = [
|
||||||
_service_name_prefix
|
_service_name_prefix,
|
||||||
|
_process_tags
|
||||||
]
|
]
|
||||||
|
|
||||||
cfg.CONF.register_opts(_JAEGER_OPTS, group=_jaegerprofiler_opt_group)
|
cfg.CONF.register_opts(_JAEGER_OPTS, group=_jaegerprofiler_opt_group)
|
||||||
|
@@ -30,6 +30,8 @@ class JaegerTestCase(test.TestCase):
|
|||||||
super(JaegerTestCase, self).setUp()
|
super(JaegerTestCase, self).setUp()
|
||||||
|
|
||||||
opts.set_defaults(cfg.CONF)
|
opts.set_defaults(cfg.CONF)
|
||||||
|
cfg.CONF.set_default(
|
||||||
|
"process_tags", "k1:v1,k2:v2", "profiler_jaeger")
|
||||||
|
|
||||||
self.payload_start = {
|
self.payload_start = {
|
||||||
"name": "api-start",
|
"name": "api-start",
|
||||||
@@ -60,7 +62,8 @@ class JaegerTestCase(test.TestCase):
|
|||||||
# see: jaeger_client/config.py#L374
|
# see: jaeger_client/config.py#L374
|
||||||
Config._initialized = False
|
Config._initialized = False
|
||||||
self.driver = jaeger.Jaeger("jaeger://127.0.0.1:6831",
|
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")
|
@mock.patch("osprofiler._utils.shorten_id")
|
||||||
def test_notify_start(self, mock_shorten_id):
|
def test_notify_start(self, mock_shorten_id):
|
||||||
@@ -97,3 +100,11 @@ class JaegerTestCase(test.TestCase):
|
|||||||
"service_name_prefix", "prx1", "profiler_jaeger")
|
"service_name_prefix", "prx1", "profiler_jaeger")
|
||||||
self.assertEqual("prx1-pr1-svc1", self.driver._get_service_name(
|
self.assertEqual("prx1-pr1-svc1", self.driver._get_service_name(
|
||||||
cfg.CONF, "pr1", "svc1"))
|
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)
|
||||||
|
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Add ability to set tracer process tags to Jaeger via a
|
||||||
|
configuration option introduced, `profiler_jaeger/process_tags`.
|
Reference in New Issue
Block a user