菜单
文档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 的定义中受支持

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

匹配器块

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

名称类型描述默认必需
名称字符串用于在指标中识别进程组名称的名称。"{{.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》))。这对于识别进程属于哪个容器特别有用。

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

用于匹配 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 的指标

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 的导出可以被以下组件消费

注意

连接某些组件可能不合理,或者组件可能需要进一步配置才能正确连接。请参阅相关文档以获取更多信息。