pushgateway

pushgateway是另⼀种采⽤被动推送的⽅式(⽽不是exporter主动获取)获取监控数据的prometheus 插件,监控可以自定义bash shell python脚本

pushgateway的存在是为了允许临时任务和批处理作业向Prometheus传送数据,因为这些工作可能存在的时间不够长,导致prometheus还没来得及去抓取数据,工作就结束了,因此可以存在pushgateway中,然后方便prometheus再拉取。

peometheus server从pushgateway中拉取数据的时候,会自动添加instance/job标签给他,如果不想让其添加就在pushgateway中设置honor_labels: true,但有时候pushgateway中的数据没有instance标签,就把其设置成{instance=""}来防止peometheus server向其上添加标签
被检测处t1实际按推送的信息,被prometheus获取到的时间是t2(即prometheus从Pushgateway中抓取的实际按),页面显示该信息的时间是t2。Pushgateway拒绝任何带有时间戳的推送,因为他pull抓取信息的时候会自己给信息加上时间戳。为了能更方便的发现警报,设置了push_time_seconds 和 push_failure_time_seconds指标来表示上一次抓取成功/失败的时间。

Pushgateway缺点就是可能会成为性能瓶颈跟故障点,通过up指标,丢失了promtheus的自动监控的优势,除非通过Pushgateway的API手动删除了这些东西,否则该接口会一直暴露。

Pushgateway有put,post,delete三种操作:
put用于推送一组指标,所有的该组信息都会被替换。一个空请求删除所有的指标,跟delete的区别就是更新了push_time_seconds指标。
delete操作不能带内容,一组内的所有指标都会被删除
post仅替换了具有与新推送的度量同名的度量,一个空指标求仅仅更新 push_time_seconds指标,但是不更改任何以前的指标。

Pushgateway的唯一有效用例是捕获服务级别批处理作业的结果。
对于与机器相关的批处理作业(例如自动安全更新工作或批量管理客户机的运行),请使用Node Exporter的 文本文件模块,而不是Pushgatway。

你可能感兴趣的:(prometheus)