diff --git a/prometheus_client/__init__.py b/prometheus_client/__init__.py index 2e2bea49..04075779 100644 --- a/prometheus_client/__init__.py +++ b/prometheus_client/__init__.py @@ -418,7 +418,7 @@ def generate_latest(registry=REGISTRY): if labels: labelstr = '{{{0}}}'.format(','.join( ['{0}="{1}"'.format( - k, v.replace('\\', r'\\').replace('\n', r'\n').replace('\'', r'\'')) + k, v.replace('\\', r'\\').replace('\n', r'\n').replace('"', r'\"')) for k, v in labels.items()])) else: labelstr = '' diff --git a/tests/test_client.py b/tests/test_client.py index 0faaab52..a28f3f4a 100644 --- a/tests/test_client.py +++ b/tests/test_client.py @@ -262,8 +262,8 @@ def test_unicode(self): def test_escaping(self): c = Counter('cc', 'A\ncount\\er', ['a'], registry=self.registry) - c.labels('\\x\n').inc(1) - self.assertEqual(b'# HELP cc A\\ncount\\\\er\n# TYPE cc counter\ncc{a="\\\\x\\n"} 1.0\n', generate_latest(self.registry)) + c.labels('\\x\n"').inc(1) + self.assertEqual(b'# HELP cc A\\ncount\\\\er\n# TYPE cc counter\ncc{a="\\\\x\\n\\""} 1.0\n', generate_latest(self.registry)) if __name__ == '__main__':