jaeger: introduce service name prefix
Closes-bug: #2003092 Signed-off-by: Sahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com> Change-Id: I743fdc1203af6735d5772728e1b5c2ca16d41d9e
This commit is contained in:
parent
9f50374dde
commit
b7468756bc
|
@ -53,12 +53,18 @@ class Jaeger(base.Driver):
|
|||
}
|
||||
|
||||
# Initialize tracer for each profiler
|
||||
service_name = "{}-{}".format(project, service)
|
||||
service_name = self._get_service_name(conf, project, service)
|
||||
config = jaeger_client.Config(cfg, service_name=service_name)
|
||||
self.tracer = config.initialize_tracer()
|
||||
|
||||
self.spans = collections.deque()
|
||||
|
||||
def _get_service_name(self, conf, project, service):
|
||||
prefix = conf.profiler_jaeger.service_name_prefix
|
||||
if prefix:
|
||||
return "{}-{}-{}".format(prefix, project, service)
|
||||
return "{}-{}".format(project, service)
|
||||
|
||||
@classmethod
|
||||
def get_name(cls):
|
||||
return "jaeger"
|
||||
|
|
|
@ -170,6 +170,22 @@ _PROFILER_OPTS = [
|
|||
|
||||
cfg.CONF.register_opts(_PROFILER_OPTS, group=_profiler_opt_group)
|
||||
|
||||
_jaegerprofiler_opt_group = cfg.OptGroup(
|
||||
"profiler_jaeger",
|
||||
title="Jaeger's profiler driver related options")
|
||||
|
||||
_service_name_prefix = cfg.StrOpt(
|
||||
"service_name_prefix",
|
||||
help="""
|
||||
Set service name prefix to Jaeger service name.
|
||||
""")
|
||||
|
||||
_JAEGER_OPTS = [
|
||||
_service_name_prefix
|
||||
]
|
||||
|
||||
cfg.CONF.register_opts(_JAEGER_OPTS, group=_jaegerprofiler_opt_group)
|
||||
|
||||
|
||||
def set_defaults(conf, enabled=None, trace_sqlalchemy=None, hmac_keys=None,
|
||||
connection_string=None, es_doc_type=None,
|
||||
|
@ -239,4 +255,5 @@ def disable_web_trace(conf=None):
|
|||
|
||||
|
||||
def list_opts():
|
||||
return [(_profiler_opt_group.name, _PROFILER_OPTS)]
|
||||
return [(_profiler_opt_group.name, _PROFILER_OPTS),
|
||||
(_jaegerprofiler_opt_group, _JAEGER_OPTS)]
|
||||
|
|
|
@ -15,7 +15,10 @@
|
|||
|
||||
from unittest import mock
|
||||
|
||||
from oslo_config import cfg
|
||||
|
||||
from osprofiler.drivers import jaeger
|
||||
from osprofiler import opts
|
||||
from osprofiler.tests import test
|
||||
|
||||
from jaeger_client import Config
|
||||
|
@ -25,6 +28,9 @@ class JaegerTestCase(test.TestCase):
|
|||
|
||||
def setUp(self):
|
||||
super(JaegerTestCase, self).setUp()
|
||||
|
||||
opts.set_defaults(cfg.CONF)
|
||||
|
||||
self.payload_start = {
|
||||
"name": "api-start",
|
||||
"base_id": "4e3e0ec6-2938-40b1-8504-09eb1d4b0dee",
|
||||
|
@ -81,3 +87,13 @@ class JaegerTestCase(test.TestCase):
|
|||
mock_time.reset_mock()
|
||||
|
||||
span.finish.assert_called_once_with(finish_time=fake_time)
|
||||
|
||||
def test_service_name_default(self):
|
||||
self.assertEqual("pr1-svc1", self.driver._get_service_name(
|
||||
cfg.CONF, "pr1", "svc1"))
|
||||
|
||||
def test_service_name_prefix(self):
|
||||
cfg.CONF.set_default(
|
||||
"service_name_prefix", "prx1", "profiler_jaeger")
|
||||
self.assertEqual("prx1-pr1-svc1", self.driver._get_service_name(
|
||||
cfg.CONF, "pr1", "svc1"))
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Introduces service name prefix for Jaeger driver. Please consider
|
||||
using option `profiler_jaeger/service_name_prefix` to set it.
|
Loading…
Reference in New Issue