/node_exporter

Exporter for machine metrics

Primary LanguageGoApache License 2.0Apache-2.0

Node exporter

This is a fork of Node exporter, an metrics collector written in Go, which exposes several kernel and hardware data of *NIX OS in Prometheus exposition format.

You can get more detailed information about it in the upstream README.

In addition to the upstream this version has the following

Enhancements

  • The binary got renamed to node-exporter, which is easier to type at least on german layout keyboards and allows one to install it side-by-side with the original.
  • New collector.cpus - it exposes the number of CPU cores (or strands if HT or SMT is enabled) currently on- and offline.
  • collector.nfs, collector.nfsd (Linux):
    • Cleanup, fix and consolidation.
    • Added support for NFS 4.1 and 4.2 incl. RFC 8276 operations.
    • NFS metrics got renamed to something, what makes sense to admins.
    • New feature collector.nfsd.skip=list - allows to turn off parsinging and exposing nfsd metrics for the given list of NFS versions.
    • The collector.nfsd now exposes /proc/fs/nfsd/pool_stats metrics as well. If you have any NFS problems, these are the metrics you should check first.
  • collector.pressure (Linux):
    • Misleading/vague HELP messages got replaced, are now kernel documentation conform.
    • Metrics got renamed to psi (instead of pressure) and labels are now kernel documentation conform.
    • Values get exposed as is in µs, are not converted to seconds anymore.
  • collector.cpu:
    • New options --no-collector.cpu.stats and --no-collector.cpu.throttle options can be used to disable (or w/o no- to explicitly enable) collecting and exposing a lot of CPU related metrics, which are in a day-by-day monitoring more or less useless (especially if one has many cores CPUs).
    • collector.cpu.info optimization: /proc/cpuinfo gets parsed only once, when the collector gets initialized because it is unlikely to change. Furthermore data are now collected per CPU package and not per hyperthread/strand. This reduces redundant data and the metrics cardinality especially for many core CPUs a lot.
    • collcetor.cpu.info: Useless bloat gets removed from model_name and min, max and base frequency provided in a separate label entry.
  • collector.dmi: HELP message got replaced with a shorter description which makes in addition sense.
  • New option --compact: disable sending TYPE and HELP messages for each metric. Reduces the transmitted volume up to 60% depending on what is enabled.
  • New option --web.disable-go-metrics: Usually only Go developers (and often not even those) can possibly deduce something useful from go metrics. So admins now have an option to reduce this bloat to zero for day-by-day monitoring.
  • New feature: node_scrape_collector_duration_seconds{collector="overall"} shows the time it took to obtain and format data from all collectors (can happen concurrently, so not necessarily the sum of all collector scrapetimes).
  • The version string is now completely human readable - useless VCS infos dropped.
  • Build:
    • The default target is now build.
    • Vendor files are now tracked as well. They get patched as needed so take care when running a 'go mod vendor'.

Download

You may download a debian package made for Ubuntu 20.04 using this URL https://pkg.cs.ovgu.de/LNF/linux/ubuntu/20.04/. It is self-containing and should work out of the box. It should work on other Linux Distros as well, but has not been tested there. You may use alien or an archive manager of your choice to extract the binary and systemd related files as needed if your distro is not debian package driven.