Skip to content

hwmon: disambiguate colliding chip labels - #3646

Merged
SuperQ merged 8 commits into
prometheus:masterfrom
mwimpelberg28:mwimpelberg/hwmon-dedup-chip-labels
Jul 10, 2026
Merged

hwmon: disambiguate colliding chip labels#3646
SuperQ merged 8 commits into
prometheus:masterfrom
mwimpelberg28:mwimpelberg/hwmon-dedup-chip-labels

Conversation

@mwimpelberg28

Copy link
Copy Markdown
Contributor

Summary

Fixes #3637.

Multiple hwmon nodes can be registered under a single parent device — for example, asus-nb-wmi on recent ASUS laptops registers one hwmon for fan control and another for WMI sensors. Both device symlinks resolve to the same /sys/devices/platform/asus-nb-wmi, so hwmonName produces the same platform_asus_nb_wmi chip label for both, and any sensor file that exists in both nodes (e.g. pwm1_enable) trips:

collected metric "node_hwmon_pwm_enable" { ... chip="platform_asus_nb_wmi" ... } was collected before with the same name and label values

Approach

Update now does two passes:

  • Pass 1: enumerate /sys/class/hwmon/*, compute the device-derived base chip name for each, and count collisions.
  • Pass 2: when a base name is shared, suffix the chip label with the chip's name file content if it disambiguates, otherwise with the hwmonX basename (always unique within a boot). The include/exclude filter is also moved here so user regexes match the label that is actually emitted in the metric.

Entries that already produce a unique chip label are unaffected — no surprise suffixes for users not hitting the collision.

This is closer in spirit to the discussion in #333 (the same class of bug for dual-socket coretemp boxes), but contained: the fix only kicks in when an actual collision is detected.

Test plan

New collector/hwmon_linux_test.go:

  • TestHwmonDuplicateChipNamesAreDisambiguated — reproduces the Metric node_hwmon_pwm_enable was collected before with the same name and label values #3637 ASUS WMI scenario (two hwmon dirs sharing one platform device, both exposing pwm1_enable) and asserts both Gather succeeds and the chip labels are distinct.
  • TestHwmonUniqueChipNamesAreUnchanged — guards against unintended label drift for users not hitting the collision.
  • TestHwmonDuplicateChipNamesWithSameNameFile — exercises the hwmonX-basename fallback when the name file content also collides.
  • Full collector test suite still passes (go test ./collector/), including the existing fixture-driven e2e checks.
  • go vet ./... clean.

Multiple hwmon nodes can be registered under a single parent device
(for example asus-nb-wmi exposes one hwmon for fan control and another
for WMI sensors). Both currently resolve to the same chip label
(`platform_asus_nb_wmi`) and trigger "metric collected before with the
same name and label values" errors at scrape time.

Detect this collision in a first pass and append the chip's `name` file
content (or the hwmonX basename if names also collide) to the chip
label in a second pass. The include/exclude filter is moved into the
same pass so user regexes match the label that is actually emitted.

Fixes: prometheus#3637

Signed-off-by: Matthew Wimpelberg <matt.wimpelberg@grafana.com>
@mwimpelberg28

Copy link
Copy Markdown
Contributor Author

@SuperQ would you have a moment to take a look? Happy to address any feedback.

@SuperQ

SuperQ commented May 15, 2026

Copy link
Copy Markdown
Member

This should add to the test fixtures so that it's tested in the end-to-end test.

Comment thread collector/hwmon_linux_test.go Outdated
mwimpelberg28 and others added 2 commits May 15, 2026 06:20
Co-authored-by: Ben Kochie <superq@gmail.com>
Signed-off-by: Matthew Wimpelberg <120263653+mwimpelberg28@users.noreply.github.com>
Two new hwmon nodes share a single platform device (asus-nb-wmi) with
distinct `name` file contents, exercising the disambiguation path in
the end-to-end test. Without the fix in the previous commit, the
duplicate base chip name `platform_asus_nb_wmi` would have triggered a
registry error before any metrics were scraped.

Also expand the e2e chip-include regex to admit the new chips so
their disambiguated labels appear in the expected output.

Signed-off-by: Matthew Wimpelberg <matt.wimpelberg@grafana.com>
@mwimpelberg28
mwimpelberg28 requested a review from SuperQ May 15, 2026 16:40
@mwimpelberg28

mwimpelberg28 commented May 16, 2026

Copy link
Copy Markdown
Contributor Author

This should add to the test fixtures so that it's tested in the end-to-end test.

This should be fixed. @SuperQ can you please review?

@champtar

champtar commented Jun 1, 2026

Copy link
Copy Markdown

Just opened issue #3673 and found this PR

Why not just always have chip and chip_name labels ?

@mwimpelberg28

Copy link
Copy Markdown
Contributor Author

Why not just always have chip and chip_name labels?

Thanks for the pointer to #3673 — this PR actually does fix that case. In your mt7996 example all three hwmon* nodes resolve to the same device (ieee80211/phy0), so they collide on the chip label today. With this PR the collision is detected and each one gets a unique chip (suffixed with the distinct name content, e.g. ieee80211_phy0_mt7996_phy0_0/_1/_2), so the was collected before with the same name and label values error goes away.

I'd lean away from always emitting chip_name as a label on every metric for two reasons:

  1. It's a breaking change for everyone. Adding chip_name to every hwmon series changes the label set on all existing time series, which breaks existing queries, recording rules, and dashboards even for users who never hit a collision. This PR is deliberately conservative — labels only change for nodes that actually collide.
  2. It wouldn't fully solve it anyway. Two hwmon nodes under the same parent can also share identical name content (covered here by TestHwmonDuplicateChipNamesWithSameNameFile), so chip+chip_name still isn't guaranteed unique — you'd need the hwmonX fallback regardless.

The node_hwmon_chip_names info-metric is also the idiomatic Prometheus join pattern (like node_uname_info) for attaching human-readable names without bloating every series, so I'd prefer to keep it.

Happy to add an e2e fixture mirroring the mt7996 layout if it'd help demonstrate the #3673 fix concretely.

Comment thread collector/hwmon_linux.go Outdated
Comment thread collector/hwmon_linux.go Outdated
@nicolastakashi

Copy link
Copy Markdown

@mwimpelberg28 overall LGTM, can you just fix DCO?

mwimpelberg28 and others added 2 commits June 10, 2026 07:25
Three hwmon nodes share a single ieee80211/phy0 parent device, each with
a distinct name file (mt7996_phy0_{0,1,2}) and a temp1 sensor. This is the
multi-hwmon-per-device layout reported in prometheus#3673, where all three collide on
the base chip label ieee80211_phy0 and the duplicate temp1 series trips the
registry error before any metrics are scraped.

With the disambiguation fix each node gets a unique chip label suffixed by
its name file, so the end-to-end test now exercises the prometheus#3673 scenario in
addition to the existing asus-nb-wmi case. The chip-include regex is widened
to admit the new ieee80211 chips.

Signed-off-by: Matthew Wimpelberg <matt.wimpelberg@grafana.com>

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Matthew Wimpelberg <matt.wimpelberg@grafana.com>
Both maps are populated only while iterating hwmonFiles, so len(hwmonFiles)
is a correct upper bound on the number of distinct keys and avoids
incremental rehashing.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Signed-off-by: Matthew Wimpelberg <matt.wimpelberg@grafana.com>
@mwimpelberg28
mwimpelberg28 force-pushed the mwimpelberg/hwmon-dedup-chip-labels branch from 9dd5608 to 736fbfb Compare June 10, 2026 11:26
@mwimpelberg28

Copy link
Copy Markdown
Contributor Author

@nicolastakashi thanks! DCO is fixed now — added the missing Signed-off-by to the two commits that were lacking it. The check is passing. 🟢

@mwimpelberg28

Copy link
Copy Markdown
Contributor Author

@SuperQ could you please have a look?

@SuperQ SuperQ left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@SuperQ
SuperQ merged commit 0e07d8f into prometheus:master Jul 10, 2026
17 checks passed
@SuperQ SuperQ mentioned this pull request Jul 10, 2026
SuperQ added a commit that referenced this pull request Jul 10, 2026
* [FEATURE] mountstats: Add NFS mountpoint info metric #3554
* [FEATURE] nvmesubsystem: Add new collector #3579
* [FEATURE] dmmultipath: Add new collector #3581
* [FEATURE] infiniband: Add device filtering option #3694
* [ENHANCEMENT] hwmon: disambiguate colliding chip labels #3646
* [ENHANCEMENT] cpufreq: Add support for cpuinfo_avg_freq #3712
* [ENHANCEMENT] filesystem: Support ext4 super block emergency_ro flag #3717
* [ENHANCEMENT] edac: Add per-channel error metrics with DIMM labels #3720
* [BUGFIX] diskstats: Only enforce mutual exclusivity for non-empty values #3617
* [BUGFIX] thermal_zone: Handle EINVAL errors gracefully #3657
* [BUGFIX] filesystem: Add comma separator in mount options #3659
* [BUGFIX] diskstats: Fix rotational queue stats scrape regression #3686
* [BUGFIX] filesystem: Prevent panic on mount points with non-UTF-8 names #3687

Signed-off-by: Ben Kochie <superq@gmail.com>
vgropp added a commit to vgropp/packages that referenced this pull request Jul 11, 2026
only add the chipname for duplicates, same behavior like in upstream
prometheus/node_exporter#3646

Signed-off-by: Volker Gropp <volker@gropp.org>
ajgon pushed a commit to deedee-ops/home-ops that referenced this pull request Jul 11, 2026
….1 ➔ v1.12.0) (#297)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [quay.io/prometheus/node-exporter](https://github.com/prometheus/node_exporter) | minor | `v1.11.1` → `v1.12.0` |

---

### Release Notes

<details>
<summary>prometheus/node_exporter (quay.io/prometheus/node-exporter)</summary>

### [`v1.12.0`](https://github.com/prometheus/node_exporter/releases/tag/v1.12.0): 1.12.0 / 2026-07-10

[Compare Source](prometheus/node_exporter@v1.11.1...v1.12.0)

- \[FEATURE] mountstats: Add NFS mountpoint info metric [#&#8203;3554](prometheus/node_exporter#3554)
- \[FEATURE] nvmesubsystem: Add new collector [#&#8203;3579](prometheus/node_exporter#3579)
- \[FEATURE] dmmultipath: Add new collector [#&#8203;3581](prometheus/node_exporter#3581)
- \[FEATURE] infiniband: Add device filtering option [#&#8203;3694](prometheus/node_exporter#3694)
- \[ENHANCEMENT] hwmon: disambiguate colliding chip labels [#&#8203;3646](prometheus/node_exporter#3646)
- \[ENHANCEMENT] cpufreq: Add support for cpuinfo\_avg\_freq [#&#8203;3712](prometheus/node_exporter#3712)
- \[ENHANCEMENT] filesystem: Support ext4 super block emergency\_ro flag [#&#8203;3717](prometheus/node_exporter#3717)
- \[ENHANCEMENT] edac: Add per-channel error metrics with DIMM labels [#&#8203;3720](prometheus/node_exporter#3720)
- \[BUGFIX] diskstats: Only enforce mutual exclusivity for non-empty values [#&#8203;3617](prometheus/node_exporter#3617)
- \[BUGFIX] thermal\_zone: Handle EINVAL errors gracefully [#&#8203;3657](prometheus/node_exporter#3657)
- \[BUGFIX] filesystem: Add comma separator in mount options [#&#8203;3659](prometheus/node_exporter#3659)
- \[BUGFIX] diskstats: Fix rotational queue stats scrape regression [#&#8203;3686](prometheus/node_exporter#3686)
- \[BUGFIX] filesystem: Prevent panic on mount points with non-UTF-8 names [#&#8203;3687](prometheus/node_exporter#3687)

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Warsaw)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTcuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI1Ny40IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->

Reviewed-on: https://git.ajgon.casa/deedee/mark13/pulls/297
eleboucher pushed a commit to eleboucher/homelab that referenced this pull request Jul 12, 2026
….1 ➔ v1.12.0) (#1526)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [quay.io/prometheus/node-exporter](https://github.com/prometheus/node_exporter) | minor | `v1.11.1` → `v1.12.0` |

---

### Release Notes

<details>
<summary>prometheus/node_exporter (quay.io/prometheus/node-exporter)</summary>

### [`v1.12.0`](https://github.com/prometheus/node_exporter/releases/tag/v1.12.0): 1.12.0 / 2026-07-10

[Compare Source](prometheus/node_exporter@v1.11.1...v1.12.0)

- \[FEATURE] mountstats: Add NFS mountpoint info metric [#&#8203;3554](prometheus/node_exporter#3554)
- \[FEATURE] nvmesubsystem: Add new collector [#&#8203;3579](prometheus/node_exporter#3579)
- \[FEATURE] dmmultipath: Add new collector [#&#8203;3581](prometheus/node_exporter#3581)
- \[FEATURE] infiniband: Add device filtering option [#&#8203;3694](prometheus/node_exporter#3694)
- \[ENHANCEMENT] hwmon: disambiguate colliding chip labels [#&#8203;3646](prometheus/node_exporter#3646)
- \[ENHANCEMENT] cpufreq: Add support for cpuinfo\_avg\_freq [#&#8203;3712](prometheus/node_exporter#3712)
- \[ENHANCEMENT] filesystem: Support ext4 super block emergency\_ro flag [#&#8203;3717](prometheus/node_exporter#3717)
- \[ENHANCEMENT] edac: Add per-channel error metrics with DIMM labels [#&#8203;3720](prometheus/node_exporter#3720)
- \[BUGFIX] diskstats: Only enforce mutual exclusivity for non-empty values [#&#8203;3617](prometheus/node_exporter#3617)
- \[BUGFIX] thermal\_zone: Handle EINVAL errors gracefully [#&#8203;3657](prometheus/node_exporter#3657)
- \[BUGFIX] filesystem: Add comma separator in mount options [#&#8203;3659](prometheus/node_exporter#3659)
- \[BUGFIX] diskstats: Fix rotational queue stats scrape regression [#&#8203;3686](prometheus/node_exporter#3686)
- \[BUGFIX] filesystem: Prevent panic on mount points with non-UTF-8 names [#&#8203;3687](prometheus/node_exporter#3687)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xMDEuMSIsInVwZGF0ZWRJblZlciI6IjQzLjEwMS4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->

Reviewed-on: https://git.erwanleboucher.dev/eleboucher/homelab/pulls/1526
dadezzz pushed a commit to dadezzz/infra_docker-compose that referenced this pull request Jul 12, 2026
….12.0 (#511)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [quay.io/prometheus/node-exporter](https://github.com/prometheus/node_exporter) | minor | `v1.11.1` → `v1.12.0` |

---

### Release Notes

<details>
<summary>prometheus/node_exporter (quay.io/prometheus/node-exporter)</summary>

### [`v1.12.0`](https://github.com/prometheus/node_exporter/releases/tag/v1.12.0): 1.12.0 / 2026-07-10

[Compare Source](prometheus/node_exporter@v1.11.1...v1.12.0)

- \[FEATURE] mountstats: Add NFS mountpoint info metric [#&#8203;3554](prometheus/node_exporter#3554)
- \[FEATURE] nvmesubsystem: Add new collector [#&#8203;3579](prometheus/node_exporter#3579)
- \[FEATURE] dmmultipath: Add new collector [#&#8203;3581](prometheus/node_exporter#3581)
- \[FEATURE] infiniband: Add device filtering option [#&#8203;3694](prometheus/node_exporter#3694)
- \[ENHANCEMENT] hwmon: disambiguate colliding chip labels [#&#8203;3646](prometheus/node_exporter#3646)
- \[ENHANCEMENT] cpufreq: Add support for cpuinfo\_avg\_freq [#&#8203;3712](prometheus/node_exporter#3712)
- \[ENHANCEMENT] filesystem: Support ext4 super block emergency\_ro flag [#&#8203;3717](prometheus/node_exporter#3717)
- \[ENHANCEMENT] edac: Add per-channel error metrics with DIMM labels [#&#8203;3720](prometheus/node_exporter#3720)
- \[BUGFIX] diskstats: Only enforce mutual exclusivity for non-empty values [#&#8203;3617](prometheus/node_exporter#3617)
- \[BUGFIX] thermal\_zone: Handle EINVAL errors gracefully [#&#8203;3657](prometheus/node_exporter#3657)
- \[BUGFIX] filesystem: Add comma separator in mount options [#&#8203;3659](prometheus/node_exporter#3659)
- \[BUGFIX] diskstats: Fix rotational queue stats scrape regression [#&#8203;3686](prometheus/node_exporter#3686)
- \[BUGFIX] filesystem: Prevent panic on mount points with non-UTF-8 names [#&#8203;3687](prometheus/node_exporter#3687)

</details>

---

### Configuration

📅 **Schedule**: (UTC)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI1Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
doonga pushed a commit to greyrock-labs/home-ops that referenced this pull request Jul 13, 2026
….1 ➔ v1.12.0) (#47)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [quay.io/prometheus/node-exporter](https://github.com/prometheus/node_exporter) | minor | `v1.11.1` → `v1.12.0` |

---

### Release Notes

<details>
<summary>prometheus/node_exporter (quay.io/prometheus/node-exporter)</summary>

### [`v1.12.0`](https://github.com/prometheus/node_exporter/releases/tag/v1.12.0): 1.12.0 / 2026-07-10

[Compare Source](prometheus/node_exporter@v1.11.1...v1.12.0)

- \[FEATURE] mountstats: Add NFS mountpoint info metric [#&#8203;3554](prometheus/node_exporter#3554)
- \[FEATURE] nvmesubsystem: Add new collector [#&#8203;3579](prometheus/node_exporter#3579)
- \[FEATURE] dmmultipath: Add new collector [#&#8203;3581](prometheus/node_exporter#3581)
- \[FEATURE] infiniband: Add device filtering option [#&#8203;3694](prometheus/node_exporter#3694)
- \[ENHANCEMENT] hwmon: disambiguate colliding chip labels [#&#8203;3646](prometheus/node_exporter#3646)
- \[ENHANCEMENT] cpufreq: Add support for cpuinfo\_avg\_freq [#&#8203;3712](prometheus/node_exporter#3712)
- \[ENHANCEMENT] filesystem: Support ext4 super block emergency\_ro flag [#&#8203;3717](prometheus/node_exporter#3717)
- \[ENHANCEMENT] edac: Add per-channel error metrics with DIMM labels [#&#8203;3720](prometheus/node_exporter#3720)
- \[BUGFIX] diskstats: Only enforce mutual exclusivity for non-empty values [#&#8203;3617](prometheus/node_exporter#3617)
- \[BUGFIX] thermal\_zone: Handle EINVAL errors gracefully [#&#8203;3657](prometheus/node_exporter#3657)
- \[BUGFIX] filesystem: Add comma separator in mount options [#&#8203;3659](prometheus/node_exporter#3659)
- \[BUGFIX] diskstats: Fix rotational queue stats scrape regression [#&#8203;3686](prometheus/node_exporter#3686)
- \[BUGFIX] filesystem: Prevent panic on mount points with non-UTF-8 names [#&#8203;3687](prometheus/node_exporter#3687)

</details>

---

### Configuration

📅 **Schedule**: (in timezone America/New_York)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNjAuMiIsInVwZGF0ZWRJblZlciI6IjQzLjI2MC4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19-->

Reviewed-on: https://git.greyrock.io/greyrock-labs/home-ops/pulls/47
ajgon pushed a commit to deedee-ops/home-ops that referenced this pull request Jul 13, 2026
….1 ➔ v1.12.0) (#297)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [quay.io/prometheus/node-exporter](https://github.com/prometheus/node_exporter) | minor | `v1.11.1` → `v1.12.0` |

---

### Release Notes

<details>
<summary>prometheus/node_exporter (quay.io/prometheus/node-exporter)</summary>

### [`v1.12.0`](https://github.com/prometheus/node_exporter/releases/tag/v1.12.0): 1.12.0 / 2026-07-10

[Compare Source](prometheus/node_exporter@v1.11.1...v1.12.0)

- \[FEATURE] mountstats: Add NFS mountpoint info metric [#&#8203;3554](prometheus/node_exporter#3554)
- \[FEATURE] nvmesubsystem: Add new collector [#&#8203;3579](prometheus/node_exporter#3579)
- \[FEATURE] dmmultipath: Add new collector [#&#8203;3581](prometheus/node_exporter#3581)
- \[FEATURE] infiniband: Add device filtering option [#&#8203;3694](prometheus/node_exporter#3694)
- \[ENHANCEMENT] hwmon: disambiguate colliding chip labels [#&#8203;3646](prometheus/node_exporter#3646)
- \[ENHANCEMENT] cpufreq: Add support for cpuinfo\_avg\_freq [#&#8203;3712](prometheus/node_exporter#3712)
- \[ENHANCEMENT] filesystem: Support ext4 super block emergency\_ro flag [#&#8203;3717](prometheus/node_exporter#3717)
- \[ENHANCEMENT] edac: Add per-channel error metrics with DIMM labels [#&#8203;3720](prometheus/node_exporter#3720)
- \[BUGFIX] diskstats: Only enforce mutual exclusivity for non-empty values [#&#8203;3617](prometheus/node_exporter#3617)
- \[BUGFIX] thermal\_zone: Handle EINVAL errors gracefully [#&#8203;3657](prometheus/node_exporter#3657)
- \[BUGFIX] filesystem: Add comma separator in mount options [#&#8203;3659](prometheus/node_exporter#3659)
- \[BUGFIX] diskstats: Fix rotational queue stats scrape regression [#&#8203;3686](prometheus/node_exporter#3686)
- \[BUGFIX] filesystem: Prevent panic on mount points with non-UTF-8 names [#&#8203;3687](prometheus/node_exporter#3687)

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Warsaw)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTcuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI1Ny40IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->

Reviewed-on: https://git.ajgon.casa/deedee/mark13/pulls/297
renovate Bot added a commit to sdwilsh/sOS that referenced this pull request Jul 17, 2026
….12.1

##### [\`v1.12.1\`](https://github.com/prometheus/node_exporter/releases/tag/v1.12.1)

- \[BUGFIX] perf: Fix perf profiler flag handling [#3731](prometheus/node_exporter#3731)
- \[BUGFIX] edac: Fix optional csrow ue\_count collection [#3734](prometheus/node_exporter#3734)

---
##### [\`v1.12.0\`](https://github.com/prometheus/node_exporter/releases/tag/v1.12.0)

- \[FEATURE] mountstats: Add NFS mountpoint info metric [#3554](prometheus/node_exporter#3554)
- \[FEATURE] nvmesubsystem: Add new collector [#3579](prometheus/node_exporter#3579)
- \[FEATURE] dmmultipath: Add new collector [#3581](prometheus/node_exporter#3581)
- \[FEATURE] infiniband: Add device filtering option [#3694](prometheus/node_exporter#3694)
- \[ENHANCEMENT] hwmon: disambiguate colliding chip labels [#3646](prometheus/node_exporter#3646)
- \[ENHANCEMENT] cpufreq: Add support for cpuinfo\_avg\_freq [#3712](prometheus/node_exporter#3712)
- \[ENHANCEMENT] filesystem: Support ext4 super block emergency\_ro flag [#3717](prometheus/node_exporter#3717)
- \[ENHANCEMENT] edac: Add per-channel error metrics with DIMM labels [#3720](prometheus/node_exporter#3720)
- \[BUGFIX] diskstats: Only enforce mutual exclusivity for non-empty values [#3617](prometheus/node_exporter#3617)
- \[BUGFIX] thermal\_zone: Handle EINVAL errors gracefully [#3657](prometheus/node_exporter#3657)
- \[BUGFIX] filesystem: Add comma separator in mount options [#3659](prometheus/node_exporter#3659)
- \[BUGFIX] diskstats: Fix rotational queue stats scrape regression [#3686](prometheus/node_exporter#3686)
- \[BUGFIX] filesystem: Prevent panic on mount points with non-UTF-8 names [#3687](prometheus/node_exporter#3687)

---
##### [\`v1.11.1\`](https://github.com/prometheus/node_exporter/releases/tag/v1.11.1)

- \[BUGFIX] Fix kernel\_hung for no data [#3613](prometheus/node_exporter#3613)

---
##### [\`v1.11.0\`](https://github.com/prometheus/node_exporter/releases/tag/v1.11.0)

- \[CHANGE] Adds distroless container image. [#3592](prometheus/node_exporter#3592)
- \[FEATURE] infiniband: Add `hw_counters` metrics [#2827](prometheus/node_exporter#2827)
- \[FEATURE] kernel\_hung: Add collector for kernel hung tasks [#3470](prometheus/node_exporter#3470)
- \[FEATURE] mixin: Add "All" option to cluster variable in dashboards [#3509](prometheus/node_exporter#3509)
- \[FEATURE] netlink: Add node\_network\_altnames\_info metric [#3541](prometheus/node_exporter#3541)
- \[FEATURE] thermal: Add support for CPU temperature metrics on Apple Silicon [#3547](prometheus/node_exporter#3547)
- \[FEATURE] bcachefs: Add new collector for bcachefs [#3523](prometheus/node_exporter#3523)
- \[ENHANCEMENT] mixin: Make devices in network graphs configurable [#3525](prometheus/node_exporter#3525)
- \[ENHANCEMENT] nvme: Add namespace parameters [#3360](prometheus/node_exporter#3360)
- \[BUGFIX] netdev: Respect deviceFilter for `node_network_address_info` metric [#3340](prometheus/node_exporter#3340)
- \[BUGFIX] mountstats: Fix multiple transports statistics labeling [#3358](prometheus/node_exporter#3358)
- \[BUGFIX] diskstats: Fix panic when using device-include flag only [#3603](prometheus/node_exporter#3603)
ajgon pushed a commit to deedee-ops/home-ops that referenced this pull request Jul 20, 2026
….1 ➔ v1.12.0) (#297)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [quay.io/prometheus/node-exporter](https://github.com/prometheus/node_exporter) | minor | `v1.11.1` → `v1.12.0` |

---

### Release Notes

<details>
<summary>prometheus/node_exporter (quay.io/prometheus/node-exporter)</summary>

### [`v1.12.0`](https://github.com/prometheus/node_exporter/releases/tag/v1.12.0): 1.12.0 / 2026-07-10

[Compare Source](prometheus/node_exporter@v1.11.1...v1.12.0)

- \[FEATURE] mountstats: Add NFS mountpoint info metric [#&#8203;3554](prometheus/node_exporter#3554)
- \[FEATURE] nvmesubsystem: Add new collector [#&#8203;3579](prometheus/node_exporter#3579)
- \[FEATURE] dmmultipath: Add new collector [#&#8203;3581](prometheus/node_exporter#3581)
- \[FEATURE] infiniband: Add device filtering option [#&#8203;3694](prometheus/node_exporter#3694)
- \[ENHANCEMENT] hwmon: disambiguate colliding chip labels [#&#8203;3646](prometheus/node_exporter#3646)
- \[ENHANCEMENT] cpufreq: Add support for cpuinfo\_avg\_freq [#&#8203;3712](prometheus/node_exporter#3712)
- \[ENHANCEMENT] filesystem: Support ext4 super block emergency\_ro flag [#&#8203;3717](prometheus/node_exporter#3717)
- \[ENHANCEMENT] edac: Add per-channel error metrics with DIMM labels [#&#8203;3720](prometheus/node_exporter#3720)
- \[BUGFIX] diskstats: Only enforce mutual exclusivity for non-empty values [#&#8203;3617](prometheus/node_exporter#3617)
- \[BUGFIX] thermal\_zone: Handle EINVAL errors gracefully [#&#8203;3657](prometheus/node_exporter#3657)
- \[BUGFIX] filesystem: Add comma separator in mount options [#&#8203;3659](prometheus/node_exporter#3659)
- \[BUGFIX] diskstats: Fix rotational queue stats scrape regression [#&#8203;3686](prometheus/node_exporter#3686)
- \[BUGFIX] filesystem: Prevent panic on mount points with non-UTF-8 names [#&#8203;3687](prometheus/node_exporter#3687)

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Warsaw)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTcuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI1Ny40IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->

Reviewed-on: https://git.ajgon.casa/deedee/mark13/pulls/297
renovate Bot added a commit to sdwilsh/sOS that referenced this pull request Jul 24, 2026
….12.1

##### [\`v1.12.1\`](https://github.com/prometheus/node_exporter/releases/tag/v1.12.1)

- \[BUGFIX] perf: Fix perf profiler flag handling [#3731](prometheus/node_exporter#3731)
- \[BUGFIX] edac: Fix optional csrow ue\_count collection [#3734](prometheus/node_exporter#3734)

---
##### [\`v1.12.0\`](https://github.com/prometheus/node_exporter/releases/tag/v1.12.0)

- \[FEATURE] mountstats: Add NFS mountpoint info metric [#3554](prometheus/node_exporter#3554)
- \[FEATURE] nvmesubsystem: Add new collector [#3579](prometheus/node_exporter#3579)
- \[FEATURE] dmmultipath: Add new collector [#3581](prometheus/node_exporter#3581)
- \[FEATURE] infiniband: Add device filtering option [#3694](prometheus/node_exporter#3694)
- \[ENHANCEMENT] hwmon: disambiguate colliding chip labels [#3646](prometheus/node_exporter#3646)
- \[ENHANCEMENT] cpufreq: Add support for cpuinfo\_avg\_freq [#3712](prometheus/node_exporter#3712)
- \[ENHANCEMENT] filesystem: Support ext4 super block emergency\_ro flag [#3717](prometheus/node_exporter#3717)
- \[ENHANCEMENT] edac: Add per-channel error metrics with DIMM labels [#3720](prometheus/node_exporter#3720)
- \[BUGFIX] diskstats: Only enforce mutual exclusivity for non-empty values [#3617](prometheus/node_exporter#3617)
- \[BUGFIX] thermal\_zone: Handle EINVAL errors gracefully [#3657](prometheus/node_exporter#3657)
- \[BUGFIX] filesystem: Add comma separator in mount options [#3659](prometheus/node_exporter#3659)
- \[BUGFIX] diskstats: Fix rotational queue stats scrape regression [#3686](prometheus/node_exporter#3686)
- \[BUGFIX] filesystem: Prevent panic on mount points with non-UTF-8 names [#3687](prometheus/node_exporter#3687)

---
##### [\`v1.11.1\`](https://github.com/prometheus/node_exporter/releases/tag/v1.11.1)

- \[BUGFIX] Fix kernel\_hung for no data [#3613](prometheus/node_exporter#3613)

---
##### [\`v1.11.0\`](https://github.com/prometheus/node_exporter/releases/tag/v1.11.0)

- \[CHANGE] Adds distroless container image. [#3592](prometheus/node_exporter#3592)
- \[FEATURE] infiniband: Add `hw_counters` metrics [#2827](prometheus/node_exporter#2827)
- \[FEATURE] kernel\_hung: Add collector for kernel hung tasks [#3470](prometheus/node_exporter#3470)
- \[FEATURE] mixin: Add "All" option to cluster variable in dashboards [#3509](prometheus/node_exporter#3509)
- \[FEATURE] netlink: Add node\_network\_altnames\_info metric [#3541](prometheus/node_exporter#3541)
- \[FEATURE] thermal: Add support for CPU temperature metrics on Apple Silicon [#3547](prometheus/node_exporter#3547)
- \[FEATURE] bcachefs: Add new collector for bcachefs [#3523](prometheus/node_exporter#3523)
- \[ENHANCEMENT] mixin: Make devices in network graphs configurable [#3525](prometheus/node_exporter#3525)
- \[ENHANCEMENT] nvme: Add namespace parameters [#3360](prometheus/node_exporter#3360)
- \[BUGFIX] netdev: Respect deviceFilter for `node_network_address_info` metric [#3340](prometheus/node_exporter#3340)
- \[BUGFIX] mountstats: Fix multiple transports statistics labeling [#3358](prometheus/node_exporter#3358)
- \[BUGFIX] diskstats: Fix panic when using device-include flag only [#3603](prometheus/node_exporter#3603)
ajgon pushed a commit to deedee-ops/home-ops that referenced this pull request Jul 28, 2026
….1 ➔ v1.12.0) (#297)

This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [quay.io/prometheus/node-exporter](https://github.com/prometheus/node_exporter) | minor | `v1.11.1` → `v1.12.0` |

---

### Release Notes

<details>
<summary>prometheus/node_exporter (quay.io/prometheus/node-exporter)</summary>

### [`v1.12.0`](https://github.com/prometheus/node_exporter/releases/tag/v1.12.0): 1.12.0 / 2026-07-10

[Compare Source](prometheus/node_exporter@v1.11.1...v1.12.0)

- \[FEATURE] mountstats: Add NFS mountpoint info metric [#&#8203;3554](prometheus/node_exporter#3554)
- \[FEATURE] nvmesubsystem: Add new collector [#&#8203;3579](prometheus/node_exporter#3579)
- \[FEATURE] dmmultipath: Add new collector [#&#8203;3581](prometheus/node_exporter#3581)
- \[FEATURE] infiniband: Add device filtering option [#&#8203;3694](prometheus/node_exporter#3694)
- \[ENHANCEMENT] hwmon: disambiguate colliding chip labels [#&#8203;3646](prometheus/node_exporter#3646)
- \[ENHANCEMENT] cpufreq: Add support for cpuinfo\_avg\_freq [#&#8203;3712](prometheus/node_exporter#3712)
- \[ENHANCEMENT] filesystem: Support ext4 super block emergency\_ro flag [#&#8203;3717](prometheus/node_exporter#3717)
- \[ENHANCEMENT] edac: Add per-channel error metrics with DIMM labels [#&#8203;3720](prometheus/node_exporter#3720)
- \[BUGFIX] diskstats: Only enforce mutual exclusivity for non-empty values [#&#8203;3617](prometheus/node_exporter#3617)
- \[BUGFIX] thermal\_zone: Handle EINVAL errors gracefully [#&#8203;3657](prometheus/node_exporter#3657)
- \[BUGFIX] filesystem: Add comma separator in mount options [#&#8203;3659](prometheus/node_exporter#3659)
- \[BUGFIX] diskstats: Fix rotational queue stats scrape regression [#&#8203;3686](prometheus/node_exporter#3686)
- \[BUGFIX] filesystem: Prevent panic on mount points with non-UTF-8 names [#&#8203;3687](prometheus/node_exporter#3687)

</details>

---

### Configuration

📅 **Schedule**: (in timezone Europe/Warsaw)

- Branch creation
  - At any time (no schedule defined)
- Automerge
  - At any time (no schedule defined)

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNTcuNCIsInVwZGF0ZWRJblZlciI6IjQzLjI1Ny40IiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=-->

Reviewed-on: https://git.ajgon.casa/deedee/mark13/pulls/297
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Metric node_hwmon_pwm_enable was collected before with the same name and label values

4 participants