0
点赞
收藏
分享

微信扫一扫

Prometheus底层原理 一

刘员外__ 2024-03-14 阅读 27

一、Prometheus简介

Prometheus 是一款时序(time series)数据库,但它的功能却并非止步于 TSDB,而是一款设计用于进行目标(Target)监控的关键组件;

Prometheus是一个开源的系统监控和报警系统,现在已经加入到CNCF基金会,成为继k8s之后第二个在CNCF托管的项目,在kubernetes容器管理系统中,通常会搭配prometheus进行监控,同时也支持多种exporter采集数据,还支持pushgateway进行数据上报,Prometheus性能足够支撑上万台规模的集群;

Prometheus基本原理是通过 HTTP 协议周期性抓取(pull) 被监控组件的状态,这样做的好处是任意组件只要提供HTTP接口就可以接入监控系统,不需要任何SDK或者其他的集成过程

二、基本原理

服务发现:Prometheus周期性得以pull的形式对target进行指标采集,而监控目标集合是通过配置文件中所定义的服务发现机制来动态生成的。也可以静态配置;

relabel:当服务发现得到所有target后,Prometheus会根据job中的relabel_configs配置对target进行relabel操作,得到target最终的label集合。

采集:进行完上述操作后,Prometheus为这些target创建采集循环,按配置文件里配置的采集间隔进行周期性拉取,采集到的数据根据Job中的metrics_relabel_configs进行relabel,然后再加入上边得到的target最终label集合,综合后得到最终的数据。

存储:Prometheus不会将采集到的数据直接落盘,而是会将近2小时的series缓存在内存中,2小时后,Prometheus会进行一次数据压缩,将内存中的数据落盘。

流程:服务发现 ==> targets ==> relabel ==> 抓取 ==> metrics_relabel ==> 缓存 ==> 2小时落盘


举报

相关推荐

Block 底层原理(一)

iOS底层原理22:KVC底层原理

Redis底层原理

ThreadLocal底层原理

docker 底层原理

SpringBoot底层原理

0 条评论