一、打造基于Prometheus的全方位监控平台¶
1.1 前言¶
官网地址:https://prometheus.io/docs/prometheus/latest/getting_started/
- 灵活的时间序列数据库;
- 定制各式各样的监控规则;
- Prometheus的开发人员和用户社区非常活跃;
- 独立的开源项目,不依赖于任何公司;
- 继Kurberntes之后第二个入驻的项目;
1.2 prometheus架构¶

Prometheus 的工作原理主要分为五个步骤:
-
数据采集(Exporters):Prometheus 定期通过HTTP请求从目标资源中拉取数据。目标资源可以是应用程序、系统、服务或其他资源。
-
数据存储(Storage):Prometheus 将采集到的数据存储在本地存储引擎中。存储 引擎以时间序列方式存储数据,其中每个时间序列都由指标名称和一组键值对组成。
- 数据聚合(PromQL):Prometheus 通过查询表达式聚合数据。PromQL 是 Prometheus 的查询语言,它允许用户通过查询表达式从存储引擎中检索指标的特 定信息。
- 告警处理(Alertmanager):Prometheus 可以根据用户指定的规则对数据进行警 报。当指标的值超出特定阈值时,Prometheus 向 Alertmanager 发送警报。 Alertmanager 可以帮助用户对警报进行分组、消除和路由,并将警报发送到相应的 接收器,例如邮件、企微、钉钉等。
- 数据大盘(Grafana):帮助用户通过可视化方式展示 Prometheus 的数据,包括 仪表盘、图表、日志和警报等。
1.3 prometheus时间序列数据¶
1.3.1 什么是序列数据?¶
时间序列数据(TimeSeries Data):按照时间顺序记录系统、设备状态变化的数据被称为时序数据。
1.3.2 时间序列数据特点¶
- 性能好:关系型数据库对于大规模数据的处理性能糟糕。NOSQL 可以比较好的处理 大规模数据,依然比不上时间序列数据库。
- 存储成本低:高效的压缩算法,节省存储空间,有效降低 IO。
官方数据:Prometheus 有着非常高效的时间序列数据存储方法,每个采样数据仅仅占用 3.5byte 左右空间,上百万条时间序列,30 秒间隔,保留 60 天,大概200多G。
1.3.3 Promethues适合场景¶
Prometheus 非常适合记录任何纯数字时间序列。它既适合以机器为中心的监控,也适合监控高度动态的面向服务的体系架构。