The prometheus.exporter.unix component uses node_exporter to expose a wide variety of hardware and OS metrics for *nix-based systems.
The node_exporter itself is comprised of various collectors, which can be enabled and disabled at will.
For more information on collectors, refer to the collectors-list section.
You can specify multiple prometheus.exporter.unix components by giving them different labels.
Usage
alloy
prometheus.exporter.unix"LABEL"{}
Arguments
You can use the following arguments to configure the exporter.
All arguments are optional.
Omitted fields take their default values.
Name
Type
Description
Default
Required
set_collectors
list(string)
Overrides the default set of enabled collectors with the collectors listed.
no
enable_collectors
list(string)
Collectors to mark as enabled.
no
disable_collectors
list(string)
Collectors to mark as disabled.
no
include_exporter_metrics
boolean
Whether metrics about the exporter itself should be reported.
false
no
procfs_path
string
The procfs mount point.
/proc
no
sysfs_path
string
The sysfs mount point.
/sys
no
rootfs_path
string
Specify a prefix for accessing the host filesystem.
/
no
udev_data_path
string
The udev data path.
/run/udev/data
no
set_collectors defines a hand-picked list of enabled-by-default collectors.
If set, anything not provided in that list is disabled by default.
Refer to the Collectors list for the default set of enabled collectors for each supported operating system.
enable_collectors enables more collectors over the default set, or on top of the ones provided in set_collectors.
disable_collectors extends the default set of disabled collectors.
If there are conflicts, it takes precedence over enable_collectors.
Blocks
The following blocks are supported inside the definition of prometheus.exporter.unix to configure collector-specific options:
List of CPUs from which perf metrics should be collected.
no
tracepoint
list(string)
Array of perf tracepoints that should be collected.
no
disable_hardware_profilers
boolean
Disable perf hardware profilers.
false
no
hardware_profilers
list(string)
Perf hardware profilers that should be collected.
no
disable_software_profilers
boolean
Disable perf software profilers.
false
no
software_profilers
list(string)
Perf software profilers that should be collected.
no
disable_cache_profilers
boolean
Disable perf cache profilers.
false
no
cache_profilers
list(string)
Perf cache profilers that should be collected.
no
powersupply block
name
type
description
default
required
ignored_supplies
string
Regexp of power supplies to ignore for the powersupplyclass collector.
"^$"
no
runit block
name
type
description
default
required
service_dir
string
Path to runit service directory.
"/etc/service"
no
supervisord block
name
type
description
default
required
url
string
XML RPC endpoint for the supervisord collector.
"http://localhost:9001/RPC2"
no
Setting SUPERVISORD_URL in the environment overrides the default value.
An explicit value in the block takes precedence over the environment variable.
sysctl block
name
type
description
default
required
include
list(string)
Numeric sysctl values to expose.
[]
no
include_info
list(string)
String sysctl values to expose.
[]
no
systemd block
name
type
description
default
required
enable_restarts
boolean
Enables service unit metric service_restart_total
false
no
start_time
boolean
Enables service unit metric unit_start_time_seconds
false
no
task_metrics
boolean
Enables service unit task metrics unit_tasks_current and unit_tasks_max.
false
no
unit_exclude
string
Regexp of systemd units to exclude. Units must both match include and not match exclude to be collected.
".+\\.(automount|device|mount|scope|slice)"
no
unit_include
string
Regexp of systemd units to include. Units must both match include and not match exclude to be collected.
".+"
no
tapestats block
name
type
description
default
required
ignored_devices
string
Regexp of tapestats devices to ignore.
"^$"
no
textfile block
name
type
description
default
required
directory
string
Directory to read *.prom files from for the textfile collector.
no
vmstat block
name
type
description
default
required
fields
string
Regexp of fields to return for the vmstat collector.
"^(oom_kill|pgpg|pswp|pg.*fault).*"
no
Exported fields
The following fields are exported and can be referenced by other components.
Name
Type
Description
targets
list(map(string))
The targets that can be used to collect exporter metrics.
For example, the targets can either be passed to a discovery.relabel component to rewrite the targets’ label sets or to a prometheus.scrape component that collects the exposed metrics.
prometheus.exporter.unix is only reported as unhealthy if given
an invalid configuration. In those cases, exported fields retain their last
healthy values.
Debug information
prometheus.exporter.unix does not expose any component-specific
debug information.
Debug metrics
prometheus.exporter.unix does not expose any component-specific
debug metrics.
Collectors list
The following table lists the available collectors that node_exporter brings bundled in.
Some collectors only work on specific operating systems.
Enabling a collector that’s not supported by the host operating system where Alloy is running is a no-op.
Users can choose to enable a subset of collectors to limit the amount of metrics exposed by the prometheus.exporter.unix component, or disable collectors that are expensive to run.
Name
Description
OS
Enabled by default
arp
Exposes ARP statistics from /proc/net/arp.
Linux
yes
bcache
Exposes bcache statistics from /sys/fs/bcache.
Linux
yes
bonding
Exposes the number of configured and active slaves of Linux bonding interfaces.
Linux
yes
boottime
Exposes system boot time derived from the kern.boottime sysctl.
Darwin, Dragonfly, FreeBSD, NetBSD, OpenBSD, Oracle Solaris
yes
btrfs
Exposes statistics on btrfs.
Linux
yes
buddyinfo
Exposes statistics of memory fragments as reported by /proc/buddyinfo.
Linux
no
conntrack
Shows conntrack statistics. Does nothing if no /proc/sys/net/netfilter/ is present.
Exposes memory statistics from /proc/meminfo_numa.
Linux
no
mountstats
Exposes filesystem statistics from /proc/self/mountstats. Exposes detailed NFS client statistics.
Linux
no
netclass
Exposes network interface info from /sys/class/net.
Linux
yes
netdev
Exposes network interface statistics such as bytes transferred.
Darwin, Dragonfly, FreeBSD, Linux, OpenBSD
yes
netisr
Exposes netisr statistics.
FreeBSD
yes
netstat
Exposes network statistics from /proc/net/netstat. This is the same information as netstat -s.
Linux
yes
network_route
Exposes network route statistics.
Linux
no
nfs
Exposes NFS client statistics from /proc/net/rpc/nfs. This is the same information as nfsstat -c.
Linux
yes
nfsd
Exposes NFS kernel server statistics from /proc/net/rpc/nfsd. This is the same information as nfsstat -s.
Linux
yes
ntp
Exposes local NTP daemon health to check time.
any
no
nvme
Exposes NVMe statistics.
Linux
yes
os
Exposes os-release information.
Linux
yes
perf
Exposes perf based metric. Warning: Metrics are dependent on kernel configuration and settings.
Linux
no
powersupplyclass
Collects information on power supplies.
any
yes
pressure
Exposes pressure stall statistics from /proc/pressure/.
Linux kernel 4.20+ or CONFIG_PSI
yes
processes
Exposes aggregate process statistics from /proc.
Linux
no
qdisc
Exposes queuing discipline statistics.
Linux
no
rapl
Exposes various statistics from /sys/class/powercap.
Linux
yes
runit
Exposes service status from runit.
any
no
schedstat
Exposes task scheduler statistics from /proc/schedstat.
Linux
yes
sockstat
Exposes various statistics from /proc/net/sockstat.
Linux
yes
softirqs
Exposes detailed softirq statistics from /proc/softirqs.
Linux
no
softnet
Exposes statistics from /proc/net/softnet_stat.
Linux
yes
stat
Exposes various statistics from /proc/stat. This includes boot time, forks and interrupts.
Linux
yes
supervisord
Exposes service status from supervisord.
any
no
sysctl
Expose sysctl values from /proc/sys.
Linux
no
systemd
Exposes service and system status from systemd.
Linux
no
tapestats
Exposes tape device stats.
Linux
yes
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
no
textfile
Collects metrics from files in a directory matching the filename pattern *.prom. The files must use text-based exposition formats.
any
yes
thermal
Exposes thermal statistics.
Darwin
yes
thermal_zone
Exposes thermal zone & cooling device statistics from /sys/class/thermal.
Linux
yes
time
Exposes the current system time.
any
yes
timex
Exposes selected adjtimex(2) system call stats.
Linux
yes
udp_queues
Exposes UDP total lengths of the rx_queue and tx_queue from /proc/net/udp and /proc/net/udp6.
Linux
yes
uname
Exposes system information as provided by the uname system call.
Darwin, FreeBSD, Linux, OpenBSD, NetBSD
yes
vmstat
Exposes statistics from /proc/vmstat.
Linux
yes
wifi
Exposes WiFi device and station statistics.
Linux
no
xfs
Exposes XFS runtime statistics.
Linux kernel 4.4+
yes
zfs
Exposes ZFS performance statistics.
Linux, Oracle Solaris
yes
zoneinfo
Exposes zone stats.
Linux
no
Run on Docker/Kubernetes
When running Alloy in a Docker container, you need to bind mount the filesystem, procfs, and sysfs from the host machine, as well as set the corresponding arguments for the component to work.
You may also need to add capabilities such as SYS_TIME and make sure that Alloy is running with elevated privileges for some of the collectors to work properly.
Connecting some components may not be sensible or components may require further configuration to make the connection work correctly.
Refer to the linked documentation for more details.