Bug 253862 - prometheus_sysctl_exporter outputs invalid format
Summary: prometheus_sysctl_exporter outputs invalid format
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: bin (show other bugs)
Version: 12.2-RELEASE
Hardware: amd64 Any
: --- Affects Only Me
Assignee: freebsd-bugs (Nobody)
Depends on:
Reported: 2021-02-26 04:56 UTC by Devin Smith
Modified: 2021-02-26 06:59 UTC (History)
2 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description Devin Smith 2021-02-26 04:56:21 UTC
It appears that /usr/sbin/prometheus_sysctl_exporter is outputting an invalid prometheus format when used with the "-d" option.

$ prometheus_sysctl_exporter -d | grep HELP | awk -F " " '{print $3}' | sort | uniq -c | sort | grep -v " 1 "
   2 sysctl_vfs_zfs_arc_max
   2 sysctl_vfs_zfs_arc_min
   2 sysctl_vfs_zfs_l2arc_feed_again
   2 sysctl_vfs_zfs_l2arc_feed_min_ms
   2 sysctl_vfs_zfs_l2arc_feed_secs
   2 sysctl_vfs_zfs_l2arc_headroom
   2 sysctl_vfs_zfs_l2arc_noprefetch
   2 sysctl_vfs_zfs_l2arc_norw
   2 sysctl_vfs_zfs_l2arc_write_boost
   2 sysctl_vfs_zfs_l2arc_write_max

"Only one HELP line may exist for any given metric name." - https://github.com/prometheus/docs/blob/33f891f/content/docs/instrumenting/exposition_formats.md#comments-help-text-and-type-information

This is causing a downstream consumer to fail during parsing:

$ grep node_exporter /var/log/messages

Feb 25 20:43:51 prometheus node_exporter[46973]: level=error ts=2021-02-26T04:43:51.646Z caller=textfile.go:209 collector=textfile msg="failed to collect textfile data" file=sysctl.prom err="failed to parse textfile data from \"/var/tmp/node_exporter/sysctl.prom\": text format parsing error in line 1974: second HELP line for metric name \"sysctl_vfs_zfs_l2arc_norw\""

It's easy enough to workaround by just excluding the "-d" flag, but it would be nice for prometheus to gather the additional context that "-d" provides.