21 Prometheus 之 Pushgateway 简述
Pushgateway 是一个独立的服务组件,可在 HTTP REST API 上接收 Prometheus 指标,位于发送指标的应用服务程序和 Prometheus 服务器之间。Pushgateway 接收指标,然后将其作为目标进行抓取,以便将指标提供给 Prometheus 服务器。显然,Pushgateway 不是聚合器或分布式计数器,而是指标的缓存功能提供者。它没有类似 statsd 的语义,且推送的指标与在永久运行的程序中进行抓取时所呈现的指标完全相同。
在官方文档中,只建议在某些情况下使用 Pushgateway。通常推荐使用 Prometheus 的 pull 模式进行监控指标采集,而不能盲目地用 Pushgateway 来代替,因为有时会出现如下几个问题:
当通过部署单个 Pushgateway 监控多个实例时,Pushgateway 既可能会发生单点故障,又可能会出现性能瓶颈。
会丧失 Prometheus 通过 UP 监控指标检查实例健康状况的功能,此时 Prometheus 对应的 pull 状态的 UP 指标只是针对单 Pushgateway 服务。
Pushgateway 会对推送给它的所有监控数据进行持久化,即使被监控服务已经下线销毁了,Prometheus 还是会获取到过期的历史监控数据。这样,就需要我们手动清理 Pushgateway 上过期的历史数据。
评论