简介
Pushgateway是prometheus的一个重要组件,利用该组件可以实现自动以监控指标,从字面意思来看,该部件不是将数据push到prometheus,而是作为一个中间组件收集外部push来的数据指标,prometheus会定时从pushgateway上pull数据。
pushgateway并不是将Prometheus的pull改成了push,它只是允许用户向他推送指标信息,并记录。而Prometheus每次从 pushgateway拉取的数据并不是期间用户推送上来的所有数据,而是client端最后一次push上来的数据。因此需设置client端向pushgateway端push数据的时间小于等于prometheus去pull数据的时间,这样一来可以保证prometheus的数据是最新的。
使用pushgateway的理由:
1、prometheus默认采用pull模式,由于不在一个网络或者防火墙的问题,导致prometheus 无法拉取各个节点的数据。
2、监控业务数据时,需要将不同数据汇总,然后由prometheus统一收集
pushgateway的缺陷:
1、多个节点的数据汇总到pushgateway,当它宕机后影响很大
2、pushgateway可以持续化推送所有的监控数据,即使监控已经下线,还会获取旧的监控数据。需手动清理不需要的数据
3、重启后数据丢失
部署
安装pushgateway
1 | docker run -d --name=pushgateway -p 9091:9091 -v /opt/pushgateway:/pushgateway --restart=always prom/pushgateway:latest |
prometheus配置
1 | - job_name: 'pushgateway' |
测试
1 | echo "some_metric 3.14" | curl --data-binary @- http://192.168.7.107:9091/metrics/job/some_job |
删除
删除某个组下的某实例的所有数据:
1 | curl -X DELETE http://192.168.7.107:9091/metrics/job/some_job/instance/some_instance |
删除某个组下的所有数据:
1 | curl -X DELETE http://192.168.7.107:9091/metrics/job/some_job |