Skip to content

collector: add nvmesubsystem collector for NVMe-oF path health - #3579

Merged
SuperQ merged 1 commit into
prometheus:masterfrom
sradco:add_collector_multipath
Jul 6, 2026
Merged

collector: add nvmesubsystem collector for NVMe-oF path health#3579
SuperQ merged 1 commit into
prometheus:masterfrom
sradco:add_collector_multipath

Conversation

@sradco

@sradco sradco commented Mar 11, 2026

Copy link
Copy Markdown
Contributor

Summary

Add a new disabled-by-default nvmesubsystem collector that reads
/sys/class/nvme-subsystem/ to expose NVMe over Fabrics subsystem
path health metrics.

Exposed metrics

Metric Type Labels Description
node_nvmesubsystem_info Gauge (info) subsystem, nqn, model, serial, iopolicy Subsystem identity
node_nvmesubsystem_namespace_info Gauge (info) subsystem, device Maps namespace block device to subsystem
node_nvmesubsystem_paths Gauge subsystem Total controller paths
node_nvmesubsystem_paths_live Gauge subsystem Controller paths in live state
node_nvmesubsystem_path_state Gauge subsystem, controller, transport, state Per-controller state

The namespace_info metric enables precise correlation between NVMe
block devices (e.g. nvme0n1) and their parent subsystems, which is
needed for workload-aware storage path health alerting in Kubernetes
environments.

Enable

--collector.nvmesubsystem

No special permissions required — reads only world-readable sysfs attributes.

Dependencies

Test plan

  • Unit tests with testutil.GatherAndCompare for all metrics
  • Tests for no-devices case
  • State normalization tests (normalizeControllerState)
  • End-to-end test passing

@sradco
sradco force-pushed the add_collector_multipath branch from 742c1b1 to a0a146e Compare March 11, 2026 19:18
@sradco

sradco commented Mar 11, 2026

Copy link
Copy Markdown
Contributor Author

Hi @SuperQ , I created this PR for a new multipath collector.
I would appreciate your review.

@sradco
sradco force-pushed the add_collector_multipath branch from a0a146e to 1fa2099 Compare March 12, 2026 08:55
@sradco sradco changed the title Add multipath collector Add multipath collector for NVMe-oF subsystem path health Mar 12, 2026
@sradco
sradco force-pushed the add_collector_multipath branch from 1fa2099 to 635b613 Compare March 12, 2026 09:13
@sradco sradco changed the title Add multipath collector for NVMe-oF subsystem path health collector: add nvmesubsystem collector for NVMe-oF path health Mar 12, 2026

@jsafrane jsafrane left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The code looks good to me. I tested it with 2 NVMe over TCP devices, I got:

node_nvmesubsystem_info{iopolicy="numa",model="Linux",nqn="tempdisk",serial="bab529a0f32e397e1319",subsystem="nvme-subsys0"} 1
node_nvmesubsystem_path_state{controller="nvme0",state="connecting",subsystem="nvme-subsys0",transport="tcp"} 0
node_nvmesubsystem_path_state{controller="nvme0",state="dead",subsystem="nvme-subsys0",transport="tcp"} 0
node_nvmesubsystem_path_state{controller="nvme0",state="live",subsystem="nvme-subsys0",transport="tcp"} 1
node_nvmesubsystem_path_state{controller="nvme0",state="resetting",subsystem="nvme-subsys0",transport="tcp"} 0
node_nvmesubsystem_path_state{controller="nvme0",state="unknown",subsystem="nvme-subsys0",transport="tcp"} 0
node_nvmesubsystem_path_state{controller="nvme1",state="connecting",subsystem="nvme-subsys0",transport="tcp"} 0
node_nvmesubsystem_path_state{controller="nvme1",state="dead",subsystem="nvme-subsys0",transport="tcp"} 0
node_nvmesubsystem_path_state{controller="nvme1",state="live",subsystem="nvme-subsys0",transport="tcp"} 1
node_nvmesubsystem_path_state{controller="nvme1",state="resetting",subsystem="nvme-subsys0",transport="tcp"} 0
node_nvmesubsystem_path_state{controller="nvme1",state="unknown",subsystem="nvme-subsys0",transport="tcp"} 0
node_nvmesubsystem_paths_live{subsystem="nvme-subsys0"} 2
node_nvmesubsystem_paths_total{subsystem="nvme-subsys0"} 2

Which looks reasonable.

Comment thread collector/nvmesubsystem_linux.go Outdated
@sradco
sradco force-pushed the add_collector_multipath branch 3 times, most recently from 51fb644 to 8acec17 Compare March 16, 2026 10:15
@sradco
sradco force-pushed the add_collector_multipath branch 2 times, most recently from 17875ea to d7d2b27 Compare March 16, 2026 17:33
@sradco sradco closed this Mar 17, 2026
@sradco
sradco force-pushed the add_collector_multipath branch from d7d2b27 to 1a4cac6 Compare March 17, 2026 08:42
@sradco sradco reopened this Mar 17, 2026
@sradco

sradco commented Mar 17, 2026

Copy link
Copy Markdown
Contributor Author

PR is failing since its based on prometheus/procfs#797, which is still not merged

@sradco

sradco commented Jun 29, 2026

Copy link
Copy Markdown
Contributor Author

Hi @SuperQ , Please review this PR, Thank you in advance.

@sradco
sradco force-pushed the add_collector_multipath branch 4 times, most recently from 1177a63 to 6bb221b Compare July 2, 2026 08:57
Comment thread collector/fixtures/sys.ttar
Comment thread collector/mdadm_linux.go
Comment thread collector/nvmesubsystem_linux.go Outdated
@sradco
sradco force-pushed the add_collector_multipath branch from 6bb221b to c7c93c6 Compare July 2, 2026 12:12
Comment thread go.mod Outdated
@sradco
sradco force-pushed the add_collector_multipath branch from 1d29047 to 26c3987 Compare July 6, 2026 11:53
@sradco
sradco force-pushed the add_collector_multipath branch from 26c3987 to ebf4bd2 Compare July 6, 2026 12:33
@sradco

sradco commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

This PR depends on #3715 (build(deps): bump prometheus/procfs to v0.21.1).
CI will fail until #3715 is merged — the collector commit itself is ready for review.

@sradco
sradco force-pushed the add_collector_multipath branch from ebf4bd2 to 97c3ee9 Compare July 6, 2026 12:47
@sradco

sradco commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Rebased

@sradco
sradco force-pushed the add_collector_multipath branch 2 times, most recently from e0b6d5a to 30d6ff4 Compare July 6, 2026 13:48
Add a new opt-in collector that exposes NVMe-oF
subsystem path health via sysfs:

- node_nvmesubsystem_info (subsystem metadata)
- node_nvmesubsystem_namespace_info
- node_nvmesubsystem_path_state (per-state gauge)
- node_nvmesubsystem_paths (total controller count)
- node_nvmesubsystem_paths_live (live controllers)

Controller states are normalised through a single
map so adding a new kernel state requires one edit.

Signed-off-by: Shirly Radco <sradco@redhat.com>
Co-authored-by: AI Assistant <noreply@cursor.com>
@sradco
sradco force-pushed the add_collector_multipath branch from 30d6ff4 to bba83bf Compare July 6, 2026 14:28

@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 1695060 into prometheus:master Jul 6, 2026
17 checks passed
sradco added a commit to sradco/kubernetes-csi-addons that referenced this pull request Jul 8, 2026
Propose a new component that maps CSI volumes to their underlying
node block devices, exposing the mapping as Prometheus metrics.
This enables correlating storage path health (multipath, NVMe-oF)
with impacted Kubernetes workloads via PromQL joins.

The exporter is a standalone DaemonSet — it does not introduce
new gRPC RPCs or CRDs. It reads kubelet metadata and host sysfs.

Related upstream work:
- prometheus/node_exporter#3581 (dmmultipath collector, merged)
- prometheus/node_exporter#3579 (nvmesubsystem collector, merged)
- openshift-virtualization/csi-volume-device-exporter#1 (reference impl)

Signed-off-by: Shirly Radco <sradco@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
sradco added a commit to sradco/kubernetes-csi-addons that referenced this pull request Jul 8, 2026
Propose a new component that maps CSI volumes to their underlying
node block devices, exposing the mapping as Prometheus metrics.
This enables correlating storage path health (multipath, NVMe-oF)
with impacted Kubernetes workloads via PromQL joins.

The exporter is a standalone DaemonSet — it does not introduce
new gRPC RPCs or CRDs. It reads kubelet metadata and host sysfs.

Related upstream work:
- prometheus/node_exporter#3581 (dmmultipath collector, merged)
- prometheus/node_exporter#3579 (nvmesubsystem collector, merged)
- openshift-virtualization/csi-volume-device-exporter#1 (reference impl)

Signed-off-by: Shirly Radco <sradco@redhat.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@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>
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
renovate Bot added a commit to sdwilsh/sOS that referenced this pull request Jul 31, 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)
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.

4 participants