(prometheus笔记08)几个常见的prometheus函数

函数

● rate() 平均比率。常和[1m]配合使用,一般统计对带有counter关键字的统计,代表一分钟内的某关键字的平均每秒增量。

例子1:计算所有节点1分钟内的网络接收总量的平均每秒比率
rate(node_network_receive_bytes_total[1m])


例子2:计算所有节点5分钟内的网络接收总量的平均每秒比率
这就比1分钟的比率的图形显得更平滑。
rate(node_network_receive_bytes_total[5m])

● increase() 增量总和。取一段时间增量的总和

例子3:计算所有节点1分钟内的网络接收量在一分钟内的增量
increase(node_network_receive_bytes_total[1m])


● sum() 求和。把关键字的所有对象加起来求和

例子4:计算所有节点1分钟内的网络接收量在一分钟内的总和的增量
sum(increase(node_network_receive_bytes_total[1m]))


● topk() 取前几位的最高值。该函数长用于查看数据结果,而非是图形。


例子5:在所有网络接收总量中找到前三位的数据(一般不这么用)
topk(3,node_network_receive_bytes_total)

例子6:在30分钟内所有节点的网络接收总量比率中,排名前三的数据,实际中可能出图是不连续的,因为exporter抓数据的频率不一样,多台混合在一起就会造成时间错位,最终画图不连贯
topk(3,rate(node_network_receive_bytes_total[30m]))


● count() 求数量。
一般用于模糊监控,比如共10台主机,其中2台的内存高于85%,这个时候我们不需要它报警,担当有5台以上才会报警,这个时候就可以使用count()函数来统计

实例

CPU使用率(值小了好)
----------------------------------------
空闲
sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)
总cpu
sum(increase(node_cpu_seconds_total[1m])) by (instance)

空闲率
(sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100

使用率
(1-(sum(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance))) * 100


CPU IO等待率(值小了好)
----------------------------------------
(sum(increase(node_cpu_seconds_total{mode="iowait"}[1m])) by (instance) / sum(increase(node_cpu_seconds_total[1m])) by (instance)) * 100


内存使用率
----------------------------------------
(1-((node_memory_Buffers_bytes + node_memory_Cached_bytes + node_memory_MemFree_bytes) / node_memory_MemTotal_bytes)) * 100


文件系统(值小了好)
----------------------------------------
(1-(node_filesystem_free_bytes{mountpoint="/"} / node_filesystem_size_bytes{mountpoint="/"})) * 100


磁盘io(值小了好,得出的结果是MB)
----------------------------------------
((rate(node_disk_read_bytes_total[1m]) + rate(node_disk_written_bytes_total[1m])) / 1024 /1024) > 0


文件描述符(值小了好,返回百分比)
linux操作系统通常对每个进程能打开的文件数量有限制。
linux系统默认的最大文件描述符为1024。返回百分比,值小了好
-----------------------------------------
(node_filefd_allocated / node_filefd_maximum) * 100

网络延迟(需要自己写脚本发送给pushgateway,下面把ping命令写出来个例子)
-------------------------------------------
timeout 5 ping -q -A -s 500 -W 1000 -c 100 www.qq.com
-s代表一个ping包的大小
-W代表延迟等待时间timeout
-c代表发送多少个数据包

windows的cpu已利用率(值小了好,返回结果百分比)
-------------------------------------------------
(1-(sum(increase(wmi_cpu_time_total{instance="win126-instance",mode="idle"}[1m])) / sum(increase(wmi_cpu_time_total{instance="win126-instance"}[1m])))) * 100


windows的内存已利用率(值小了好,返回百分比)
--------------------------------------------------------
windows物理内存(G)
wmi_cs_physical_memory_bytes{instance="win126-instance"} /1024/1024/1024
windows物理剩余内存
wmi_os_physical_memory_free_bytes{instance="win126-instance"} / 1024/1024/1024

(1-(wmi_os_physical_memory_free_bytes{instance="win126-instance"} / wmi_cs_physical_memory_bytes{instance="win126-instance"})) * 100

猜你喜欢

转载自blog.csdn.net/xoofly/article/details/106901135
今日推荐