29
2024
08
10:32:34

Prometheus介绍 #什么是Prometheus

https://wiki.tbchip.com/pages/4bfc3a/


什么是Prometheus


THEOREM

Prometheus是最初在SoundCloud上构建的开源系统监视和警报工具包。 自2012年成立以来,许多公司和组织都采用了Prometheus,该项目拥有非常活跃的开发人员和用户社区。 现在,它是一个独立的开源项目,并且独立于任何公司进行维护。 为了强调这一点并阐明项目的治理结构,Prometheus于2016年加入了Cloud Native Computing Foundation,这是继Kubernetes之后的第二个托管项目。

#什么是指标


指标其实就是一个度量值,这个值因应用而异,可以是CPU、内存、也可以是是web服务中的请求数。这些值都会随着时间的变化而有所不同,下面是官方给出Prometheus生态架构图:

image-20230208180841671

  • Pushgateway: 类似代理模式,监控客户端把数据上传到Pushgateway应用,再由 Prometheus server 到 Pushgateway 集中 Pull 数据。

  • Targets Discover:服务发现。

  • PromQL: 指标查询语言,类似于MySQL的sql语句。

  • Alertmanager: 根据配置规则以及指标分析,提供告警服务。

  • Web UI :Prometheus提供的web界面,方便指标的查询。

笔记

上图我们一分为三进行分析

  • 左边可以理解为Prometheus的数据采集模块,可以看到Prometheus主要是通过pull模式进行数据的指标的采集,这种方式指对的是被监控端主动暴露自身监控数据接口,或者使用特定能采集应用数据的 exporter进行监控指标数据的保存,当然对于如何发现监控端,Prometheus提供了比较丰富的采集目标发现机制,你可以手动配置,也可以使用基于配置文件的发现机制,或者基于 Kubernetes 的发现机制等等。

  • 中间部分是Prometheus数据处理,Retrieval 负责定时去暴露监控指标的目标上抓取数据,Storage 负责将数据写入磁盘,promQL 暴露查询数据的 http server 能力。同时他也会根据告警规则,一旦达到阈值,那么就会向 Alertmanager 推送告警信息,然后由 Alertmanager 对接到外部平台,将应用异常信息推送给用户。

  • 右边部分是Prometheus提供的数据查询,可以通过 Prometheus UI 访问 Prometheus server 能力。或者结合 Grafana,将 Prometheus 作为数据源接入,在 Grafana 自定义模版,以图表的方式展示应用指标的状态变化,以便于更加直观地观测应用的变化。

#什么是时间序列数据


时间序列数据(TimeSeries Data):按照时间顺序记录系统、设备状态变化的数据被称为时序数据。应用场景很多,如:无人驾驶车辆中要记录信息、传统证券行业实时交易数据等等。

#为什么要使用Prometheus


Prometheus的基本原理是通过HTTP协议周期性抓取被监控组件的状态,任意组件只要提供对应的HTTP接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如VM、Docker、Kubernetes等。输出被监控组件信息的HTTP接口被叫做exporter 。目前互联网公司常用的组件大部分都有exporter可以直接使用,比如Nginx、MySQL、Linux系统信息(包括磁盘、内存、CPU、网络等等)。




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://hqyman.cn/post/7846.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: