3.2 监控Prometheus

介绍

Prometheus是一个开源的系统监控和警报工具包,在2016年加入了Cloud Native Computing Foundation,成为第二个托管项目,紧随Kubernetes之后。 Prometheus将其指标收集和存储为时间序列数据,即指标信息与记录它时的时间戳一起存储,以及称为标签的可选键值对。

主要特点

  • 多维数据模型,可通过指标名称和键值对识别时间序列数据
  • 灵活的查询语言PromQL,可利用这种多维模型
  • 不依赖分布式存储;单个服务器节点是自治的
  • 时间序列的收集通过HTTP的拉模型实现
  • 支持通过中间网关推送时间序列
  • 目标通过服务发现或静态配置进行自动发现
  • 支持多种图形和仪表盘模式

系统架构

3.2 监控Prometheus - 图1

基本逻辑

  • Prometheus server 定期从静态配置的 targets 或者服务发现的 targets 拉取数据。
  • 当新拉取的数据大于配置内存缓存区的时候,Prometheus 会将数据持久化到磁盘(如果使用 remote storage 将持久化到云端)。
  • Prometheus 可以配置 rules,然后定时查询数据,当条件触发的时候,会将 alert 推送到配置的 Alertmanager。
  • Alertmanager 收到警告的时候,可以根据配置,聚合,去重,降噪,最后发送警告。
  • 可以使用 API, Prometheus Console 或者 Grafana 查询和聚合数据。