菜单
开源

prometheus.exporter.unix

prometheus.exporter.unix 组件使用 node_exporter 来暴露针对基于*nix的系统的各种硬件和操作系统指标。

本身 node_exporter 由各种 收集器 组成,可以按需开启和禁用。有关收集器的更多信息,请参阅 collectors-list 部分。

您可以通过为它们不同的标签来指定多个 prometheus.exporter.unix 组件。

用法

alloy
prometheus.exporter.unix "LABEL" {
}

参数

您可以使用以下参数来配置导出器。所有参数都是可选的。省略的字段将采用其默认值。

名称类型描述默认必需
set_collectorslist(string)使用列出的收集器覆盖默认的启用收集器集。no
enable_collectorslist(string)标记为启用的收集器。no
disable_collectorslist(string)标记为禁用的收集器。no
include_exporter_metricsboolean是否应报告有关导出器自身的指标。falseno
procfs_pathstringprocfs挂载点。/procno
sysfs_pathstringsysfs挂载点。/sysno
rootfs_pathstring指定用于访问主文件系统的前缀。/no
udev_data_pathstringudev数据路径。/run/udev/datano

set_collectors 定义了一个默认启用的精挑细选的收集器列表。如果设置了此列表,那么在该列表中未提供的任何内容都默认禁用。请参阅 收集器列表 以获取每个支持的操作系统的默认启用收集器集。

enable_collectors 在默认设置之上或在其之上启用更多的收集器。

disable_collectors 扩展默认禁用收集器的集合。如果有冲突,则优先于 enable_collectors

以下块支持在 prometheus.exporter.unix 定义中配置特定收集器选项

层次结构名称描述必需
bcachebcache配置 bcache 收集器。no
cpucpu配置 cpu 收集器。no
diskdisk配置 diskstats 收集器。no
ethtoolethtool配置ethtool收集器。no
文件系统文件系统配置文件系统收集器。no
硬件监控硬件监控配置硬件监控收集器。no
IPVSIPVS配置IPVS收集器。no
UTC时间UTC时间配置UTC时间收集器。no
网络类别网络类别配置网络类别收集器。no
网络设备网络设备配置网络设备收集器。no
网络状态网络状态配置网络状态收集器。no
性能性能配置性能收集器。no
电源供应电源供应配置电源供应收集器。no
runitrunit配置runit收集器。no
supervisordsupervisord配置supervisord收集器。no
系统控制系统控制配置系统控制收集器。no
systemdsystemd配置systemd收集器。no
磁带统计磁带统计配置磁带统计收集器。no
文本文件文本文件配置文本文件收集器。no
虚拟内存状态虚拟内存状态配置虚拟内存状态收集器。no

bcache块

名称类型描述默认必需
优先级统计boolean启用暴露昂贵的 bcachepriority统计。falseno

cpu块

名称类型描述默认必需
虚拟机boolean启用node_cpu_guest_seconds_total指标。no
信息boolean为cpu收集器启用cpu_info指标no
错误包含string在此处按需过滤cpu信息中错误字段的正则表达式。no
标志包含string在此处按需过滤cpu信息中标志字段的正则表达式。no

磁盘块

名称类型描述默认必需
设备排除string按需排除磁盘统计的设备的正则表达式。"^(ram|loop|fd|(h|s|v|xv)d[a-z]|nvme\\d+n\\d+p)\\d+$"no
设备包含string按需包含磁盘统计的设备的正则表达式。如果设置,则忽略device_excludeno

ethtool块

名称类型描述默认必需
设备排除string排除ethtool设备的正则表达式。与device_include互斥。no
设备包含string包含ethtool设备的正则表达式。与device_exclude互斥。no
指标包含string包含ethtool统计的正则表达式。.*no

文件系统块

默认值取决于Alloy运行的操作系统。

名称类型描述默认必需
文件系统类型排除string要忽略文件系统收集器的文件系统类型的正则表达式。(见下文 )no
排除挂载点string要忽略文件系统收集器的挂载点的正则表达式。(见下文 )no
挂载超时持续时间在将挂载标记为过时之前等待挂载响应的时间。"5s"no

fs_types_exclude默认为以下正则表达式字符串

linux
^(autofs|binfmt_misc|bpf|cgroup2?|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|iso9660|mqueue|nsfs|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|selinuxfs|squashfs|sysfs|tracefs)$
osx
^(autofs|devfs)$
bsd
^devfs$

mount_points_exclude默认为以下正则表达式字符串

linux
^/(dev|proc|run/credentials/.+|sys|var/lib/docker/.+)($|/)
osx
^/(dev)($|/)
bsd
^/(dev)($|/)

硬件监控块

名称类型描述默认必需
芯片包含string要包含的hwmon芯片的正则表达式。与chip-exclude互斥。no
芯片排除string要排除的hwmon芯片的正则表达式。与chip-include互斥。no

ipvs块

名称类型描述默认必需
后端标签list(string)IPVS后端统计标签数组。[local_address, local_port, remote_address, remote_port, proto, local_mark]no

ntp块

名称类型描述默认值必填项
服务器string用于收集器的NTP服务器。"127.0.0.1"no
服务器是本地boolean确认服务器地址不是公开的NTP服务器。falseno
ip_ttl整数在发送NTP查询时使用的TTL。1no
local_offset_tolerance持续时间允许的本地时钟和本地NTPD时间之间的偏移。"1ms"no
max_distance持续时间到根节点的最大累积距离。"3466080us"no
protocol_version整数NTP协议版本。4no

netclass block

名称类型描述默认值必填项
ignore_invalid_speed_deviceboolean忽略具有无效速度值的网络设备。falseno
ignored_devicesstring忽略网类收集器的网络设备的正则表达式。"^$"no

netdev block

名称类型描述默认值必填项
address_infoboolean为每个设备启用收集地址信息。falseno
设备排除string排除网络设备的正则表达式。与device_exclude互斥。no
设备包含string包含网络设备的正则表达式。与device_exclude互斥。no

netstat block

名称类型描述默认值必填项
fieldsstring为netstat收集器返回字段的正则表达式。(见下文)no

fields默认为以下正则表达式字符串

"^(.*_(InErrors|InErrs)|Ip_Forwarding|Ip(6|Ext)_(InOctets|OutOctets)|Icmp6?_(InMsgs|OutMsgs)|TcpExt_(Listen.*|Syncookies.*|TCPSynRetrans|TCPTimeouts)|Tcp_(ActiveOpens|InSegs|OutSegs|OutRsts|PassiveOpens|RetransSegs|CurrEstab)|Udp6?_(InDatagrams|OutDatagrams|NoPorts|RcvbufErrors|SndbufErrors))$"

perf block

名称类型描述默认值必填项
cpusstring应从哪些CPU收集perf指标。no
tracepointlist(string)应收集的perf跟踪点的数组。no
disable_hardware_profilersboolean禁用perf硬件分析器。falseno
hardware_profilerslist(string)应收集的perf硬件分析器。no
disable_software_profilersboolean禁用perf软件分析器。falseno
software_profilerslist(string)应收集的perf软件分析器。no
disable_cache_profilersboolean禁用perf缓存分析器。falseno
cache_profilerslist(string)应收集的perf缓存分析器。no

powersupply block

名称类型描述默认值必填项
ignored_suppliesstring忽略电源供电收集器的电源供电的正则表达式。"^$"no

runit block

名称类型描述默认值必填项
service_dirstring运行runit服务的目录路径。"/etc/service"no

supervisord block

名称类型描述默认值必填项
urlstringsupervisord收集器的XML RPC端点。"http://localhost:9001/RPC2"no

在环境中设置SUPERVISORD_URL将覆盖默认值。块中的显式值优先于环境变量。

sysctl block

名称类型描述默认值必填项
includelist(string)要曝光的sysctl数值。[]no
include_infolist(string)要曝光的sysctl字符串。[]no

systemd block

名称类型描述默认值必填项
enable_restartsboolean启用服务单元指标service_restart_totalfalseno
start_timeboolean启用服务单元指标unit_start_time_secondsfalseno
task_metricsboolean启用服务单元任务指标unit_tasks_currentunit_tasks_maxfalseno
unit_excludestring排除systemd单元的正则表达式。单元必须既匹配include又不匹配exclude才能收集。".+\\.(automount|device|mount|scope|slice)"no
unit_includestring包含systemd单元的正则表达式。单元必须既匹配include又不匹配exclude才能收集。".+"no

tapestats block

名称类型描述默认值必填项
ignored_devicesstring忽略tapestats设备的正则表达式。"^$"no

textfile block

名称类型描述默认值必填项
directorystring为textfile收集器读取*.prom文件的目录。no

vmstat block

名称类型描述默认值必填项
fieldsstring为vmstat收集器返回字段的正则表达式。"^(oom_kill|pgpg|pswp|pg.*fault).*"no

Exported fields

以下字段被曝光,其他组件可以引用。

名称类型描述
targetslist(map(string))可以用于收集exporter指标的target。

例如,targets可以传递给discovery.relabel组件来重写target的标签集,或者传递给收集曝光指标的prometheus.scrape组件。

曝光的目标使用由run命令指定的配置的内存流量地址。

Component health

prometheus.exporter.unix只有在给定无效配置时才会报告为不健康。在这些情况下,曝光字段保留其最后健康值。

Debug information

prometheus.exporter.unix不公开任何组件特定的调试信息。

调试指标

prometheus.exporter.unix 不暴露任何组件特定的调试指标。

收集器列表

以下表格列出了预包装在 node_exporter 中的可用收集器。一些收集器仅适用于特定操作系统。如果Alloy运行的宿主操作系统不支持收集器,则会忽略该收集器。

用户可以选择启用收集器子集以限制 prometheus.exporter.unix 组件暴露的指标量,或禁用运行代价高昂的收集器。

名称描述操作系统默认启用
arp暴露我们从 /proc/net/arp 获取的ARP统计信息。Linux
bcache暴露从 /sys/fs/bcache 获取的bcache统计信息。Linux
bonding暴露Linux捆绑接口配置和活动的从机的数量。Linux
boottimekern.boottime sysctl 获取系统引导时间。Darwin, Dragonfly, FreeBSD, NetBSD, OpenBSD, Oracle Solaris
btrfs暴露关于btrfs的统计数据。Linux
buddyinfo根据 /proc/buddyinfo 报告暴露内存片段的统计数据。Linuxno
conntrack显示conntrack统计数据。如果没有存在 /proc/sys/net/netfilter/,则什么都不做。Linux
cpu暴露CPU统计数据。Darwin, Dragonfly, FreeBSD, Linux, Oracle Solaris, NetBSD
cpufreq暴露CPU频率统计数据。Linux, Oracle Solaris
devstat暴露设备统计数据。Dragonfly, FreeBSDno
diskstats暴露磁盘I/O统计数据。Darwin, Linux, OpenBSD
dmi暴露DMI信息。Linux
drbd暴露分布式复制块设备(至版本8.4)的统计数据。Linuxno
drm/sys/class/drm/card?/device 暴露GPU卡信息。Linuxno
edac暴露错误检测和纠正统计数据。Linux
entropy暴露可用的熵。Linux
ethtool暴露ethtool统计数据。Linuxno
exec暴露执行统计数据。Dragonfly, FreeBSD
fibrechannel暴露FibreChannel统计数据。Linux
filefd/proc/sys/fs/file-nr 暴露文件描述符统计数据。Linux
文件系统暴露文件系统统计数据,例如磁盘空间使用情况。Darwin, Dragonfly, FreeBSD, Linux, OpenBSD
硬件监控/sys/class/hwmon 暴露硬件监控和传感器数据。Linux
infiniband暴露针对InfiniBand和Intel OmniPath配置的网络特定统计信息。Linux
interrupts暴露详细的中断统计数据。Linux, OpenBSDno
IPVS/proc/net/ip_vs 暴露IPVS状态,以及从 /proc/net/ip_vs_stats 暴露统计数据。Linux
ksmd/sys/kernel/mm/ksm 暴露内核和系统统计数据。Linuxno
lnstat暴露Linux网络缓存统计数据。Linuxno
loadavg暴露平均负载。Darwin, Dragonfly, FreeBSD, Linux, NetBSD, OpenBSD, Oracle Solaris
logind从logind暴露会话计数。Linuxno
mdadm/proc/mdstat 暴露设备统计数据。如果没有存在 /proc/mdstat,则什么都不做。Linux
meminfo暴露内存统计数据。Darwin, Dragonfly, FreeBSD, Linux, OpenBSD, NetBSD
meminfo_numa/proc/meminfo_numa 暴露内存统计数据。Linuxno
mountstats/proc/self/mountstats 暴露文件系统统计数据。暴露详细NFS客户端统计数据。Linuxno
网络类别/sys/class/net 暴露网络接口信息。Linux
网络设备暴露网络接口统计数据,例如已传输的字节。Darwin, Dragonfly, FreeBSD, Linux, OpenBSD
netisr暴露netisr统计数据。FreeBSD
网络状态/proc/net/netstat 暴露网络统计信息。这是与 netstat -s 相同的信息。Linux
network_route暴露网络路由统计数据。Linuxno
nfs/proc/net/rpc/nfs 暴露NFS客户端统计数据。这是与 nfsstat -c 相同的信息。Linux
nfsd/proc/net/rpc/nfsd 暴露NFS内核服务器统计数据。这是与 nfsstat -s 相同的信息。Linux
UTC时间暴露本地NTP守护进程健康状况以检查时间。anyno
nvme暴露NVMe统计数据。Linux
os公开 os-release 信息。Linux
性能公开基于性能的指标。警告:指标取决于内核配置和设置。Linuxno
powersupplyclass收集电源信息。any
pressure公开来自 /proc/pressure/ 的压力停滞统计信息。Linux 内核 4.20+ 或 CONFIG_PSI
processes公开来自 /proc 的进程统计信息汇总。Linuxno
qdisc公开排队管理策略统计信息。Linuxno
rapl公开来自 /sys/class/powercap 的各种统计信息。Linux
runit公开 runit 的服务状态。anyno
schedstat公开来自 /proc/schedstat 的任务调度器统计信息。Linux
sockstat公开来自 /proc/net/sockstat 的各种统计信息。Linux
softirqs公开来自 /proc/softirqs 的详细 softirq 统计信息。Linuxno
softnet公开来自 /proc/net/softnet_stat 的统计信息。Linux
stat公开来自 /proc/stat 的各种统计信息。这包括引导时间、分支和中断。Linux
supervisord公开 supervisord 的服务状态。anyno
系统控制公开来自 /proc/sys 的 sysctl 值。Linuxno
systemd公开 systemd 的服务和系统状态。Linuxno
磁带统计公开磁带设备统计信息。Linux
tcpstat公开来自 /proc/net/tcp 和 /proc/net/tcp6 的 TCP 连接状态信息。 警告:当前版本在高负载情况下可能存在潜在的性能问题。Linuxno
文本文件从目录中收集匹配文件名模式 *.prom 的文件的指标。这些文件必须使用基于文本的曝光格式。any
thermal公开热定型统计信息。Darwin
thermal_zone公开来自 /sys/class/thermal 的热区和冷却设备统计信息。Linux
time公开当前系统时间。any
timex公开一些 adjtimex(2) 系统调用统计信息。Linux
udp_queues公开来自 /proc/net/udp 和 /proc/net/udp6 的 rx_queue 和 tx_queue 的 UDP 总长度。Linux
uname公开系统信息,该信息由 uname 系统调用提供。Darwin, FreeBSD, Linux, OpenBSD, NetBSD
虚拟内存状态公开来自 /proc/vmstat 的统计信息。Linux
wifi公开 WiFi 设备和站点统计信息。Linuxno
xfs公开 XFS 运行时统计信息。Linux 内核 4.4+
zfs公开 ZFS 性能统计信息。Linux, Oracle Solaris
zoneinfo公开区域统计信息。Linuxno

在 Docker/Kubernetes 上运行

当在 Docker 容器中运行 Alloy 时,您需要从宿主机器绑定挂载文件系统、procfs 和 sysfs,以及为组件设置相应的参数,以便它们能够正常工作。

您可能还需要添加如 SYS_TIME 等 capability,并确保 Alloy 以提升权限运行,以便某些收集器能够正常工作。

例子

此示例使用一个 prometheus.scrape 组件 来从 prometheus.exporter.unix 收集指标

alloy
prometheus.exporter.unix "demo" { }

// Configure a prometheus.scrape component to collect unix metrics.
prometheus.scrape "demo" {
  targets    = prometheus.exporter.unix.demo.targets
  forward_to = [prometheus.remote_write.demo.receiver]
}

prometheus.remote_write "demo" {
  endpoint {
    url = PROMETHEUS_REMOTE_WRITE_URL

    basic_auth {
      username = USERNAME
      password = PASSWORD
    }
  }
}

替换以下内容

  • PROMETHEUS_REMOTE_WRITE_URL:要发送指标的目标 Prometheus remote_write 兼容服务器的 URL。
  • USERNAME:用于对远程_write API 进行身份验证的用户名。
  • PASSWORD:用于对远程_write API 进行身份验证的密码。

兼容组件

prometheus.exporter.unix 有可以由以下组件使用的出口

备注

连接某些组件可能不合理,或组件可能需要进一步配置才能正确连接。请参阅相关文档以获取更多详细信息。