Commit graph

1019 commits

Author SHA1 Message Date
Ben Kochie f63b64ec63
Update Go (#3120)
Update to Go 1.23.
* Use Docker for Arm tests.

Signed-off-by: Ben Kochie <superq@gmail.com>
2024-09-11 09:17:14 +02:00
Miguel Oliveira b9d0932179
Add node_filesystem_mount_info metric (#2970)
* Add node_filesystem_mount_info metric

Fixes: #1384

---------

Signed-off-by: Miguel Oliveira <miguel.oliveira4224@gmail.com>
2024-07-14 16:33:12 +02:00
Ricardo F 8a3a0dea73
Add TCPRcvQDrop to default netstat metrics (#3021)
Signed-off-by: Ricardo F <r@rfmoz.eu>
Co-authored-by: Ricardo F <r@rfmoz.eu>
2024-07-14 16:18:22 +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
Pranshu Srivastava ff20a6ac48
collector/zfs: Prevent procfs integer underflow (#2961)
* collector/zfs: Prevent `procfs` integer underflow

Prevent integer underflow when parsing the `procfs` file as it used a
`ParseUint` to parse signed values.

Fixes: #2766
---------

Signed-off-by: Pranshu Srivastava <rexagod@gmail.com>
2024-07-14 14:36:30 +02:00
TJ Hoplock fdaa8fc00d
ref!: convert linux meminfo implementation to use procfs lib (#3049)
* ref!: convert linux meminfo implementation to use procfs lib

Part of #2957

Prometheus' procfs lib supports collecting memory info and we're using a
new enough version of the lib that has it available, so this converts
the meminfo collector for Linux to use data from procfs lib instead. The
bits I've touched for darwin/openbsd/netbsd are with intent to preserve
the original struct implementation/backwards compatibility.

Signed-off-by: TJ Hoplock <t.hoplock@gmail.com>

* fix: meminfo debug log unsupported value

Fixes:

```
ts=2024-06-11T19:04:55.591Z caller=meminfo.go:44 level=debug collector=meminfo msg="Set node_mem" memInfo="unsupported value type"
```

Signed-off-by: TJ Hoplock <t.hoplock@gmail.com>

* fix: don't coerce nil Meminfo entries to 0, leave out if nil

Nil entries in procfs.Meminfo fields indicate that the value isn't
present on the system. Coercing those nil values to `0` introduces new
metrics on systems that should not be present and can break some
queries.

Addresses PR feedback:
https://github.com/prometheus/node_exporter/pull/3049#discussion_r1637581536
https://github.com/prometheus/node_exporter/pull/3049#discussion_r1637584482

Signed-off-by: TJ Hoplock <t.hoplock@gmail.com>

---------

Signed-off-by: TJ Hoplock <t.hoplock@gmail.com>
2024-07-14 14:27:55 +02:00
Maarten van den Berg e8aa4de7c5
Add metrics for btrfs commit statistics (#3010)
Signed-off-by: Maarten van den Berg <maarten@channable.com>
2024-07-14 14:24:55 +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
mchtech ec5e4b50b8 add IRQ PSI test data
Signed-off-by: mchtech <michu_an@126.com>
2024-07-14 12:44:38 +02:00
mchtech d2a307ed93 change irq psi url
Signed-off-by: mchtech <michu_an@126.com>
2024-07-14 12:44:38 +02:00
mchtech fe5ffa916f add IRQ PSI metrics
Signed-off-by: mchtech <michu_an@126.com>
2024-07-14 12:44:38 +02:00
Pranshu Srivastava c0c1a8c572
chore: sync with latest procfs release (#3059)
Needed-for: https://github.com/prometheus/node_exporter/pull/3032

Signed-off-by: Pranshu Srivastava <rexagod@gmail.com>
2024-07-10 09:58:57 -04:00
chengjoey 4f7bd3544d
fix pressure metric collection fails on systems that do not expose a full CPU stat #3051 (#3054)
Signed-off-by: joey <zchengjoey@gmail.com>
2024-06-19 11:16:10 +02:00
Benny Siegert 80859a9f18
Do not panic as much in Linux collector tests (#3050)
Running "go test" in the collector directory, without the fixtures
available, results in multiple panics, including `SIGSEGV`. Most of
these are due to incorrect error handling. This cleans them up.

Signed-off-by: Benny Siegert <bsiegert@gmail.com>
2024-06-13 20:53:25 +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
Ben Kochie 3afc0a341e
Fix pressure collector nil reference (#3016)
Check that the PSI metrics are returned in order to avoid nil pointer
dereference.
* Update fixutre to match real-world samples.

Fixes: https://github.com/prometheus/node_exporter/issues/3015

Signed-off-by: Ben Kochie <superq@gmail.com>
2024-05-16 08:38:58 +02:00
Pranshu Srivastava 66fab10db4
collector/cpu: s/cpu_ticks*/cpu_nsec* for solaris (#2963)
Replace all cpu_ticks_* with cpu_nsec_*, since the former was off my a
magnitude of 10e6, and showed incorrect values for
node_cpu_seconds_total.

Fixes: #1837

Signed-off-by: Pranshu Srivastava <rexagod@gmail.com>
2024-05-15 09:13:32 +02:00
Sam Leiken 9572e7a07b
Add logging for ethtool device include/exclude and metrics include flags (#2979)
Signed-off-by: Sam Leiken <sam.k.leiken@gmail.com>
2024-04-29 19:38:29 +02:00
Chris Cleeland d333366914
Fix watchdog_test lint and test failures on macos. (#3003)
Ensure identical build flags embedded in both files.

Signed-off-by: Chris Cleeland <chris.cleeland@gmail.com>
2024-04-22 22:34:00 +02:00
Ben Kochie acb36765b4
Update build (#3000)
* Update Go to 1.22.
* Update Go modules.
* Use new version collector.
* Use standard library slices package.

Signed-off-by: Ben Kochie <superq@gmail.com>
2024-04-20 12:32:49 +02:00
John Guo e9e27138a8
fix: data race of NetClassCollector metrics initialization when multiple requests happen (#2995)
Signed-off-by: John Guo <john@johng.cn>
2024-04-19 17:15:54 +02:00
Jonathan Davies 36e0d1f6d4
os_release.go: Removed caching of modtime/filename of os-release file. (#2987)
Signed-off-by: Jonathan Davies <jpds@protonmail.com>
2024-04-17 21:27:47 +02:00
coderwander 0202220881
refactor: Optimize code by using built-in constants in the standard library (#2989)
Signed-off-by: coderwander <770732124@qq.com>
2024-04-16 09:43:16 +02:00
Ayoub Mrini bf67c859bb
fibre_channel: update procfs to take into account optional attributes (#2933)
Signed-off-by: machine424 <ayoubmrini424@gmail.com>
2024-04-15 11:52:59 +02:00
looklose 7d4103c089 chore: fix typo in comment
Signed-off-by: looklose <shishuaiqun@yeah.net>
2024-04-10 14:24:02 +02:00
Daniel Kimsey 29cdbd63fe zfs: Log mib when sysctl read fails on FreeBSD
When the zfs collector fails on FreeBSD it doesn't log which `mib` triggered the issue. This makes diagnostics hard.

Incompatibilities in the list of supported mibs is not uncommon with major os updates. By adding this change, it'll be easier for users to report the specific mib that is triggering the failure.

Related to #2847

Signed-off-by: Daniel Kimsey <90741+dekimsey@users.noreply.github.com>
2024-04-10 12:44:05 +02:00
Jonathan Davies b6227af54b
os_release.go: Added support end parsing support. (#2982)
* os_release.go: Added support end parsing support.

Fixes: #2977

Signed-off-by: Jonathan Davies <jpds@protonmail.com>

* os_release_test.go: Added TestParseOSSupportEnd.

Signed-off-by: Jonathan Davies <jpds@protonmail.com>

---------

Signed-off-by: Jonathan Davies <jpds@protonmail.com>
2024-04-03 12:23:03 +02:00
Pranshu Srivastava ebddab47e1
collector/textfile: Avoid inconsistent help-texts (#2962)
Avoid metrics with inconsistent help-texts. The earlier behaviour has
been preserved in the sense that the first encountered instance is still
used to generate metrics, whereas the subsequent inconsistent ones are
ignored along with a few peripheral changes.

```
 # HELP node_scrape_collector_duration_seconds node_exporter: Duration of a collector scrape.
 #TYPE node_scrape_collector_duration_seconds gauge
 node_scrape_collector_duration_seconds{collector="textfile"} 0.0004005
 # HELP node_scrape_collector_success node_exporter: Whether a collector succeeded.
 # TYPE node_scrape_collector_success gauge
 node_scrape_collector_success{collector="textfile"} 1
 # HELP node_textfile_mtime_seconds Unixtime mtime of textfiles successfully read.
 # TYPE node_textfile_mtime_seconds gauge
 node_textfile_mtime_seconds{file="/Users/rexagod/repositories/misc/node_exporter/ne-bar.prom"} 1.710812009e+09
 node_textfile_mtime_seconds{file="/Users/rexagod/repositories/misc/node_exporter/ne-foo.prom"} 1.710811982e+09
 # HELP node_textfile_scrape_error 1 if there was an error opening or reading a file, 0 otherwise
 # TYPE node_textfile_scrape_error gauge
 node_textfile_scrape_error 1
 # HELP promhttp_metric_handler_errors_total Total number of internal errors encountered by the promhttp metric handler.
 # TYPE promhttp_metric_handler_errors_total counter
 promhttp_metric_handler_errors_total{cause="encoding"} 0
 promhttp_metric_handler_errors_total{cause="gathering"} 0
 # HELP promhttp_metric_handler_requests_in_flight Current number of scrapes being served.
 # TYPE promhttp_metric_handler_requests_in_flight gauge
 promhttp_metric_handler_requests_in_flight 1
 # HELP promhttp_metric_handler_requests_total Total number of scrapes by HTTP status code.
 # TYPE promhttp_metric_handler_requests_total counter
 promhttp_metric_handler_requests_total{code="200"} 0
 promhttp_metric_handler_requests_total{code="500"} 0
 promhttp_metric_handler_requests_total{code="503"} 0
 # HELP tau_infrastructure_performing_maintenance_task At what timestamp a given task started or stopped, the last time it was run.
 # TYPE tau_infrastructure_performing_maintenance_task gauge
 tau_infrastructure_performing_maintenance_task{main_task="nightly",start_or_stop="start",sub_task="main"} 1.64728080198446e+09
```

Fixes: #2317

Signed-off-by: Pranshu Srivastava <rexagod@gmail.com>
2024-03-24 06:43:03 +01:00
Ben Kochie b3bbd1f52c Sanitize ethtool metric name keys
Apply the same metric name sanitization to the keys as to the metric
names. This avoids conflicting help strings in the metric registry.

Fixes: https://github.com/prometheus/node_exporter/issues/2893

Signed-off-by: Ben Kochie <superq@gmail.com>
2024-03-21 12:09:01 +01: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
linuxgcc 5e412a689a
disable selinux,fix end-to-end-test.sh error(#2934) (#2937)
Signed-off-by: heyitao <heyitao@uniontech.com>
Co-authored-by: heyitao <heyitao@uniontech.com>
2024-03-08 15:06:03 +01:00
Ben Kochie 3a02ab1cf0
Revert "filesystem: fix mountTimeout not working issue (#2903)" (#2932)
This reverts commit 9f1f791ac2.

Signed-off-by: Ben Kochie <superq@gmail.com>
2024-02-20 10:31:08 +01:00
Pamela Mei 12192475c8
filesystem: surface device errors (#2923)
filesystem: surface filesystem device error

Fixes: #2918
---------

Signed-off-by: Pamela Mei i540369 <pamela.mei@sap.com>
2024-02-18 12:04:30 +01:00
DongWei 9f1f791ac2
filesystem: fix mountTimeout not working issue (#2903)
Signed-off-by: DongWei <jiangxuege@hotmail.com>
2024-02-14 15:36:16 +01:00
Caleb Webber 6d18ce7bca
Revert "Add ZFS freebsd per dataset stats (#2753)" (#2925)
This reverts commit f34aaa6109.

Signed-off-by: Caleb Webber <caleb@codingthemsoftly.com>
2024-02-14 09:13:18 +01:00
Ben Kochie 29fca60a45
Fix hwmon error capture (#2915)
Fix golangci-lint "ineffectual assignment" by correctly capturing any
errors within the hwmon gathering loop.

Signed-off-by: Ben Kochie <superq@gmail.com>
2024-02-07 15:06:24 +01:00
TaoGe fe78e7e51a
fix hwmon nil ptr (#2873)
* fix hwmon nil ptr

syslink maybe lost in some cases.

---------

Signed-off-by: TaoGe <6657718+yowenter@users.noreply.github.com>
2024-02-03 10:13:12 +01:00
tyltr 34467b1d7a
chore:remove constant from function (#2884)
Signed-off-by: tyltr <tylitianrui@126.com>
2024-01-29 13:09:38 +01:00
David O'Rourke 94ddad4dec
exec_bsd: Fix labels for vm.stats.sys.v_syscall sysctl (#2895)
Signed-off-by: David O'Rourke <david.orourke@gmail.com>
2024-01-29 13:08:53 +01:00
DBS-ST-VIT e22174ca8e
diskstats: ignore zram devices on linux systems by default (#2898)
Signed-off-by: DBS-ST-VIT <dbs-st-vit@users.noreply.github.com>
Co-authored-by: DBS-ST-VIT <dbs-st-vit@users.noreply.github.com>
2024-01-15 09:32:58 +01:00
João Pedro Lima 16f7122d31
Add mitigation information to the linux vulnerabilities collector (#2806)
While the CPU vulnerabilities collector has been added in https://github.com/prometheus/node_exporter/pull/2721 , it's currently not including information regarding the mitigation strategy used for a given vulnerability.

This information can be quite valuable, as often times different mitigation strategies come with a different performance impact.

This commit adds a third label to the cpu_vulnerabilities_info metric, to include the "mitigation" used for a given vulnerability - if a given vulnerability is not affecting a node or the node is still vulnerable, the mitigation is expected to be empty.

Signed-off-by: João Lima <jlima@cloudflare.com>
2023-12-14 13:15:27 +01:00
frigo 0550ab3f04
Add TCPOFOQueue to default netstat metrics (#2867)
Adds a count for TCP packets received out of orders. This can be an
indication that there is packet loss on the way packets travel towards
this server. In that case, the sender will retransmit (and we can
already monitor the Tcp_RetransSegs there), but we have no way to
monitor the packet loss on the receiver side. When a packet is received
and the receiver detects previous one missing, it will increase the
TCPOFOQueue counter and reply with selective ACK to the sender, both
possible indications of packet loss. Confirmation of packet loss can be
achieved by taking packet captures, ignoring wireshark analysis, and
carefully looking at data being retransmitted based on the TCP seq.

Just like RetransSegs, TCPOFOQueue should be interesting for any
deployment as a mean to detect packet loss, so here suggesting adding it
to the default list.

Signed-off-by: François Rigault <frigo@amadeus.com>
Co-authored-by: François Rigault <frigo@amadeus.com>
2023-12-08 18:24:07 +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
Simon Pasquier 12f1744e79
Fix debug log in cpu collector (#2857)
Signed-off-by: Simon Pasquier <spasquie@redhat.com>
2023-11-24 16:37:27 +01:00
Tobias Klausmann 78af952e63
NFSd: handle new wdeleg_getattr attribute in /proc/net/rpc/nfsd (#2810)
This attribute was introduced it v6.6-rc1.

The relevant changes in procfs were merged here:

https://github.com/prometheus/procfs/pull/574

and are part of procfs v0.11.2

I have also figured out that the stat should be part of the v4 ops
counters struct, but that will need changes to both procfs and this
code. Since people are already using 6.6-rc1, I think it's better to get
the code out there --- even if they don't care about wdeleg_getattr,
currently they get _no_ nfsd stats with 6.6-rc1.

I will make two follow-up PRs to clean this up in the next releases of
procfs and node-exporter.

Signed-off-by: Tobias Klausmann <klausman@schwarzvogel.de>
2023-11-14 03:54:11 +01:00
dongjiang 86ed8cdc6b
NFSd: fix nfsd v4 index miss (#2824)
* fix nfsd v4 index miss

---------

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>
2023-10-16 18:14:21 +02:00
Ben Kochie 31a9cca551
Update e2e fixtures
Update for fixes in https://github.com/prometheus/procfs/pull/543

Signed-off-by: Ben Kochie <superq@gmail.com>
2023-10-16 13:37:17 +02:00
Conall O'Brien 60c86ab218
Fix inconsistent variable name, to address compilation issue (#2820)
https://github.com/prometheus/node_exporter/issues/2819

Signed-off-by: Conall O'Brien <conall@conall.net>
2023-10-04 21:16:58 +02:00
dongjiang e8c5110ada
fix(zfs) zfs arcstats.p on FreeBSD 14.0+ (#2754)
* dongjiang, fix zfs arcstats.p

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>

* dongjiang, fix gofmt -s

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>

* change warn log to debug log by code review

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>

---------

Signed-off-by: dongjiang1989 <dongjiang1989@126.com>
2023-09-20 11:49:56 +02:00