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:
| 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?
I tried using the example code...
...to parse an OpenMetrics file produced by
promtool tsdb dump-openmetrics, but I run into the following issue:This comes from this code:
client_python/prometheus_client/openmetrics/parser.py
Lines 487 to 489 in 46eae7b
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-openmetricsgroups them by instance, then by metrics name. Can't we just remove this check altogether?