Prometheus

官方架构图

核心组件

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

  • Push gateway:用于批量,短期的监控数据的汇总节点

  • Exporters:用于上报数据

  • Alertmanager:告警

大致逻辑:

  1. Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。

  2. 当新拉取的数据大于配置内存缓存区的时候,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)。

  3. Prometheus 可以配置 rules,然后定时查询数据,当条件触发的时候,会将 alert 推送到配置的 Alertmanager。

  4. Alertmanager 收到警告的时候,可以根据配置,聚合,去重,降噪,最后发送警告。

  5. 可以使用 API, Prometheus Console 或者 Grafana 查询和聚合数据。

时序数据库

指标类型

  • Counter:表示收集的数据是按照某个趋势(增加/减少)一直变化的,我们往往用它记录服务请求总量、错误总数等。

  • Gauge:表示搜集的数据是一个瞬时的值,与时间没有关系,可以任意变高变低,往往可以用来记录内存使用率、磁盘使用率等。

  • Histogram

  • Summary

作业与实例

Prometheus 中,将任意一个独立的数据源(target)称之为实例(instance)。包含相同类型的实例的集合称之为作业(job)。

- job: api-server
    - instance 1: 1.2.3.4:5670
    - instance 2: 1.2.3.4:5671
    - instance 3: 5.6.7.8:5670
    - instance 4: 5.6.7.8:5671

Last updated