prometheus-强大的监控框架
prometheus是当前监控k8s最常用的监控框架,并且grafana也支持prometheus搭建可视化监控
prometheus组件
prometheus架构图如下:

- prometheus server
prometheus server本身就是一个时间序列数据库,时间序列数据库就是prometheus每隔几秒就会对同一个指标重复查询其值,同一个指标会保存其历史时间段的值,这对于监控来说比较重要,监控需要展示历史阶段不同时间的值,所以叫时间序列数据库 - exporter && pushgateway
prometheus有两种采集数据的方式
一是靠各个服务自己按照prometheus规定的格式编写exporter服务并对外暴露接口,prometheus会主动调接口pull数据,适用长时间数据
二是靠各个服务自己往pushgateway推数据,适用短时间会消失的数据 - alertmanager
alertmanager可以根据prometheus存储的数据配置定制的报警规则,并发送到对应的报警监控人 - grafana
grafana是一个可视化界面,grafana支持PromeQL以可视化的形式展示不同的监控指标
PromeQL
PromeQL是prometheus独有的数据库查询语句,grafana展示的可视化指标需要先写promeQL从prometheus查询到数据才能展示
promeQL支持一些基本的操作符,PromQL 查询结果主要有 3 种类型:
瞬时数据 (Instant vector): 包含一组记录,每个记录只有一个点,就是最新的一条时间记录,例如:http_requests_total
区间数据 (Range vector): 包含一组记录,每个记录有多个点,包括历史的多条时间记录,例如:http_requests_total[5m]
纯量数据 (Scalar): 纯量只有一个数字,没有时序,例如:count(http_requests_total)、sum(http_requesets_total)
Prometheus 是 Kubernetes 监控的首选框架,与 Grafana 集成实现可视化。它包括 Prometheus Server、Exporter 和 Pushgateway 用于数据采集,Alertmanager 处理报警规则,而 Grafana 则提供直观的监控界面。Prometheus 的查询语言 PromeQL 支持对时间序列数据进行复杂查询,分为瞬时数据、区间数据和纯量数据三种类型。
4088





