二、Prometheus架构及原理

1、Prometheus架构图

在这里插入图片描述
如上图,Prometheus主要由以下部分组成:

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

组件详细介绍:

Prometheus Server: 用于收集和存储时间序列数据。

Client Library: 客户端库,检测应用程序代码,当Prometheus抓取实例的HTTP端点时,客户端库会将所有跟踪的metrics指标的当前状态发送到prometheus server端。

Exporters: prometheus支持多种exporter,通过exporter可以采集metrics数据,然后发送到prometheus server端

Alertmanager: 从 Prometheus server 端接收到 alerts 后,会进行去重,分组,并路由到相应的接收方,发出报警,常见的接收方式有:电子邮件,微信,钉钉, slack等。

Grafana: 监控仪表盘
pushgateway: 各个目标主机可上报数据到pushgatewy,然后prometheus server统一从pushgateway拉取数据。

2、工作流程

(1) Prometheus server可定期从活跃的(up)目标主机上(target)拉取监控指标数据,目标主机的监控数据可通过配置静态job或者服务发现的方式被prometheus server采集到,这种方式默认的pull方式拉取指标;也可通过pushgateway把采集的数据上报到prometheus server中;还可通过一些组件自带的exporter采集相应组件的数据;

(2) Prometheus server把采集到的监控指标数据保存到本地磁盘或者数据库;

(3) Prometheus采集的监控指标数据按时间序列存储,通过配置报警规则,把触发的报警发送到alertmanager;

(4) Alertmanager通过配置报警接收方,发送报警到邮件,微信或者钉钉等;

(5) Prometheus 自带的web ui界面提供PromQL查询语言,可查询监控数据;

(6) Grafana可接入prometheus数据源,把监控数据以图形化形式展示出来。

3、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: -可以理解为柱状图,典型的应用如:请求持续时间,响应大小。

4、Prometheus数据的特点:

(1)多维度数据模型;
时间序列数据由metrics名称和键值对来组成
可以对数据进行聚合,切割等操作
所有的metrics都可以设置任意的多维标签。

(2)灵活的查询语言(PromQL):可以对采集的metrics指标进行加法,乘法,连接等操作;

(3)可以直接在本地部署,不依赖其他分布式存储;

(4)通过基于HTTP的pull方式采集时序数据;

(5)可以通过中间网关pushgateway的方式把时间序列数据推送到prometheus server端;

(6)可通过服务发现或者静态配置来发现目标服务对象(targets)。

(7)有多种可视化图像界面,如Grafana等。

(8) 高效的存储,每个采样数据占3.5 bytes左右,300万的时间序列,30s间隔,保留60天,消耗磁盘大概200G。

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值