ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

prometheus常用函数详解

2021-02-25 05:32:23  阅读:340  来源: 互联网

标签:node 函数 rate prometheus 详解 total 1m eth0


参考:https://blog.csdn.net/chuchen4441/article/details/100756213


 

rate函数(速率函数)

rate() 函数是专门搭配counter数据类型使用函数,功能是取counter在这个时间段中平均每秒的增量

1 获取网卡1m每秒流量平均(此时是有多少网卡将会显示多少网卡的流量)

表达式

rate(node_network_receive_bytes_total[1m])

1d4a8ab3606f34a044ab535af3e0a91db79.jpg

2)只看eth0网卡1m每秒流量平均(即所有服务器eth0)

表达式

rate(node_network_receive_bytes_total{device="eth0"}[1m])

82a5267c836f5b5a05000d13f8bfc5c3e4d.jpg

3) 只看莫一台服务器eth0网卡1m每秒流量平均 (可以通过,instance,job等修饰进行精确匹配)

表达式

rate(node_network_receive_bytes_total{device="eth0",instance="jira-old",job="jira-xxxx"}[1m]) 

1313b9f7944f09eac86f6f2bf7705d78933.jpg

4 查看一组相同服务器eth0 1m每秒流量平均

表达式

rate(node_network_receive_bytes_total{device="eth0",instance=~"jira.*"}[1m])

6c96047d3b0d11e5c90948ffbaaa369e999.jpg

 

5) 查看一组服务器eth0 1m每秒流量平均和

表达式

sum(rate(node_network_receive_bytes_total{device="eth0",instance=~"jira.*"}[1m]))

310f74773b301ee539af75c84fcea4367f1.jpg

increase函数

increase() 函数表示某段时间内数据的增量

rate() 函数则表示某段时间内数据的平均值

两个函数如何选取使用?

当我们获取数据比较精细的时候 类似于1m取样推荐使用rate()

当我们获取数据比较粗糙的时候 类似于5m,10m甚至更长时间取样推荐使用increase()

表达式示例

increase(node_network_receive_bytes_total{device="eth0"}[1m])

7d49e32c074810125c84fe8fedd18781610.jpg

sum函数

sum()函数就是求和函数前面已经说过,注意点是当你使用sum后是将所有的监控的服务器的值进行取和,所以当我们只看某一台时需要进行拆分

拆分常用方法: 1  by increase() 

                         2 by (cluster_name)  属于自定义标签不是标准标签,我们可以手动将不痛功能的服务器进行分组展示

表达式示例

sum(rate(node_network_receive_bytes_total{device="eth0"}[1m]))

1afac8be3a018a80ab3393ac27715deabf8.jpg

topk函数

topk() 函数的定义是:取前面x位的最高值,最简单理解就是数学的top3 ,当我们有很多服务器我们想要获取某个key的数据排在前3位的服务器。

Gauge类型使用方式:

topk(3,key)

Counter类型使用方式

topk(3,rate(key[1m]))

注意:此种函数获得数据并不是很适用图形化展示

count函数

count() 是找出当前或者历史数据中某个key的数值大于或小于某个值的统计

表达式示例

count(node_netstat_Tcp_CurrEstab >180)

f76bb590e40cf5aec6bfbb343c000c3e26e.jpg

irate函数

irate(v range-vector)计算范围向量中时间序列的每秒即时增长​​率。这基于最后两个数据点。单调性中断(例如由于目标重启而导致的计数器重置)会自动调整

表达示例 5m http请求的每秒速率

irate(http_requests_total{job="api-server"}[5m])

irate只应在绘制易失性快速移动计数器时使用。使用rate警报和缓慢移动的柜台,因为在房价短暂变化可以重设FOR条款和图表完全由罕见尖峰难以阅读。

注意,当irate()与 聚合运算符(例如sum())或随时间聚合的函数(以任何结尾的函数_over_time)组合时,总是先取irate()第一个,然后聚合。否则irate()在目标重启时无法检测到计数器重置。

更多函数请参考官方文档:

https://prometheus.io/docs/prometheus/latest/querying/functions/

标签:node,函数,rate,prometheus,详解,total,1m,eth0
来源: https://www.cnblogs.com/daikainan/p/14444866.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有