prometheus / node_exporter

Exporter for machine metrics
https://prometheus.io/
Apache License 2.0
10.83k stars 2.32k forks source link

Darwin M1 temperature reading via SMC #2639

Open sepich opened 1 year ago

sepich commented 1 year ago

Host operating system: output of uname -a

Darwin de-unit-1032.mu4 22.3.0 Darwin Kernel Version 22.3.0: Mon Jan 30 20:39:35 PST 2023; root:xnu-8792.81.3~2/RELEASE_ARM64_T8103 arm64

node_exporter version: output of node_exporter --version

node_exporter, version 1.3.1 (branch: HEAD, revision: a2321e7b940ddcff26873612bccdf7cd4c42b6b6)
  build user:       root@e7da778d77e0
  build date:       20211205-11:13:28
  go version:       go1.17.3
  platform:         darwin/arm64

Are you running node_exporter in Docker?

no

What did you expect to see?

This is a feature request to support reading temperature/fans metrics from Apple SMC. This is currently seems to be a universal solution for both Intel and Apple Silicon hardware. Example of working go code could be seen in: https://github.com/dkorunic/iSMC I believe this support would be highly appreciated by all of the mac farm build agents owners.

What did you see instead?

No any temperature reading from node_exporter on darwin.

dswarbrick commented 1 year ago

It's worth noting that while github.com/dkorunic/iSMC is the user-facing command-line tool for displaying the metrics, the actual interfacing with the SMC system is done by github.com/panotza/gosmc - which is a Go wrapper around the SMC library (i.e., relies heavily on cgo).

SuperQ commented 1 year ago

We allow CGO for Darwin, since there's a bunch of stuff that require it.