2015-02-09 10:41:04 +00:00
# Node exporter
2014-02-07 16:09:39 +00:00
2015-03-21 10:32:18 +00:00
[![Build Status ](https://travis-ci.org/prometheus/node_exporter.svg )](https://travis-ci.org/prometheus/node_exporter)
2015-03-19 02:04:29 +00:00
2015-02-09 10:41:04 +00:00
Prometheus exporter for machine metrics, written in Go with pluggable metric
collectors.
2014-02-07 16:09:39 +00:00
2016-01-21 23:09:24 +00:00
## Collectors
2015-02-09 21:41:51 +00:00
2016-01-21 23:09:24 +00:00
There is varying support for collectors on each operating system. The tables
below list all existing collectors and the supported systems.
2015-02-09 10:41:04 +00:00
2015-02-18 17:15:57 +00:00
Which collectors are used is controlled by the `--collectors.enabled` flag.
2015-02-09 10:41:04 +00:00
### Enabled by default
2016-01-21 23:09:24 +00:00
Name | Description | OS
---------|-------------|----
conntrack | Shows conntrack statistics (does nothing if no `/proc/sys/net/netfilter/` present). | Linux
2016-02-18 11:13:43 +00:00
cpu | Exposes CPU statistics | FreeBSD
2016-01-21 23:09:24 +00:00
diskstats | Exposes disk I/O statistics from `/proc/diskstats` . | Linux
entropy | Exposes available entropy. | Linux
filefd | Exposes file descriptor statistics. | Linux
filesystem | Exposes filesystem statistics, such as disk space used. | FreeBSD, Linux, OpenBSD
loadavg | Exposes load average. | Darwin, Dragonfly, FreeBSD, Linux, NetBSD, OpenBSD, Solaris
mdadm | Exposes statistics about devices in `/proc/mdstat` (does nothing if no `/proc/mdstat` present). | Linux
meminfo | Exposes memory statistics. | FreeBSD, Linux
netdev | Exposes network interface statistics such as bytes transferred. | FreeBSD, Linux, OpenBSD
netstat | Exposes network statistics from `/proc/net/netstat` . This is the same information as `netstat -s` . | Linux
stat | Exposes various statistics from `/proc/stat` . This includes CPU usage, boot time, forks and interrupts. | Linux
textfile | Exposes statistics read from local disk. The `--collector.textfile.directory` flag must be set. | _any_
time | Exposes the current system time. | _any_
vmstat | Exposes statistics from `/proc/vmstat` . | Linux
version | Exposes node\_exporter version. | _any_
2015-02-09 10:41:04 +00:00
### Disabled by default
2016-01-21 23:09:24 +00:00
Name | Description | OS
---------|-------------|----
bonding | Exposes the number of configured and active slaves of Linux bonding interfaces. | Linux
devstat | Exposes device statistics | FreeBSD
gmond | Exposes statistics from Ganglia. | _any_
interrupts | Exposes detailed interrupts statistics. | Linux, OpenBSD
ipvs | Exposes IPVS status from `/proc/net/ip_vs` and stats from `/proc/net/ip_vs_stats` . | Linux
ksmd | Exposes kernel and system statistics from `/sys/kernel/mm/ksm` . | Linux
2016-04-20 15:28:12 +00:00
logind | Exposes session counts from [logind ](http://www.freedesktop.org/wiki/Software/systemd/logind/ ). | Linux
2016-01-21 23:09:24 +00:00
megacli | Exposes RAID statistics from MegaCLI. | Linux
meminfo_numa | Exposes memory statistics from `/proc/meminfo_numa` . | Linux
ntp | Exposes time drift from an NTP server. | _any_
runit | Exposes service status from [runit ](http://smarden.org/runit/ ). | _any_
supervisord | Exposes service status from [supervisord ](http://supervisord.org/ ). | _any_
systemd | Exposes service and system status from [systemd ](http://www.freedesktop.org/wiki/Software/systemd/ ). | Linux
tcpstat | Exposes TCP connection status information from `/proc/net/tcp` and `/proc/net/tcp6` . (Warning: the current version has potential performance issues in high load situations.) | Linux
### Textfile Collector
2015-02-09 10:41:04 +00:00
The textfile collector is similar to the [Pushgateway ](https://github.com/prometheus/pushgateway ),
in that it allows exporting of statistics from batch jobs. It can also be used
to export static metrics, such as what role a machine has. The Pushgateway
should be used for service-level metrics. The textfile module is for metrics
that are tied to a machine.
2015-03-21 10:27:43 +00:00
To use it, set the `--collector.textfile.directory` flag on the Node exporter. The
2015-02-18 17:15:57 +00:00
collector will parse all files in that directory matching the glob `*.prom`
using the [text
format](http://prometheus.io/docs/instrumenting/exposition_formats/).
2015-02-09 10:41:04 +00:00
To atomically push completion time for a cron job:
```
echo my_batch_job_completion_time $(date +%s) > /path/to/directory/my_batch_job.prom.$$
mv /path/to/directory/my_batch_job.prom.$$ /path/to/directory/my_batch_job.prom
```
To statically set roles for a machine using labels:
```
echo 'role{role="application_server"} 1' > /path/to/directory/role.prom.$$
mv /path/to/directory/role.prom.$$ /path/to/directory/role.prom
```
2015-06-07 15:59:17 +00:00
2016-01-21 23:09:24 +00:00
## Building and running
make
./node_exporter < flags >
## Running tests
make test
2015-06-07 15:59:17 +00:00
## Using Docker
You can deploy this exporter using the [prom/node-exporter ](https://registry.hub.docker.com/u/prom/node-exporter/ ) Docker image.
For example:
```bash
docker pull prom/node-exporter
docker run -d -p 9100:9100 --net="host" prom/node-exporter
```