一 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 筛选value 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/