Prometheus简单理解

Prometheus 覆盖指标暴露,到指标抓取、存储和可视化以及监控告警。

指标暴露


对于短时间执行的脚本任务等不好直接 Pull 指标的服务,Prometheus 提供了 PushGateWay 网关给这些任务将服务指标主动推 Push 到网关,Prometheus 再从这个网关里 Pull 指标。


指标抓取


Pull 模型:被监控服务一般通过主动暴露 metrics 端口或者通过 Exporter 的方式暴露指标,监控服务依赖服务发现模块发现被监控服务,从而去定期的抓取指标。    
Push 模型: 被监控服务主动将指标推送到监控服务;(不对外使用)

指标存储和查询


PromQL 和 Prometheus 的 WebUI

监控告警


alertmanageer 基于 promql 来做系统的监控告警

Metric 指标格式


指标都是以时间序列的形式进行存储,每一个时间序列有三部分组成,指标名和指标标签集合,时间戳,样本值
<metric name>{<label name>=<label value>, ...}  value    // 指标的具体格式,<指标名>{标签集合} 指标值

Metric 指标类型


4 种不同的指标类型:计数器 counter,仪表盘 gauge,直方图 histogram,摘要 summary。

counter,单调递增的数据,同时可以结合 increase 和 rate 等函数统计变化速率;
gauge 是可增可减的,可以反映一些动态变化的数据,例如当前内存占用,CPU 利用,Gc 次数等动态可上升可下降的数据,在 Prometheus 上通过 Gauge,可以不用经过内置函数直观的反映数据的变化情况。
histogram 可以观察到指标在各个不同的区间范围的分布情况。
summary 也是用来做统计分析的,和 Histogram 区别在于,Summary 直接存储的就是百分位数。

Metric 指标导出


主要有两种方式,一种是使用 Prometheus 社区提供的定制好的 Exporter 对一些组件诸如 MySQL,Kafka 等的指标作导出;也可以利用社区提供的 Client 来自定义指标导出(github.com/prometheus/client_golang/prometheus/promhttp)。

PromQL


通过{ }指定标签来做过滤查询
go_gc_duration_seconds_count{instance="127.0.0.1:9600"}
通过 =~ 指定正则表达式,localhost 开头的指标
go_gc_duration_seconds_count{instance=~"localhost.*"}
通过[ ]指定时间来做范围查询,d:天,h:小时,m:分钟,ms:毫秒,s:秒,w:周,y:年
go_gc_duration_seconds_count{}[5m]
offset 查询,一天前当前 5 分钟前的时序数据集
go_gc_duration_seconds_count{}[5m] offset 1d
内置函数
rate函数=时间区间前后两个点的差 / 时间范围
irate函数=时间区间内最后两个样本点的差 / 最后两个样本点的时间差
sum函数=将三个QPS聚合,即可得到整个服务该接口的QPS
sum(rate(demo_api_request_duration_seconds_count{job="demo", method="GET", status="200"}[5m])) 


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值