- Notifications
You must be signed in to change notification settings - Fork 839
Open
Description
I tried using the example code...
importsysfromprometheus_client.openmetrics.parserimporttext_string_to_metric_familiesforfamilyintext_string_to_metric_families(sys.stdin.read()): forsampleinfamily.samples: print("Name:{0} Labels:{1} Value:{2} Timestamp:{3}".format(*sample))...to parse an OpenMetrics file produced by promtool tsdb dump-openmetrics, but I run into the following issue:
Traceback (most recent call last): File "/home/nicolas/IE6/synapse-meshsim/exp/./normalise_timestamps.py", line 6, in <module> for family in text_string_to_metric_families(sys.stdin.read()): File "/home/nicolas/IE6/synapse-meshsim/exp/venv/lib/python3.11/site-packages/prometheus_client/openmetrics/parser.py", line 18, in text_string_to_metric_families yield from text_fd_to_metric_families(StringIO.StringIO(text)) File "/home/nicolas/IE6/synapse-meshsim/exp/venv/lib/python3.11/site-packages/prometheus_client/openmetrics/parser.py", line 543, in text_fd_to_metric_families yield build_metric(name, documentation, typ, unit, samples) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/nicolas/IE6/synapse-meshsim/exp/venv/lib/python3.11/site-packages/prometheus_client/openmetrics/parser.py", line 472, in build_metric raise ValueError("Clashing name: " + name + suffix) ValueError: Clashing name: go_gc_duration_seconds This comes from this code:
client_python/prometheus_client/openmetrics/parser.py
Lines 487 to 489 in 46eae7b
| forsuffixinset(type_suffixes.get(typ, []) + [""]): | |
| ifname+suffixinseen_names: | |
| raiseValueError("Clashing name: "+name+suffix) |
But I don't understand why this check exists in the first place? In my case, I have the same metrics for multiple instances, and dump-openmetrics groups them by instance, then by metrics name. Can't we just remove this check altogether?
Metadata
Metadata
Assignees
Labels
No labels