菜单
文档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_path字符串procfs 挂载点。/proc
track_children布尔值是否跟踪进程的子进程。
track_threads布尔值报告进程独立线程的指标。
gather_smaps布尔值获取进程的 smaps 文件中的指标。
recheck_on_scrape布尔值每次抓取时重新检查进程名称。

以下块在 prometheus.exporter.process 定义内部受支持。

层次结构描述必需
matchermatcher一组匹配规则,用于决定要监视哪些进程。

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)。这特别有用,因为可以用来识别进程属于哪个容器。

注意:不建议使用PIDStartTime,因为这通常不是你要查找的,且很可能会导致高基数指标。

用于匹配comm列表元素的值是从读取/proc/<pid>/stat的第二个字段得到的,并去除了括号。

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

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

导出字段

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

名称类型描述
targetslist(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收集指标

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远程写入兼容服务器的URL。
  • USERNAME:用于远程写入API认证的用户名。
  • PASSWORD:用于远程写入API认证的密码。

兼容组件

prometheus.exporter.process导出可以由以下组件消费

注意

连接某些组件可能没有意义,或者组件可能需要进一步配置才能正确工作。请参考相关文档以获取更多详细信息。