summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com>2023-01-30 11:53:18 +0100
committerSahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com>2023-02-16 09:08:50 +0100
commitb7468756bcfdf3fe74e7cacb0562a7f969472250 (patch)
treee6f7078c0132984c29d211b1003a581faf892475
parent9f50374dde1362cf2c1d63d2e98d5b89b983a391 (diff)
downloadosprofiler-b7468756bcfdf3fe74e7cacb0562a7f969472250.tar.gz
jaeger: introduce service name prefix
Closes-bug: #2003092 Signed-off-by: Sahid Orentino Ferdjaoui <sahid.ferdjaoui@industrialdiscipline.com> Change-Id: I743fdc1203af6735d5772728e1b5c2ca16d41d9e
-rw-r--r--osprofiler/drivers/jaeger.py8
-rw-r--r--osprofiler/opts.py19
-rw-r--r--osprofiler/tests/unit/drivers/test_jaeger.py16
-rw-r--r--releasenotes/notes/jaeger-service-name-prefix-72878a930f700878.yaml5
4 files changed, 46 insertions, 2 deletions
diff --git a/osprofiler/drivers/jaeger.py b/osprofiler/drivers/jaeger.py
index 3f263b2..990818c 100644
--- a/osprofiler/drivers/jaeger.py
+++ b/osprofiler/drivers/jaeger.py
@@ -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"
diff --git a/osprofiler/opts.py b/osprofiler/opts.py
index 612a6c8..13a8022 100644
--- a/osprofiler/opts.py
+++ b/osprofiler/opts.py
@@ -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)]
diff --git a/osprofiler/tests/unit/drivers/test_jaeger.py b/osprofiler/tests/unit/drivers/test_jaeger.py
index 63790b1..69cccd9 100644
--- a/osprofiler/tests/unit/drivers/test_jaeger.py
+++ b/osprofiler/tests/unit/drivers/test_jaeger.py
@@ -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"))
diff --git a/releasenotes/notes/jaeger-service-name-prefix-72878a930f700878.yaml b/releasenotes/notes/jaeger-service-name-prefix-72878a930f700878.yaml
new file mode 100644
index 0000000..d71abee
--- /dev/null
+++ b/releasenotes/notes/jaeger-service-name-prefix-72878a930f700878.yaml
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Introduces service name prefix for Jaeger driver. Please consider
+ using option `profiler_jaeger/service_name_prefix` to set it.