PushGateway 数据上报采集

安装

docker run -d \
--restart always \
-p 9091:9091\
-v /usr/share/zoneinfo/Asia/Shanghai:/etc/localtime \
-v /tmp/prometheus-data:/prometheus-data/ \
--name prometheus_pushgateway \
prom/pushgateway:latest

Prometheus配置

scrape_configs:
  - job_name: 'pushgateway'
    honor_labels: true # 避免收集数据本身的 job 和 instance 被覆盖
    static_configs:
    - targets: ['10.11.19.141:9091']
      labels:
        instance: pushgateway

PushGateway 数据上报采集

  • API 方式 Push 数据到 PushGateway

  • 默认 API URL 地址为: http://:9091/metrics/job/{/<LABEL_NAME>/<LABEL_VALUE>},

    • 其中 是必填项,为 job 标签值,后边可以跟任意数量的标签对,

    • 一般我们会添加一个 instance/<INSTANCE_NAME> 实例名称标签,来方便区分各个指标。

简单指标数据

少量指标数据

每个指标添加 TYPE 及 HELP 说明。

大量指标数据

用 Client SDK Push 数据到 Pushgateway 示例

使用 PushGateway 注意事项

  • 指标值只能是数字类型,非数字类型报错。

  • 指标值支持最大长度为 16 位,超过16 位后默认置为 0

PushGateway 数据持久化操作

默认 PushGateway 不做数据持久化操作,当 PushGateway 重启或者异常挂掉,导致数据的丢失,我们可以通过启动时添加 -persistence.file 和 -persistence.interval 参数来持久化数据。-persistence.file 表示本地持久化的文件,将 Push 的指标数据持久化保存到指定文件,-persistence.interval 表示本地持久化的指标数据保留时间,若设置为 5m,则表示 5 分钟后将删除存储的指标数据。

PushGateway 推送及 Prometheus 拉取时间设置

Prometheus 每次从 PushGateway 拉取的数据,并不是拉取周期内用户推送上来的所有数据,而是最后一次 Push 到 PushGateway 上的数据,所以推荐设置推送时间小于或等于 Prometheus 拉取的时间,这样保证每次拉取的数据是最新 Push 上来的。

Last updated