gitmyhub

node_exporter

Go ★ 14k updated 1d ago

Exporter for machine metrics

A small Go program that collects hundreds of hardware and OS metrics from a Linux server, CPU, memory, disk, network, and exposes them on an HTTP endpoint for Prometheus to scrape and Grafana to visualize.

GoPrometheusLinuxsetup: moderatecomplexity 3/5

Node Exporter is a small program that collects hardware and system statistics from a Linux or Unix server and publishes them in a format that Prometheus can read. Prometheus is a monitoring system commonly used to track the health of servers and applications. Node Exporter acts as the bridge between the server's own metrics and the Prometheus collector.

Once running, Node Exporter listens on port 9100 by default and makes hundreds of system metrics available over HTTP. You point your Prometheus server at that address, and it scrapes the data on a regular schedule. From there the data can be visualized in tools like Grafana.

The information it collects comes from built-in modules called collectors. By default it enables a wide set covering: CPU usage and frequency, memory usage, disk read and write statistics, filesystem space, network traffic by interface, load averages, hardware sensor readings such as temperatures and fan speeds, and many more. You can turn collectors on or off with command-line flags, and some collectors let you include or exclude specific devices using filter patterns.

The project is designed to run on the host machine, not inside a container, because it needs to read the host kernel interfaces directly. If you need to run it in Docker, the README provides the specific flags and volume mounts required to give the container access to the host system rather than just the container's own view.

For Windows there is a separate companion project called Windows Exporter. NVIDIA GPU metrics are covered by a different exporter as well.

Where it fits