pushgateway 的部署:


tar xf pushgateway-0.8.0.linux-amd64.tar.gz -C /usr/local/

cd /usr/local/pushgateway-0.8.0.linux-amd64

./pushgateway --web.listen-address=":9091" --web.telemetry-path="/metrics" --persistence.interval=5m --persistence.file="persistence-data"



# 推送测试数据到 pushgateway

echo "some_metric 3.14" | curl --data-binary @- http://192.168.2.14:9091/metrics/job/some_job


添加更复杂的数据指标

cat <

# TYPE some_metric counter

some_metric{label="val1"} 42

# TYPE another_metric gauge

# HELP another_metric Just an example.

another_metric 2398.283

EOF


# 添加一个备份数据的job的metrics指标

cat <

# TYPE some_metric counter

backup_status{label="val1"} 1

# TYPE another_metric gauge

# HELP another_metric Just an example.

backuptime 34

EOF


# 添加一个归档数据的job的metrics指标

cat <

# TYPE some_metric counter

archive_status{label="val1"} 1

# TYPE another_metric gauge

# HELP another_metric Just an example.

archivetime 120

EOF



删除某个组下的某实例的所有数据:

curl -X DELETE http://192.168.2.14:9091/metrics/job/some_job/instance/some_instance


删除某个组下的所有数据:

curl -X DELETE http://192.168.2.14:9091/metrics/job/some_job


可以发现 pushgateway 中的数据我们通常按照 job 和 instance 分组分类,所以这两个参数不可缺少。

因为 Prometheus 配置 pushgateway 的时候,也会指定 job 和 instance, 但是它只表示 pushgateway 实例,不能真正表达收集数据的含义。所以在 prometheus 中配置 pushgateway 的时候,需要添加 honor_labels: true 参数, 从而避免收集数据本身的 job 和 instance 被覆盖。


直接访问 http://192.168.2.14:9091 即可看到我们push上去的2个metrics



然后,再到Prometheus节目去配置下:

prometheus 中添加pushgateway的采集target:

  - job_name: pushgateway

    honor_labels: true

    static_configs:

      - targets: ['192.168.2.14:9091']

        labels:

          instance: pushgateway

  

重载配置文件:

kill -SIGHUP $(pidof prometheus)




然后,在 Prometheus的9090 web界面即可查看到。