菜单
文档breadcrumb arrow Grafana Alloybreadcrumb arrow 参考breadcrumb arrow 组件breadcrumb arrow prometheusbreadcrumb arrow prometheus.exporter.process
开源

prometheus.exporter.process

prometheus.exporter.process 组件嵌入了 process_exporter,用于从 /proc 收集进程统计信息。

用法

alloy
prometheus.exporter.process "LABEL" {
}

参数

以下参数可用于配置导出器的行为。所有参数均为可选。省略的字段将采用其默认值。

名称类型描述默认值必需
procfs_pathstringprocfs 挂载点。/proc
track_childrenbool是否跟踪进程的子进程。true
track_threadsbool报告进程各个线程的指标。true
gather_smapsbool从进程的 smaps 文件收集指标。true
recheck_on_scrapebool在每次抓取时重新检查进程名称。true

prometheus.exporter.process 的定义中支持以下块

层级描述必需
matchermatcher用于决定要监控哪些进程的匹配规则集合。

matcher 块

每个 matcher 块配置可以匹配多个进程,这些进程将被作为一个进程“组”进行跟踪。

名称类型描述默认值必需
namestring用于在指标中标识进程组名称的名称。"{{.ExeBase}}"
commlist(string)与进程的基本可执行文件名匹配的字符串列表,截断为 15 个字符。
exelist(string)与进程的 argv[0] 匹配的字符串列表。
cmdlinelist(string)应用于进程的 argv 的正则表达式列表。

name 参数可以使用以下模板变量。默认情况下,它使用可执行文件的基本路径

  • {{.Comm}}:来自 /proc/<pid>/stat 的原始可执行文件的基本名称。
  • {{.ExeBase}}:来自 argv[0] 的可执行文件的基本名称。
  • {{.ExeFull}}:可执行文件的完整限定路径。
  • {{.Username}}:有效用户的用户名。
  • {{.Matches}}:映射,包含通过 cmdline 规则组匹配进程而产生的所有正则表达式捕获组。
  • {{.PID}}:进程的 PID。请注意,PID 是从找到的第一个可执行文件复制的。
  • {{.StartTime}}:进程的启动时间。当与 PID 结合使用时,这非常有用,因为 PID 会随着时间推移而重复使用。
  • {{.Cgroups}}:进程的 cgroup(如果支持)(/proc/self/cgroup)。这对于识别进程所属的容器尤其有用。

注意:不建议使用 PIDStartTime,因为它几乎不是您想要的,并且很可能导致高基数指标。

用于匹配 comm 列表元素的值是从读取 /proc/<pid>/stat 的第二个字段(去除括号)派生而来的。

对于 exe 中的值,如果没有斜杠,则只需要匹配 argv[0] 的基本名称。否则,名称必须完全匹配。例如,“postgres”可能匹配任何 postgres 二进制文件,但 /usr/local/bin/postgres 将仅匹配具有该确切路径的 postgres 进程。如果任何字符串匹配,则将跟踪该进程。

cmdline 中的每个正则表达式都必须与要跟踪的进程的相应 argv 匹配。匹配的第一个元素是 argv[1]。正则表达式捕获将添加到 .Matches 映射中,以在名称中使用。

导出的字段

以下字段已导出,可以被其他组件引用。

名称类型描述
targetslist(map(string))可用于收集导出器指标的目标。

例如,targets 可以传递给 discovery.relabel 组件以重写目标的标签集,也可以传递给 prometheus.scrape 组件以收集暴露的指标。

导出的目标使用 内存流量 地址,该地址由 run 命令 指定。

组件运行状况

仅当 prometheus.exporter.process 配置无效时,才将其报告为不健康。在这些情况下,导出的字段将保留其上次的健康值。

调试信息

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

调试指标

prometheus.exporter.process 不会公开任何组件特定的调试指标。

示例

此示例使用 prometheus.scrape 组件prometheus.exporter.process 收集指标

alloy
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 remote_write 兼容服务器的 URL,用于将指标发送到该服务器。
  • USERNAME:用于远程写入 API 身份验证的用户名。
  • PASSWORD:用于远程写入 API 身份验证的密码。

兼容组件

prometheus.exporter.process 具有可被以下组件使用的导出

注意

连接某些组件可能不合理,或者组件可能需要进一步配置才能使连接正常工作。有关更多详细信息,请参阅链接的文档。