菜单
文档面包屑箭头 Grafana Alloy面包屑箭头 参考面包屑箭头 组件面包屑箭头 prometheus面包屑箭头 prometheus.exporter.process
正式可用 (GA) 开源

prometheus.exporter.process

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

用法

alloy
prometheus.exporter.process "<LABEL>" {
}

参数

您可以在 prometheus.exporter.process 中使用以下参数

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

您可以在 prometheus.exporter.process 中使用以下块

名称描述是否必需
matcher用于决定监控哪些进程的匹配规则集合。

matcher

每个 matcher 块配置可以匹配多个进程,这些进程将被追踪为一个单独的进程“组”。

名称类型描述默认值是否必需
cmdlinelist(string)应用于进程 argv 的正则表达式列表。
commlist(string)匹配进程基本可执行文件名(截断为 15 个字符)的字符串列表。
exelist(string)匹配进程 argv[0] 的字符串列表。
namestring用于在指标中标识进程组名称的名称。"{{.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)。这对于识别进程属于哪个容器特别有用。

注意

不鼓励使用 PIDStartTime,因为这几乎不是您想要的,而且很可能导致高基数指标。

用于匹配 comm 列表元素的值来自读取 /proc/<pid>/stat 的第二个字段,并去掉了括号。

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

cmdline 中的每个正则表达式必须匹配进程对应的 argv 才能被追踪。第一个匹配的元素是 argv[1]。正则表达式捕获会被添加到 .Matches Map 中,用于生成名称。

导出的字段

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

名称类型描述
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>: 用于向 remote_write API 进行身份验证的用户名。
  • <PASSWORD>: 用于向 remote_write API 进行身份验证的密码。

兼容的组件

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

注意

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