From 80c43d266c7172356cce3a86dad95d786754b0f4 Mon Sep 17 00:00:00 2001 From: Antoine Tollenaere Date: Tue, 25 Apr 2017 10:19:20 +0200 Subject: [PATCH] Fix namespace and subsystem in multiprocess mode See https://github.com/prometheus/client_python/issues/158 for details. --- prometheus_client/core.py | 4 ++-- tests/test_multiprocess.py | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/prometheus_client/core.py b/prometheus_client/core.py index adc012bb..b770f55b 100644 --- a/prometheus_client/core.py +++ b/prometheus_client/core.py @@ -534,9 +534,9 @@ def init(name, documentation, labelnames=(), namespace='', subsystem='', registr raise ValueError('Reserved label metric name: ' + l) if l in cls._reserved_labelnames: raise ValueError('Reserved label metric name: ' + l) - collector = _LabelWrapper(cls, name, labelnames, **kwargs) + collector = _LabelWrapper(cls, full_name, labelnames, **kwargs) else: - collector = cls(name, (), (), **kwargs) + collector = cls(full_name, (), (), **kwargs) if not _METRIC_NAME_RE.match(full_name): raise ValueError('Invalid metric name: ' + full_name) diff --git a/tests/test_multiprocess.py b/tests/test_multiprocess.py index f1dcee9d..c05e4576 100644 --- a/tests/test_multiprocess.py +++ b/tests/test_multiprocess.py @@ -110,6 +110,12 @@ def test_gauge_livesum(self): mark_process_dead(123, os.environ['prometheus_multiproc_dir']) self.assertEqual(2, self.registry.get_sample_value('g')) + def test_namespace_subsystem(self): + c1 = Counter('c', 'help', registry=None, namespace='ns', subsystem='ss') + c1.inc(1) + self.assertEqual(1, self.registry.get_sample_value('ns_ss_c')) + + class TestMmapedDict(unittest.TestCase): def setUp(self): fd, self.tempfile = tempfile.mkstemp()