From 41440a0542e2aa6b42b67602efb27de91aa002fe Mon Sep 17 00:00:00 2001 From: Lukas Holecek Date: Thu, 19 May 2022 14:00:16 +0200 Subject: [PATCH] Fix chaining labels in metrics (#38) JIRA: RHELWF-6624 --- greenwave/monitor.py | 4 +++- greenwave/tests/test_monitor.py | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/greenwave/monitor.py b/greenwave/monitor.py index 3696b6ad..51ba6ca1 100644 --- a/greenwave/monitor.py +++ b/greenwave/monitor.py @@ -44,7 +44,9 @@ def inc(self): client.incr(str(self)) def labels(self, **labeldict): - return Counter(self.name, labeldict=labeldict) + new_labeldict = dict(self.labeldict) + new_labeldict.update(labeldict) + return Counter(self.name, labeldict=new_labeldict) def count_exceptions(self): """Returns function decorator to increase counter on exception.""" diff --git a/greenwave/tests/test_monitor.py b/greenwave/tests/test_monitor.py index f48461b6..c65adc6f 100644 --- a/greenwave/tests/test_monitor.py +++ b/greenwave/tests/test_monitor.py @@ -13,6 +13,9 @@ def test_counter_to_str_with_labels(): counter = Counter('total_decisions').labels(handler='test') assert str(counter) == 'total_decisions[handler=test]' + counter2 = counter.labels(decision_context='context') + assert str(counter2) == 'total_decisions[handler=test,decision_context=context]' + def test_counter_no_host_set(monkeypatch): with patch('greenwave.monitor.StatsClient') as client: