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
的定义中受支持
层次结构 | 块 | 描述 | 必需 |
---|---|---|---|
匹配器 | 匹配器 | 一组匹配规则,用于决定要监控哪些进程。 | 否 |
匹配器块
每个 匹配器
块配置可以匹配多个进程,这些进程将被跟踪为一个单独的进程“组”。
名称 | 类型 | 描述 | 默认 | 必需 |
---|---|---|---|---|
名称 | 字符串 | 用于在指标中识别进程组名称的名称。 | "{{.ExeBase}}" | 否 |
comm | 列表(字符串) | 一个字符串列表,匹配进程的基本可执行文件名,截断至15个字符。 | 否 | |
exe | 列表(字符串) | 一个字符串列表,匹配进程的 argv[0] 。 | 否 | |
cmdline | 列表(字符串) | 应用于进程 argv 的正则表达式列表。 | 否 |
名称
参数可以使用以下模板变量。默认情况下,它使用可执行文件的基本路径
{{.Comm}}
:来自 /proc/<pid>/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
可以传递给 discovery.relabel
组件以重写目标的标签集,或者传递给收集公开指标的 prometheus.scrape
组件。
导出的目标使用由 run 命令 指定的配置的 内存中流量 地址。
组件健康状态
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
的导出可以被以下组件消费
- 消耗目标的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能正确连接。请参阅相关文档以获取更多信息。