prometheus.exporter.process
prometheus.exporter.process
组件集成了 process_exporter,用于从 /proc
采集进程统计信息。
使用方法
prometheus.exporter.process "LABEL" {
}
参数
以下参数可以用来配置导出器的行为。所有参数都是可选的。省略的字段将采用其默认值。
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
procfs_path | 字符串 | procfs 挂载点。 | /proc | 否 |
track_children | 布尔值 | 是否跟踪进程的子进程。 | 是 | 否 |
track_threads | 布尔值 | 报告进程独立线程的指标。 | 是 | 否 |
gather_smaps | 布尔值 | 获取进程的 smaps 文件中的指标。 | 是 | 否 |
recheck_on_scrape | 布尔值 | 每次抓取时重新检查进程名称。 | 是 | 否 |
块
以下块在 prometheus.exporter.process
定义内部受支持。
层次结构 | 块 | 描述 | 必需 |
---|---|---|---|
matcher | matcher | 一组匹配规则,用于决定要监视哪些进程。 | 否 |
matcher 块
每个 matcher
块配置可以匹配多个进程,这些进程将被跟踪为一个单独的进程“组”。
名称 | 类型 | 描述 | 默认值 | 必需 |
---|---|---|---|---|
名称 | 字符串 | 用于在指标中识别进程组名称的名称。 | "{{.ExeBase}}" | 否 |
comm | 字符串列表 | 匹配进程基本可执行文件名的字符串列表,截断到15个字符。 | 否 | |
exe | 字符串列表 | 匹配进程的 argv[0] 的字符串列表。 | 否 | |
cmdline | 字符串列表 | 应用于进程 argv 的正则表达式列表。 | 否 |
name
参数可以使用以下模板变量。默认情况下,它使用可执行文件的基准路径
{{.Comm}}
:来自 /proc//stat 的原始可执行文件的基名。 {{.ExeBase}}
:来自 argv[0] 的可执行文件的基名。{{.ExeFull}}
:可执行文件的完整合格路径。{{.Username}}
:有效用户的用户名。{{.Matches}}
:包含匹配进程的 cmdline 规则组产生的所有正则表达式捕获组的映射。{{.PID}}
:进程的 PID。注意,PID 是从第一个找到的可执行文件复制的。{{.StartTime}}
:进程的开始时间。当与 PID 结合使用时,这对于 PID 在一段时间后重用很有用。{{.Cgroups}}
:如果支持,则表示进程的cgroups(/proc/self/cgroup
)。这特别有用,因为可以用来识别进程属于哪个容器。
注意:不建议使用PID
或StartTime
,因为这通常不是你要查找的,且很可能会导致高基数指标。
用于匹配comm
列表元素的值是从读取/proc/<pid>/stat
的第二个字段得到的,并去除了括号。
exe
下的值,如果没有斜杠,则只需要匹配argv[0]
的基本名称。否则,名称必须是完全匹配。例如,“postgres”可以与任何postgres二进制文件匹配,但/usr/local/bin/postgres
将只匹配具有该确切路径的postgres进程。如果任何字符串匹配,进程将被追踪。
cmdline
中的每个正则表达式都必须与进程对应的argv匹配才能追踪该进程。匹配的第一个元素是argv[1]
。正则表达式捕获被添加到.Matches映射中,以便用于名称。
导出字段
以下字段被导出,并且可以被其他组件引用。
名称 | 类型 | 描述 |
---|---|---|
targets | list(map(string)) | 可用于收集导出器指标的target。 |
例如,targets
可以传递给一个discovery.relabel
组件以重写目标标签集,或者传递给一个prometheus.scrape
组件以收集公开的指标。
导出的target使用由run command
指定的配置的in-memory traffic
地址。
组件健康
prometheus.exporter.process
只有在给定无效配置的情况下才会报告为不健康。在这些情况下,导出字段将保持它们的最后一个健康值。
调试信息
prometheus.exporter.process
不会公开任何特定组件的调试信息。
调试指标
prometheus.exporter.process
不会公开任何特定组件的调试指标。
示例
此示例使用一个prometheus.scrape
组件从prometheus.exporter.process
收集指标
prometheus.exporter.process "example" {
track_children = false
matcher {
comm = ["alloy"]
}
}
// Configure a prometheus.scrape component to collect process_exporter metrics.
prometheus.scrape "demo" {
targets = prometheus.exporter.process.example.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远程写入兼容服务器的URL。USERNAME
:用于远程写入API认证的用户名。PASSWORD
:用于远程写入API认证的密码。
兼容组件
prometheus.exporter.process
导出可以由以下组件消费
- 消耗
Targets
的组件
注意
连接某些组件可能没有意义,或者组件可能需要进一步配置才能正确工作。请参考相关文档以获取更多详细信息。