IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> Prometheus指标 -> 正文阅读

[Python知识库]Prometheus指标

1 指标类型

prometheus的指标有四种类型,分别是Counter,Gauge,Histogram,Summary。

  • Counter
    只增不减的计数器,用于描述某个指标的累计状态,比如请求量统计,http_requests_total

  • Gauge
    可增可减的计量器,用于描述某个指标当前的状态,比如系统内存余量,node_memory_MemFree_bytes

  • Histogram
    直方图指标用于描述指标的分布情况,比如对于请求响应时间,总共10w个请求,小于10ms的有5w个,9小于50ms的有9w个,小于100ms的有9.9w个

  • Summary
    和直方图类似,summary也是用于描述指标分布情况,不过表现形式不同,比如还是对于请求响应时间,summary描述则是,总共10w个请求,50%小于10ms,90%小于50ms,99%小于100ms

    Histogram的使用场景会比较多一些,因为对服务端资源需求更少,但是在查询时histogram的资源消耗会比summary相对于更多。其实也就是summary把资源消耗转移到了服务端,指标的分布数据是计算好再导出的。

2 常用聚合函数

sum 求和
min 最小值
max 最大值
avg 平均值
stddev 标准差
stdvar 方差
count 统计元素数量
count_values 统计等于某个值的元素数量
bottomk 最小的k个元素
topk 最大的k个元素
quantile 元素分布的分位数

以上这些聚合函数使用时,有些可以针对所有指标做聚合,有些还可以指定以某个label做聚合,也可以去掉某个label后做聚合,

假如我们以hostname为粒度,统计各个hostname的请求数量,

sum by (hostname) (http_requests_total)

如果统计时,不想关注请求状态码,可以忽略该label后做聚合

sum without(statu_code) (http_requests_total)

3 常用函数

  • absent()
    用于检查某个指标是否缺失,缺失时返回1,比如查询myjob是否启动,当myjob存在时,返回空,不存在时返回1
absent(job="myjob")
  • delta()
    返回指定时间段的差值,取的是第一个和最后一个值,不管中间的数据
delta(http_requests_total{job="myjob"}[1h]) 
  • histogram_quantile()
    计算histogram指标的分布情况,比如计算90%数据指标分布线
histogram_quantile(0.9, sum by (job, le) (rate(http_request_duration_seconds_bucket[10m])))

而聚合函数quantile()一般计算的是gauge指标的分布,比如计算100机器的90%内存使用分布,

quantile(0.9, node_memory_MemFree_bytes)

也可以理解为,histogram_quantile的操作对象是针对node_memory_MemFree_bytes聚合后的histogram数据,

  • rate() and irate()
    都是用于计算元素变化速率,irate取的是在指定时间范围内的最近两个数据点,而rate则是取指定时间范围内所有数据点做平均,所以irate常用于变化快的指标,rate则用于缓慢变化的指标,这样指标才不容易失真
rate(http_requests_total{job="myjob"}[1m])
irate(http_requests_total{job="myjob"}[1m])

参考文档:

  1. https://prometheus.io/docs/prometheus/latest/querying/operators/
  2. https://prometheus.io/docs/prometheus/latest/querying/functions/
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-17 11:28:10  更:2022-01-17 11:28:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:19:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码