prometheus.exporter.process
prometheus.exporter.process
组件嵌入了 process_exporter
,用于从 /proc
收集进程统计信息。
用法
prometheus.exporter.process "<LABEL>" {
}
参数
您可以在 prometheus.exporter.process
中使用以下参数
名称 | 类型 | 描述 | 默认值 | 是否必需 |
---|---|---|---|---|
gather_smaps | bool | 从进程的 smaps 文件收集指标。 | true | 否 |
procfs_path | string | procfs 挂载点。 | /proc | 否 |
recheck_on_scrape | bool | 每次抓取时重新检查进程名称。 | true | 否 |
track_children | bool | 是否追踪进程的子进程。 | true | 否 |
track_threads | bool | 报告进程各个线程的指标。 | true | 否 |
块
您可以在 prometheus.exporter.process
中使用以下块
名称 | 描述 | 是否必需 |
---|---|---|
matcher | 用于决定监控哪些进程的匹配规则集合。 | 否 |
matcher
每个 matcher
块配置可以匹配多个进程,这些进程将被追踪为一个单独的进程“组”。
名称 | 类型 | 描述 | 默认值 | 是否必需 |
---|---|---|---|---|
cmdline | list(string) | 应用于进程 argv 的正则表达式列表。 | 否 | |
comm | list(string) | 匹配进程基本可执行文件名(截断为 15 个字符)的字符串列表。 | 否 | |
exe | list(string) | 匹配进程 argv[0] 的字符串列表。 | 否 | |
name | string | 用于在指标中标识进程组名称的名称。 | "{{.ExeBase}}" | 否 |
name
参数可以使用以下模板变量。默认情况下使用可执行文件的基本路径
{{.Comm}}
: 来自 /proc/<pid>/stat 的原始可执行文件的基本名称。{{.ExeBase}}
: 来自 argv[0] 的可执行文件的基本名称。{{.ExeFull}}
: 可执行文件的完全限定路径。{{.Username}}
: 有效用户的用户名。{{.Matches}}
: 包含通过 cmdline 规则组匹配进程产生的所有正则表达式捕获组的 Map。{{.PID}}
: 进程的 PID。请注意,PID 是从找到的第一个可执行文件复制的。{{.StartTime}}
: 进程的启动时间。当与 PID 结合使用时很有用,因为 PID 会随着时间被重用。{{.Cgroups}}
: 进程的 cgroups(如果支持)(/proc/self/cgroup
)。这对于识别进程属于哪个容器特别有用。
注意
不鼓励使用
PID
或StartTime
,因为这几乎不是您想要的,而且很可能导致高基数指标。
用于匹配 comm
列表元素的值来自读取 /proc/<pid>/stat
的第二个字段,并去掉了括号。
对于 exe
中的值,如果没有斜杠,只需要匹配 argv[0]
的基本名称。否则,名称必须完全匹配。例如,"postgres"
可以匹配任何 PostgreSQL 二进制文件,但 /usr/local/bin/postgres
只匹配具有该精确路径的 PostgreSQL 进程。如果任何字符串匹配,则该进程会被追踪。
cmdline
中的每个正则表达式必须匹配进程对应的 argv
才能被追踪。第一个匹配的元素是 argv[1]
。正则表达式捕获会被添加到 .Matches
Map 中,用于生成名称。
导出的字段
以下字段被导出,可供其他组件引用。
名称 | 类型 | 描述 |
---|---|---|
targets | list(map(string)) | 可用于收集导出器指标的目标。 |
例如,targets
可以传递给 discovery.relabel
组件以重写目标的标签集,或者传递给收集导出指标的 prometheus.scrape
组件。
组件健康状况
仅当配置无效时,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>
: 发送指标到的 Prometheusremote_write
兼容服务器的 URL。<USERNAME>
: 用于向remote_write
API 进行身份验证的用户名。<PASSWORD>
: 用于向remote_write
API 进行身份验证的密码。
兼容的组件
prometheus.exporter.process
具有可供以下组件使用的导出
- 消费 目标 的组件
注意
连接某些组件可能不合理,或者组件可能需要进一步配置才能正常工作。有关更多详细信息,请参阅链接的文档。