乔克视界 乔克视界
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • DevOps
  • Kubernetes
  • Prometheus
  • ELK
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档

乔克

云原生爱好者
首页
  • 运维
  • 开发
  • 监控
  • 安全
  • 随笔
  • Docker
  • Golang
  • Python
  • AIOps
  • DevOps
  • Kubernetes
  • Prometheus
  • ELK
  • 心情杂货
  • 读书笔记
  • 面试
  • 实用技巧
  • 博客搭建
友链
关于
收藏
  • 分类
  • 标签
  • 归档
  • Docker

  • Golang

  • AIOps

  • Python

  • DevOps

  • Kubernetes

  • Prometheus

    • Prometheus 介绍
    • 手动搭建 Prometheus
    • 配置监控
    • 安装 Grafana
    • AlertManager
    • Operator 部署 Prometheus
    • 常用函数
    • 黑盒监控
    • 集群事件监控之 kube-eventer
    • 配置企业微信告警
    • PromQL 常用操作
    • 配置短信告警
    • 监控指标
    • PushGateway
      • 使用场景
      • 安装(略)
      • 配置
      • 向 pushgateway 发送指标
      • 在 pushgateway 查看指标
      • 删除 Pushgateway 中的指标
      • Prometheus 中抓取 Gateway
    • Google 四大黄金指标
    • Kubernetes 性能指标
  • ELK

  • 专栏
  • Prometheus
乔克
2025-07-20
目录

PushGateway

Pushgateway 是一个独立服务,它在 HTTP REST API 上接收 Prometheus 指标。Pushgateway 位于发送指标的应用程序和 Prometheus 服务器之间。Pushgateway 接收指标,然后作为目标被抓取,以将指标提供给 Prometheus 服务器。你可以将其视为代理服务,或者说与黑盒 exporter 的行为相反:它接收指标而不是探测指标。

# 使用场景

Pushgateway 本质上是一种用于监控 Prometheus 服务器无法抓取的资源的解决方案。网关(gateway)不是一个完美的解决方案,只能用作有限的解决方案使用,特别是用于监控其他无法访问的资源。

与功能齐全的推送监控工具相比,网关更接近于代理,因此,使用它将丢失 Prometheus 服务器提供的很多有用功能,这包括通过 up 指标和指标过期进行实例状态监控。默认情况下,它是静态代理,会记住发送给它的每个指标并暴露它们,只要它正在运行(并且指标不会保留)或者直到它们被删除。这意味着不再存在的实例的指标可能仍保存在网关中。

应该将网关的重点放在监控短生命周期的资源(如作业),或者无法访问的资源的短期监控上,然后安装 Prometheus 服务器以长期监控可访问的资源。

# 安装(略)

# 配置

Pushgateway 不需要任何的配置,开箱即用,可以通过在运行 pushgateway 二进制文件时于命令行上设置参数来对它进行配置。网关默认在端口 9091 上运行,可以使用--web.listen-address 参数来覆盖地址和端口。

pushgateway --web.listen-address="0.0.0.0:9091"
1

默认情况下,网关将所有指标存储在内存中。这意味着如果网关停止或重新启动,那么你将丢失内存中的所有指标。可以通过指定--persistence.file 参数将指标持久存储于磁盘路径。

pushgateway --web.listen-address="0.0.0.0:9091" --persistence.file="/tmp/pushgateway"
1

默认情况下,文件每五分钟持久化写入一次,但你可以使用--persistence.interval 参数覆盖它.

pushgateway --web.listen-address="0.0.0.0:9091" --persistence.file="/tmp/pushgateway" --persistence.interval="10m"
1

# 向 pushgateway 发送指标

一旦 Pushgateway 运行,你就可以开始发送指标。大多数 Prometheus 客户端库都支持向 Pushgateway 发送指标,以及暴露它们以进行抓取。

比如:

echo 'batchjob_user_counter 2' | curl --data-binary @- http://localhost:9091/metrics/job/batchjob
1

我们将指标推送到路径/metrics。URL 使用标签组成,这里是/metrics/job/<jobname>,其中 batchjob1 是我们的作业标签。带有标签的完整指标路径如下:

/metrics/job/<jobname>{/<label>/<label>}
1

<jobname>将用作 job 标签的值,然后是其他指定的标签。路径中指定的标签将覆盖指标本身指定的标签。

我们还可以在 URL 中为指标添加一个 instance 标签:

echo 'batchjob_user_counter 2' | curl --data-binary @- http://localhost:9091/metrics/job/batchjob/instance/gateway_server
1

说明:你不能将/作为标签值或作业名称的一部分使用,即使是转义

在上面的示例中,我们通过 echo 将指标 batchjob_user_counter 2 从作业 batchjob 发送到网关。这将为作业 batchjob 创建一个新的指标组,其 instance 标签为 gateway_server。指标组是指标的集合,你可以在分组中添加和删除指标,甚至可以删除整个组。由于网关是缓存而不是聚合器,因此指标组将保持运行,直到网关停止或删除它们为止。

我们还可以通过将标签括在{}中来为推送的指标添加标签:

echo 'batchjob_user_counter{id="123456"} 2' | curl --data-binary @- http://localhost:9091/metrics/job/batchjob/instance/gateway_server
1

目前,该指标上传后没有类型,网关不知道它是计数型、计量型还是任何其他指标类型。你可以通过在推送中传递 TYPE 和 HELP 语句来向指标添加类型。

cat <<EOF | curl --data-binary @- http://localhost:9091/metrics/job/batchjob/instance/gateway_server
# TYPE batchjob_user_counter counter
# HELP batchjob_user_counter A metrics from batchjob
batchjob_user_counter{id="123456"} 2
EOF
1
2
3
4
5

当然还可以添加更多的标签。

# 在 pushgateway 查看指标

们可以通过在/metrics 路径上使用 curl(或通过浏览 http://localhost:9091 上的 Pushgateway 仪表板)来查看推送到网关的指标。

# 删除 Pushgateway 中的指标

指标保存在网关中(假设未设置持久性),直到网关重启或者指标被删除。我们可以使用 Pushgateway API 删除指标,这里再次使用 curl 作为示例。

curl -x DELETE localhost:9091/metrics/job/batchjob
1

这将删除作业 batchjob1 的所有指标。你可以使用更精细的路径来进一步限制选择,例如,仅删除特定实例中的那些指标。

curl -x DELETE localhost:9091/metrics/job/batchjob/instance/gateway_server
1

# Prometheus 中抓取 Gateway

在 prometheus 的配置文件中配置如下:

scrape_configs:
  - job_name: pushgateway
    honor_labels: true
    static_configs:
      - targets: ["localhost:9091"]
1
2
3
4
5

如果 honorlabels 设置为 true,那么 Prometheus 将使用 Pushgateway 上的 job 和 instance 标签。如果设置为 false,那么它将重命名这些值,在它们前面加上 exported前缀,并在服务器上为这些标签附加新值。

上次更新: 2025/07/20, 10:40:32
监控指标
Google 四大黄金指标

← 监控指标 Google 四大黄金指标→

最近更新
01
elastic 账户认证 401 问题
07-20
02
使用 helm 安装 es 和 kibana
07-20
03
elastic stack 搭建
07-20
更多文章>
Theme by Vdoing | Copyright © 2019-2025 乔克 | MIT License | 渝ICP备20002153号 |
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式