node_exporter
node_exporter copied to clipboard
cpufreq collector successful but empty
Host operating system:
Linux ip-10-227-56-184 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux
node_exporter version:
node_exporter, version 1.2.2 (branch: master, revision: 3e6f4ce627e588e9972e624f1f744c716e11b199) build user: moses@[redacted] build date: 20211105-15:59:27 go version: go1.17.2 platform: linux/amd64
node_exporter command line flags
--collector.disable-defaults --web.disable-exporter-metrics --collector.cpufreq
Are you running node_exporter in Docker?
No.
What did you do that produced an error?
wget -qO- localhost:9100/metrics
What did you expect to see?
Either node_scrape_collector_success{collector="cpufreq"} 0
or metrics that correspond to grep 'cpu MHz' /proc/cpuinfo
What did you see instead?
# HELP node_exporter_build_info A metric with a constant '1' value labeled by version, revision, branch, and goversion from which node_exporter was built.
# TYPE node_exporter_build_info gauge
node_exporter_build_info{branch="master",goversion="go1.17.2",revision="3e6f4ce627e588e9972e624f1f744c716e11b199",version="1.2.2"} 1
# HELP node_scrape_collector_duration_seconds node_exporter: Duration of a collector scrape.
# TYPE node_scrape_collector_duration_seconds gauge
node_scrape_collector_duration_seconds{collector="cpufreq"} 0.000128424
# HELP node_scrape_collector_success node_exporter: Whether a collector succeeded.
# TYPE node_scrape_collector_success gauge
node_scrape_collector_success{collector="cpufreq"} 1
# HELP promhttp_metric_handler_errors_total Total number of internal errors encountered by the promhttp metric handler.
# TYPE promhttp_metric_handler_errors_total counter
promhttp_metric_handler_errors_total{cause="encoding"} 0
promhttp_metric_handler_errors_total{cause="gathering"} 0
Maybe this is a problem in github.com/prometheus/procfs/sysfs ? I'm surprised I get node_scrape_collector_success == 1 but it has nothing to say.
Yes, we changed the "success" to not be true if the output is empty. Can you dump a --log.level=debug to see what is going on?
/tmp/node_exporter-1.2.2 --collector.disable-defaults --web.disable-exporter-metrics --collector.cpufreq --log.level=debug
ts=2021-11-05T16:31:54.997Z caller=level.go:63 level=info msg="Starting node_exporter" version="(version=1.2.2, branch=master, revision=3e6f4ce627e588e9972e624f1f744c716e11b199)"
ts=2021-11-05T16:31:54.997Z caller=level.go:63 level=info msg="Build context" build_context="(go=go1.17.2, [email protected], date=20211105-15:59:27)"
ts=2021-11-05T16:31:54.997Z caller=level.go:63 level=warn msg="Node Exporter is running as root user. This exporter is designed to run as unpriviledged user, root is not required."
ts=2021-11-05T16:31:54.998Z caller=level.go:63 level=info msg="Enabled collectors"
ts=2021-11-05T16:31:54.998Z caller=level.go:63 level=info collector=cpufreq
ts=2021-11-05T16:31:54.998Z caller=level.go:63 level=info msg="Listening on" address=:9100
ts=2021-11-05T16:31:54.998Z caller=level.go:63 level=info msg="TLS is disabled." http2=false
ts=2021-11-05T16:32:01.092Z caller=level.go:63 level=debug msg="collect query:" filters="unsupported value type"
ts=2021-11-05T16:32:01.092Z caller=level.go:63 level=debug msg="collector succeeded" name=cpufreq duration_seconds=0.000121741
That's all of it. the "16:32:01" lines are after I did my wget.
Ahh, yes, procfs ignores missing, rather than returning an error.
We could work around this by checking len(cpuFreqs), but we may want to fix this in procfs.
I believe this can be closed now.