From 7263834b8d659ca9dc4b6e48db0c012c5589ed89 Mon Sep 17 00:00:00 2001 From: James Belleau Date: Mon, 17 Apr 2017 17:48:59 -0500 Subject: [PATCH 1/2] Added removeall --- prometheus_client/core.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/prometheus_client/core.py b/prometheus_client/core.py index 6dd7e45b..ccfc80cf 100644 --- a/prometheus_client/core.py +++ b/prometheus_client/core.py @@ -301,6 +301,11 @@ def remove(self, *labelvalues): with self._lock: del self._metrics[labelvalues] + def removeall(self): + rmlabelvalues = self._metrics.keys() + for labelvalues in rmlabelvalues: + self.remove(*labelvalues) + def _samples(self): with self._lock: metrics = self._metrics.copy() From d6d9be90c8dc19701f016917f103ffaa52e11956 Mon Sep 17 00:00:00 2001 From: James Belleau Date: Mon, 17 Apr 2017 17:59:51 -0500 Subject: [PATCH 2/2] Added test_removeall --- tests/test_core.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tests/test_core.py b/tests/test_core.py index ce3d3467..fc539ea9 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -253,6 +253,15 @@ def test_remove(self): self.assertEqual(None, self.registry.get_sample_value('c', {'l': 'x'})) self.assertEqual(2, self.registry.get_sample_value('c', {'l': 'y'})) + def test_removeall(self): + self.counter.labels('x').inc() + self.counter.labels('y').inc(2) + self.assertEqual(1, self.registry.get_sample_value('c', {'l': 'x'})) + self.assertEqual(2, self.registry.get_sample_value('c', {'l': 'y'})) + self.counter.removeall() + self.assertEqual(None, self.registry.get_sample_value('c', {'l': 'x'})) + self.assertEqual(None, self.registry.get_sample_value('c', {'l': 'y'})) + def test_incorrect_label_count_raises(self): self.assertRaises(ValueError, self.counter.labels) self.assertRaises(ValueError, self.counter.labels, 'a', 'b')