Metrics Parsing Error with Prometheus Input Plugin for Telegraf
zandbelt opened this issue · 0 comments
Discussed in #1160
Originally posted by studersi January 17, 2024
We are attempting to integrate the metrics information introduced in mod_auth_openidc 2.4.15 into our monitoring setup.
We are using the Prometheus Input Plugin for Telegraf to collect the metrics.
Fetching the metrics appears to work as expected and the metrics are returned. However, there appears to be a parsing issue:
Telegraf log:
2024-01-17T09:19:19Z E! [inputs.prometheus] Error in plugin: error reading metrics for "https://123.123.123.123/oidc-metrics?format=prometheus&reset=true": reading text format failed: text format parsing error in line 9: second HELP line for metric name "example_com_authtype"
It looks like the response from mod_auth_openidc
does not comply with the specification: https://github.com/prometheus/docs/blob/main/content/docs/instrumenting/exposition_formats.md#comments-help-text-and-type-information.
Only one HELP line may exist for any given metric name.
Only one TYPE line may exist for a given metric name.
For example, the following output provides two HELP
and TYPE
lines for the metric example_com_authtype
:
# HELP example_com_authtype The number of requests handled by mod_auth_openidc.
# TYPE example_com_authtype counter
example_com_authtype{handler="mod_auth_openidc"} 0
# HELP example_com_authtype The number of requests handled by AuthType openid-connect.
# TYPE example_com_authtype counter
example_com_authtype{handler="openid-connect"} 0
Other metrics do not appear to have this issue. For example, there is only one HELP
and TYPE
line for example_com_provider_metadata_bucket
:
# HELP example_com_provider_metadata A histogram of provider discovery document requests.
# TYPE example_com_provider_metadata histogram
example_com_provider_metadata_bucket{le="0.1"} 0
example_com_provider_metadata_bucket{le="0.5"} 0
example_com_provider_metadata_bucket{le="1"} 0
example_com_provider_metadata_bucket{le="5"} 0
example_com_provider_metadata_bucket{le="10"} 0
example_com_provider_metadata_bucket{le="50"} 0
example_com_provider_metadata_bucket{le="100"} 0
example_com_provider_metadata_bucket{le="500"} 0
example_com_provider_metadata_bucket{le="1000"} 0
example_com_provider_metadata_bucket{le="5000"} 0
example_com_provider_metadata_bucket{le="+Inf"} 0
example_com_provider_metadata_sum 0
example_com_provider_metadata_count 0
Should these two example_com_authtype
metrics be documented only once or are these separate metrics that should be named differently?