8000 Handle empty label values for the pushgateway. (#547) · pathcl/client_python@3be4faf · GitHub
[go: up one dir, main page]

Skip to content

Commit 3be4faf

Browse files
authored
Handle empty label values for the pushgateway. (prometheus#547)
Fixes prometheus#546 Signed-off-by: Brian Brazil <brian.brazil@robustperception.io>
1 parent 18d9371 commit 3be4faf

File tree

2 files changed

+11
-1
lines changed

2 files changed

+11
-1
lines changed

prometheus_client/exposition.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -362,7 +362,10 @@ def _use_gateway(method, gateway, job, registry, grouping_key, timeout, handler)
362362

363363

364364
def _escape_grouping_key(k, v):
365-
if '/' in v:
365+
if v == "" :
366+
# Per https://github.com/prometheus/pushgateway/pull/346.
367+
return k + "@base64", "="
368+
elif '/' in v:
366369
# Added in Pushgateway 0.9.0.
367370
return k + "@base64", base64.urlsafe_b64encode(v.encode("utf-8")).decode("utf-8")
368371
else:

tests/test_exposition.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,13 @@ def test_push_with_groupingkey(self):
260260
self.assertEqual(self.requests[0][0].headers.get('content-type'), CONTENT_TYPE_LATEST)
261261
self.assertEqual(self.requests[0][1], b'# HELP g help\n# TYPE g gauge\ng 0.0\n')
262262

263+
def test_push_with_groupingkey_empty_label(self):
264+
push_to_gateway(self.address, "my_job", self.registry, {'a': ''})
265+
self.assertEqual(self.requests[0][0].command, 'PUT')
266+
self.assertEqual(self.requests[0][0].path, '/metrics/job/my_job/a@base64/=')
267+
self.assertEqual(self.requests[0][0].headers.get('content-type'), CONTENT_TYPE_LATEST)
268+
self.assertEqual(self.requests[0][1], b'# HELP g help\n# TYPE g gauge\ng 0.0\n')
269+
263270
def test_push_with_complex_groupingkey(self):
264271
push_to_gateway(self.address, "my_job", self.registry, {'a': 9, 'b': 'a/ z'})
265272
self.assertEqual(self.requests[0][0].command, 'PUT')

0 commit comments

Comments
 (0)
0