二、Prometheus架构及原理

时间:2024-04-03 22:35:53

1、Prometheus架构图

二、Prometheus架构及原理
如上图,Prometheus主要由以下部分组成:

Prometheus Server: 用于抓取和存储时间序列化数据
Exporters: 主动拉取数据的插件
Pushgateway: 被动拉取数据的插件
Altermanager: 告警发送模块
Prometheus web UI: 界面化,也包含结合Grafana进行数据展示或告警发送

prometheus采用time-series(时间序列)方式,存储在本地硬盘,其大概的工作流程

(1)Prometheus server 定期从配置好的 jobs 或者 exporters 中拉 metrics,或者接收来自 Pushgateway 发过来的 metrics,或者从其他的 Prometheus server 中拉 metrics。

(2)Prometheus server 在本地存储收集到的 metrics,并运行已定义好的 alert.rules,记录新的时间序列或者向 Alertmanager 推送警报。

(3)Alertmanager 根据配置文件,对接收到的警报进行处理,发出告警。

(4)在图形界面中,可视化采集数据。

Prometheus 客户端库主要提供四种主要的 metric 类型:

Counter: 一种累加的 metric,典型的应用如:请求的个数,结束的任务数, 出现的错误数等等。

例如:,查询 http_requests_total{method=“get”, job=“Prometheus”, handler=“query”} 返回 8,10 秒后,再次查询,则返回 14。

Gauge: 一种常规的 metric,典型的应用如:温度,运行的 goroutines 的个数。可以任意加减。

例如: go_goroutines{instance=“172.17.0.2”, job=“Prometheus”} 返回值 147,10 秒后返回 124。

Histogram: -可以理解为柱状图,典型的应用如:请求持续时间,响应大小。