B站视频

Prometheus 是一个生态。


1. 概述

Prometheus Server,主要用于抓取数据和存储时序数据,另外还提供查询和 Alert Rule 配置管理。

client libraries,用于检测应用程序代码的客户端库。

push gateway,用于批量,短期的监控数据的汇总节点,主要用于业务数据汇报等。

exporters,收集监控样本数据,并以标准格式向Prometheus 提供。例如:收集服务器系统数据的node_exporter,收集MySQL监控样本数据的是MySQL exporter 等等。

alertmanager,用于告警通知管理。

Pushgateway 是Prometheus 生态中一个重要工具,使用它的原因主要是:

  • Prometheus 采用pull模式,可能由于不在一个子网或者防火墙原因,导致Prometheus 无法直接拉取各个target 数据。
  • 在监控业务数据的时候,需要将不同数据汇总,由Prometheus 统一收集。
  • 当exporter不能满足需要时,也可以通过自定义(python、shell、java)监控我们想要的数据。由于以上原因,不得不使用pushgateway,但在使用之前,有必要了解一下它的一些弊端:
    • 将多个节点数据汇总到pushgateway,如果 pushgateway挂了,受影响比多个target大。
    • Prometheus 拉取状态 up 只针对 pushgateway,无法做到对每个节点有效。
    • Pushgateway可以持久化推送给它的所有监控数据。
      因此,即使你的监控已经下线,prometheus 还会拉取到旧的监控数据,需要手动清理pushgateway不要的数据。




2. PromQL

2.1 PromQL的基础使用