一 Prometheus 是什么
 
         Prometheus 是一个开源的 
 监控和报警系统 
 。该系统内置和基于时间序列地抓取、存储、查询、绘图数据、报警。  
 
 
         现在是一个开源项目,继 K8S 后的第二个云原生计算基金会的托管项目,可见其火爆程度。  
 
 
 
 
二 Prometheus 的特征
 
 Prometheus 的特征:  
 
 
         1)一个包含由度量名称和键值对 
 标识的 
 时间序列 
 数据多维数据模型(K-V,时间序列)  
 
 
         2)基于一种灵活的查询语言来利用这种维度:PromQL  
 
 
         3)单个服务器节点自主,不依赖分布式存储  
 
 
         4)通过 HTTP 上的 pull 模型进行时间序列收集  
 
 
         5)也可通过中间网关支持推送时间序列  
 
 
         6)通过服务发现或静态配置发现目标(如在 prometheus.yml 配置 targets)  
 
 
         7)多种图形和仪表板支持模式(如 grafana)  
 
 
 
三 Prometheus 的架构及组件
 
         下图看着很复杂,但实际可以看成五个部分,Pushgateway / Job / exporter 属于数据采集  
 
 
 模块,Alertmanager 属于告警模块,可以看成是一块额外的软件,UI / Grafana / ... 是成图工  
 
 
 具,还有服务发现模块,核心组件为 Prometheus server。在 prometheus 官网 Getting started  
 
 
 下的就是 prometheus Server。 
 
 
 
          一个基本的流程是:Prometheus 配置定时拉取各个节点的数据,默认拉取方式是 pull,也  
 
 
  
  可用 pushgateway 提供的 push 方式获取各个监控节点的数据,得到的监控数据就会存储在  
 
 
  
  TSDB 数据库中,然后通过内置的 PromQL 查询,可以在 prometheus 自带的 UI 展示,也可另外  
 
 
  
  将 Prometheus 监控数据接入 Grafana,交由 Grafana 统一管理,做出更丰富的图像展示。同时,  
 
 
  
  可以加入 Alertmanage 提供报警功能。 
 
 
  
  
四 Prometheus 的优缺点
 
 优点:  
 
 
         1)高精细,可精确到 1~5 秒的采集精度;  
 
 
         2)高效,支持百万级的指标监控,多种数据模型;  
 
 
         3)强大的查询语句 PromQL,可以适用多种查询场景;  
 
 
         4)周边插件丰富且开源;  
 
 
         5)支持 
 多样化的展示方式,除 grafana,还有很多第三方工具;  
 
 
         6) 
 社区活跃,功能拓展及其他问题能有不少有效解决;  
 
 
         7)易于维护,部署简单,可以通过二进制文件直接启动;  
 
 
         等等。  
 
 
 缺点:  
 
 
         1)大量采集任务下,采集速度与效率有瓶颈。单个 Prometheus Server 无法承受过大量  
 
 
 的采集任务,而在多个 Prometheus Server 进行分布采集的成本较高;  
 
 
         2)可监控的数据类型有效;  
 
 
         等等。 
 
参考:Prometheus 官网: https://prometheus.io/



















