node_exporter icon indicating copy to clipboard operation
node_exporter copied to clipboard

cpufreq collector successful but empty

Open mozai opened this issue 3 years ago • 3 comments

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.

mozai avatar Nov 05 '21 16:11 mozai

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?

SuperQ avatar Nov 05 '21 16:11 SuperQ

/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.

mozai avatar Nov 05 '21 16:11 mozai

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.

SuperQ avatar Nov 05 '21 17:11 SuperQ

I believe this can be closed now.

rexagod avatar Mar 19 '24 04:03 rexagod