1
0
mirror of https://github.com/prometheus/node_exporter.git synced 2026-10-23 08:09:06 +03:00

206 Commits

Author SHA1 Message Date
Ben Kochie
b9e296a911 chore: Document ErrNoData policy (#3864)
Add some notes in the README and CONTRIBUTING docs about collectors
that are unable to find _any_ data.

This policy was decided in https://github.com/prometheus/node_exporter/issues/1323.

Signed-off-by: Ben Kochie <superq@gmail.com>
2026-10-22 09:16:35 +02:00
Rene Treffer
153881bdae Add resctrl collector (#3797)
* Add resctrl collector

Expose the Linux resctrl monitoring counters (Intel RDT, AMD PQoS,
ARM MPAM): per L3 domain memory bandwidth (mbm_total_bytes,
mbm_local_bytes) and last level cache occupancy (llc_occupancy).
Parsing is done by the procfs resctrlfs package (procfs v0.22.0).

The collector is disabled by default because the resctrl filesystem
must be mounted first (mount -t resctrl resctrl /sys/fs/resctrl). The
mountpoint is configurable via --collector.resctrl.path.

Counters a CPU does not support (for example mbm_local_bytes on Arm
MPAM) or that read "Unavailable" are skipped per sample. The hardware
counters wrap; Prometheus treats the wrap as a counter reset, so no
correction is applied.

Signed-off-by: René Treffer <treffer@measite.de>

* Describe steps needed to use the resctrl exporter

Signed-off-by: René Treffer <treffer@measite.de>

* Shorten resctrl documentation

Signed-off-by: René Treffer <treffer@measite.de>

---------

Signed-off-by: René Treffer <treffer@measite.de>
2026-10-20 10:39:09 +02:00
Arun Srinivasan
37ec35f698 collector: add tainted collector for /proc/sys/kernel/tainted (#3745)
* collector: add tainted collector for /proc/sys/kernel/tainted

Signed-off-by: Arun S <arun.srinivasan@flipkart.com>

* go.mod: bump procfs to pick up KernelTainted() (#844)

Signed-off-by: Arun S <arun.srinivasan@flipkart.com>

* go.mod: bump procfs to pick up linux build tag fix (#847)

Signed-off-by: Arun S <arun.srinivasan@flipkart.com>

* collector/tainted: use year-less copyright header

Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Arun S <arun.srinivasan@flipkart.com>

* collector/tainted: address review feedback and document collector
Store procfs.FS on the collector instead of opening it each scrape.
Add matching !notainted build tag on the implementation file.
Document the tainted collector and node_kernel_tainted metrics in README.

Signed-off-by: Arun S <arun.srinivasan@flipkart.com>

* README: drop tainted collector section, keep table entry only

Signed-off-by: Arun S <arun.srinivasan@flipkart.com>

* go.mod: align with master after merge (procfs v0.22.0, toolkit v0.19.0)

Fixes build and BSD e2e failures caused by stale dependency versions
left over from a bad merge.

Signed-off-by: Arun S <arun.srinivasan@flipkart.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Signed-off-by: Arun S <arun.srinivasan@flipkart.com>
Signed-off-by: Arun Srinivasan <arunpiter@gmail.com>
Co-authored-by: Arun S <arun.srinivasan@flipkart.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-15 14:46:19 -03:00
Jason Jiang
9a077374d7 docs: clarify Docker rootfs wording (#3653)
Signed-off-by: jcj46548-ux <jcj46548@gmail.com>
Co-authored-by: Ben Kochie <superq@gmail.com>
2026-08-29 09:54:41 -03:00
Jason Jiang
9d2bb0ae11 docs: update Go documentation links (#3654)
Signed-off-by: jcj46548-ux <jcj46548@gmail.com>
Co-authored-by: Ben Kochie <superq@gmail.com>
2026-07-10 14:48:40 +02:00
Aman Raj
157879c095 docs: document the EPEL package install path in the README (#3692)
* docs: document the EPEL package install path in the README

The README's "Installation and Usage" section only covered Ansible and
Docker. On Enterprise Linux and Fedora, node_exporter is packaged in
EPEL as golang-github-prometheus-node-exporter (EPEL 7, 8 and 9), which
several users find easier than a manual install. Add a short "Linux
distribution packages" subsection documenting it, including the EL9
systemd service name.

Closes #2160

Signed-off-by: Aman Raj <aman.yug@gmail.com>

* Apply suggestions from code review

Co-authored-by: Ben Kochie <superq@gmail.com>
Signed-off-by: Ben Kochie <superq@gmail.com>

* Apply suggestions from code review

Co-authored-by: Ben Kochie <superq@gmail.com>
Signed-off-by: Ben Kochie <superq@gmail.com>

---------

Signed-off-by: Aman Raj <aman.yug@gmail.com>
Signed-off-by: Ben Kochie <superq@gmail.com>
Co-authored-by: Ben Kochie <superq@gmail.com>
2026-07-10 14:38:35 +02:00
SEONGHYUN HONG
ff27d4d78e docs: fix qdisk -> qdisc collector and flag names in README (#3693)
Signed-off-by: s3onghyun <s3onghyun.hong@gmail.com>
2026-07-10 14:13:23 +02:00
Aman Raj
413b7e065a Add device filtering to the infiniband collector (#3694)
Add --collector.infiniband.device-include and
--collector.infiniband.device-exclude flags to the infiniband collector,
following the existing pattern used by the arp, ethtool, diskstats and
netdev collectors. Devices not matching the filter are skipped in Update.

Signed-off-by: Aman Raj <aman.yug@gmail.com>
2026-07-10 12:26:46 +02:00
Shirly Radco
1695060051 collector: add nvmesubsystem collector (#3579)
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>
2026-07-06 17:47:26 +02:00
Shirly Radco
a498ed44d3 collector: add dmmultipath collector (#3581)
Add a new collector that reads /sys/block/dm-* to
discover Device Mapper multipath devices and expose
path health metrics. Enabled by default; the
collector is a no-op on systems without multipath.

Multipath devices are identified by checking that
dm/uuid starts with "mpath-". The path state is
reported as-is from /sys/block/<dev>/device/state,
supporting both SCSI and NVMe devices without
hardcoding a fixed set of states.

Exposed metrics:
- node_dmmultipath_device_info
- node_dmmultipath_device_active
- node_dmmultipath_device_size_bytes
- node_dmmultipath_device_paths
- node_dmmultipath_device_paths_active
- node_dmmultipath_device_paths_failed
- node_dmmultipath_path_state

Signed-off-by: Shirly Radco <sradco@redhat.com>
Co-authored-by: AI Assistant <noreply@cursor.com>
2026-07-06 17:30:53 +02:00
Ben Kochie
91d3020d50 Fix kernelhung collector (#3606)
Fix the kernel_hung collector metric naming to follow counter naming
conventions.
* Enable the colletor by default, this feature has existed since 2.6.30.
* Enable end-to-end test.

Signed-off-by: Ben Kochie <superq@gmail.com>
2026-04-04 09:59:41 +02:00
Ben Kochie
aba58562fd Fixup CI (#3605)
* Cleanup old CircleCI config.
* Fix build job dependency.
* Update CI badge.

Signed-off-by: Ben Kochie <superq@gmail.com>
2026-04-03 16:59:48 +02:00
ScarletBlizzard
819c370597 Add collector for hung_task_detect_count (#3470)
* Add collector for hung_task_detect_count

---------

Signed-off-by: ScarletBlizzard <mesushkov@gmail.com>
2025-11-13 12:18:53 +01:00
Fabian Deutsch
771c3d458a Add /proc/swaps collector (#3428)
* Add /proc/swaps collector

Building on prometheus/procfs#246 this PR is introducing metrics around swap devices.

Today metrics around swap are already available, but they are on the node level.
With this PR, metrics are now available per device.

Relates to: #1890

Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
Co-authored-by: claude.ai


---------

Signed-off-by: Fabian Deutsch <fabiand@fedoraproject.org>
2025-10-06 19:42:00 +02:00
Naoki MATSUMOTO
05c68e2040 Add collector for PCIe devices with link information (#3339)
* Add collector for PCIe devices with link information

The link status of PCIe devices sometimes changes,
like link or speed downgrades, and devices disappear.
This patch collects PCIe devices' link infromation  to detect such failures.

As a first step, this collector exports PCIe devices'
- Device information (vendor_id, device_id, etc.)
- Parent PCIe device (e.g. PCIe bridge, PCIe switch)
- Link status (max_link_{transfers_per_second|width}, current_link_{transfers_per_second|width})

---------

Signed-off-by: Naoki MATSUMOTO <m.naoki9911@gmail.com>
2025-07-25 15:58:50 +02:00
Ben Kochie
8107c3f6c4 Fixup README formatting (#3251)
Remove formatting that doesn't render properly.

Signed-off-by: Ben Kochie <superq@gmail.com>
2025-02-17 18:45:49 +01:00
Ben Kochie
d611fb2504 Update status badges
* Remove obsolete buildkite badge.
* Add GitHub actions workflow badges.

Signed-off-by: Ben Kochie <superq@gmail.com>
2025-02-17 12:07:51 +01:00
Ben Kochie
226c80c83c Add filesystem include flags
Add support for allow lists of filesystem mount points and filesystem
types. This allows for less messy regexps when you want to target only
specific lists of mount points or filesystem types.

Signed-off-by: Ben Kochie <superq@gmail.com>
2024-12-14 14:14:54 +01:00
Siavash Safi
7a97429e57 Add exclude[] parameter (#3116)
This PR adds a `exclude[]` URL parameter to exclude specific enabled collectors.
Compared to `collect[]` parameter, the `exclude[]` parameter results in a filtered list which equals enabled collectors minus excluded ones.

Signed-off-by: Siavash Safi <git@hosted.run>
2024-09-14 19:45:47 +02:00
Ben Kochie
e0c4a47a02 Add interrupts collector filtering (#3028)
In order to reduce cardinality of the interrupts collector add
filtering options
* Add include/exclude regexp filter flags.
* Add boolean flag to include zero values, enabled by default.

Signed-off-by: Ben Kochie <superq@gmail.com>
2024-07-14 16:17:20 +02:00
Simon Krenger
e11a4f0309 Add include and exclude filter for sensors in hwmon collector (#3072)
* Add include and exclude filter for sensors in hwmon collector
Fixes #2242

This commit adds two new flags (`collector.hwmon.sensor-include` and `collector.hwmon.sensor-exclude`) to the `hwmon` collector to allow inclusion or exclusion of specific sensors.

Some devices export nonsensical values for certain sensors. Here is an example:

```
node_hwmon_temp_celsius{chip="platform_nct6775_656",sensor="temp13"} 49.75
node_hwmon_temp_celsius{chip="platform_nct6775_656",sensor="temp15"} 3.892313987e+06
node_hwmon_temp_celsius{chip="platform_nct6775_656",sensor="temp16"} 3.892313987e+06
```

As a user I would like to only exclude these sensors, not necessarily the complete device (as is currently possible with the `--collector.hwmon.chip-exclude` flag) as other sensor values might be sensical or desired.

The new option filters based both on device name and sensor name, separated by a semicolon. For example, to exclude the two sensors above, the following regex can be used:

~~~
--collector.hwmon.sensor-exclude="platform_nct6775_656;temp1[5,6]"
~~~


---------

Signed-off-by: Simon Krenger <skrenger@redhat.com>
2024-07-14 13:50:06 +02:00
myeunee
99dc91c1dd Fix: Change EXPERIMENTAL to Experimental in README.md
Signed-off-by: myeunee <myeunee@gmail.com>
2024-07-14 13:00:57 +02:00
kangjie
dae4c87f7d slab-collector: add filter for slab name. (#3041)
Signed-off-by: Kangjie Xu <kanxu@ebay.com>
Co-authored-by: Kangjie Xu <kanxu@ebay.com>
2024-06-06 18:37:22 +02:00
Gavin Lam
94ef5cc666 Enable watchdog module by default; Add no data error (#2953)
Signed-off-by: Gavin Lam <gavin.oss@tutamail.com>
2024-03-14 07:50:55 +01:00
Gavin Lam
95efb86f6b Add new collector and metrics for watchdog (#2309) (#2880)
Signed-off-by: Gavin Lam <gavin.oss@tutamail.com>
2024-03-09 10:00:06 +01:00
Gavin Lam
332232c22c Add new collector and metrics for XFRM (#2544) (#2866)
Signed-off-by: Gavin Lam <gavin.oss@tutamail.com>
2023-12-03 17:10:59 +01:00
Ben Kochie
4abf2c972e Update containerization warnings (#2855)
Running node_exporter in containers is now a fairly well understood
problem. Replace the warnings with something less dire and more
prescriptive.

Signed-off-by: Ben Kochie <superq@gmail.com>
2023-11-23 13:23:18 +01:00
joey
6122cee47a fix readme about expose memory statistics
Signed-off-by: joey <zchengjoey@gmail.com>
2023-10-19 11:43:16 +02:00
yang-stressfree
7dd2f0dc4f Update README.md: update the 'more details' url in the section 'TLS endpoint' (#2814)
* Update README.md: correct the wrong url(link to exporter-toolkit web-config) in the section 'TLS endpoint'

Signed-off-by: yang-stressfree <68363665+yang-stressfree@users.noreply.github.com>

* Update README.md

Co-authored-by: Ben Kochie <superq@gmail.com>
Signed-off-by: yang-stressfree <68363665+yang-stressfree@users.noreply.github.com>

---------

Signed-off-by: yang-stressfree <68363665+yang-stressfree@users.noreply.github.com>
Co-authored-by: Ben Kochie <superq@gmail.com>
2023-10-07 10:20:44 +02:00
L
5d1b96c936 Include drm collector in README
The DRM collector was missing in the README, this change includes it together with a short description.

Signed-off-by: L <3177243+LukeLR@users.noreply.github.com>
2023-07-31 13:14:13 +01:00
Ben Kochie
7c564bcbef Fixup hwmon chip include (#2739)
Use the correct include value to the device filter function.
* Add new bogus hwmon fixture.
* Update end-to-end test to use hwmon chip include flag.

Signed-off-by: Ben Kochie <superq@gmail.com>
2023-07-10 12:46:30 +02:00
Gabi Davar
f4344579d5 Add missing ethtool flag documentation (#2743)
Signed-off-by: Gabi Davar <grizzly.nyo@gmail.com>
2023-07-08 09:36:36 +02:00
Michal
c31ebb4359 Add cpu vulnerabilities reporting from sysfs (#2721)
* Add cpu vulnerabilities reporting from sysfs

---------

Signed-off-by: Michal Wasilewski <michal@mwasilewski.net>
2023-07-01 14:21:49 +02:00
Johannes Dilli
a1ed08430b Update ansible role in README.md (#2702)
https://github.com/cloudalchemy/ansible-node-exporter has been deprecated

Signed-off-by: Johannes Dilli <jd1@users.noreply.github.com>
2023-05-26 09:14:38 +02:00
Abbey Woodyear
eaacb2e3c7 exposing softirq metrics (#2294)
Signed-off-by: abbeywoodyear <abbey.woodyear@thehutgroup.com>
2023-05-25 15:09:32 +02:00
Ben Kochie
da0b2ca3c2 Deprecate supervisord collector
Mark the `supervisord` as deprecated. This process
supevisor, like `runit`, is of scope for the node_exporter.

Signed-off-by: Ben Kochie <superq@gmail.com>
2023-05-23 18:10:42 +02:00
Jonathan Davies
29c97c2197 collector/netisr_freebsd.go: Added collector for netisr subsystem. (#2668)
Signed-off-by: Jonathan Davies <jpds@protonmail.com>
2023-05-11 10:34:26 +02:00
Johannes Ziemke
180879e1c4 Use go-runit fork, mark collector as deprecated
Signed-off-by: Johannes Ziemke <github@5pi.de>
2023-05-09 11:42:21 +02:00
David Calvert
a7f92756d3 doc: added undocumented include and exclude flags (#2670)
* doc: added undocumented exclude flags


Signed-off-by: David Calvert <david@0xdc.me>
2023-05-02 15:23:06 +02:00
Ben Kochie
7f07462913 Fix spelling issues
Minor typo fixup.

Signed-off-by: Ben Kochie <superq@gmail.com>
2023-03-10 11:20:22 +01:00
Ben Kochie
c8705ec4b2 Deprecate ntp collector
The ntp collector has always been a source of confusion and problems.
The data it produces is more of a blackbox probe against an NTP server.
The time sync / offset data produced is not what users expect.

Mark this collector as deprecated to be removed in v2.0.0

Signed-off-by: Ben Kochie <superq@gmail.com>
2023-02-16 09:27:38 +01:00
Joe Groocock
a5df170905 Correct documentation for --web.config.file flag
The --web.config flag changed to --web.config.file in
440a132c38 and was realised in the recent
v1.5.0 release.

Signed-off-by: Joe Groocock <me@frebib.net>
2022-11-29 19:37:41 +00:00
Sabart Otto
26e82af8a2 readme: remove RHEL/CentOS/Fedora installation info (#2525)
Copr community prometheus-exporters repository is obsoleted.

Signed-off-by: Otto Sabart <seberm@seberm.com>

Signed-off-by: Otto Sabart <seberm@seberm.com>
2022-11-14 17:57:01 +01:00
Mateusz Piotrowski
d31cfb6ef9 Document availability of zfs collector on FreeBSD
The zfs collector for FreeBSD was committed in
3d504bc5cb.

Signed-off-by: Mateusz Piotrowski <0mp@FreeBSD.org>
2022-07-25 18:48:47 +02:00
Johannes Ziemke
bc0bff22fd Add sysctl docs to README.md
Signed-off-by: Johannes Ziemke <github@5pi.de>
2022-07-25 18:27:48 +02:00
Johannes 'fish' Ziemke
d962e48ca2 Add sysctl collector
Signed-off-by: Johannes Ziemke <github@5pi.de>
2022-07-25 18:27:48 +02:00
Nobuhiro MIKI
3ed95908d6 collector: add slab info
Co-authored-by: Ben Kochie <superq@gmail.com>
Signed-off-by: Nobuhiro MIKI <nmiki@yahoo-corp.jp>
2022-07-06 12:18:27 +02:00
Jonathan Davies
88f1811eb1 Add selinux collector (#2205)
Add selinux collector

Signed-off-by: Jonathan Davies <jpds@protonmail.com>
2022-06-28 05:54:05 +02:00
Ben Kochie
a516d4de4a Cleanup cgroups collector (#2414)
* Correctly name collector file.
* Fix cgroup summary type as gauge.
* Use a boolean metric rather than a label for enabled.

Signed-off-by: Ben Kochie <superq@gmail.com>
2022-06-24 17:15:31 +02:00
Ben Kochie
9354e37203 Update build
* Update build to Go 1.18.
* Update minimum version to 1.17.
* Update machine image to latest.
* Enable dependabot.
* Simplify build in readme.

Signed-off-by: Ben Kochie <superq@gmail.com>
2022-06-19 11:16:20 +02:00