博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
监控工具之---Prometheus表达式promQL生产中应用(五)
阅读量:5204 次
发布时间:2019-06-13

本文共 3908 字,大约阅读时间需要 13 分钟。

 cpu利用率

  方法一:

100 - (avg(increase(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) / 60) * 100

  方法二:

100 - avg(rate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance)  * 100

  方法三:

100 - avg(irate(node_cpu_seconds_total{mode="idle"}[1m])) by (instance) * 100

计算cpu是通过/proc/stat中第四列的idle的cpu时间片计算的

root@Prometheus:~# cat /proc/statcpu  148499 3877 89516 481390579 39919 0 1641 1151 0 0cpu0 42643 1845 26582 120310710 36391 0 447 215 0 0cpu1 31605 729 18455 120360192 757 0 426 200 0 0cpu2 43326 353 26240 120349498 1838 0 371 434 0 0cpu3 30924 948 18237 120370177 931 0 397 301 0 0 intr 136119739 3 9 0 0 0 0 3 0 0 1 0 120504 15 0 0 0 0 0 0 0 0 0 0 0 0 21 0 192930 2 360048 2 0 1055623 0 105 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ctxt 237129237 btime 1567583772 processes 103191 procs_running 1 procs_blocked 0 softirq 67537036 0 26595157 1 2152054 0 0 24 26667933 0 12121867

cpu饱和度

node_load1 > on (instance) count (node_cpu_seconds_total{mode="idle"})  by (instance) *2

内存使用率

       参考链接:

  关注node_memory度量的一个子集,以提供我们的利用率度量:

  • node_memory_MemTotal_bytes - 主机上的总内存
  • node_memory_MemFree_bytes - 主机上的空闲内存
  • node_memory_Buffers_bytes - 缓冲区缓存中的内存
  • node_memory_Cached_bytes - 页面缓存中的内存。
  所有这些指标都以字节表示

  表达式:

(node_memory_MemTotal_bytes - (node_memory_MemFree_bytes + node_memory_Cached_bytes + node_memory_Buffers_bytes)) / node_memory_MemTotal_bytes * 100

内存饱和度

  • node_ vmstat_ pswpin: 系统 每秒 从 磁盘 读到 内存 的 字节数。
  • node_ vmstat_ pswpout: 系统 每秒 从内 存 写到 磁盘 的 字节数。
sum (rate(node_vmstat_pgpgin[1m]) + rate(node_vmstat_pgpgout[1m])) by (instance) * 1024

磁盘使用率

  表达式;

(node_filesystem_size_bytes - node_filesystem_free_bytes) / node_filesystem_size_bytes * 100

文件描述符inodes

(node_filesystem_files{fstype="ext4"} - node_filesystem_files_free{fstype="ext4"}) / node_filesystem_files{fstype="ext4"} * 100

   Prometheus提供了一种机制,通过名为predict_linear的函数,可以预示磁盘增长率,在未来多长时间可以将磁盘占满。

predict_linear(node_filesystem_free_bytes{mountpoint="/"}[1h], 10*3600) < 0

服务状态

node_systemd_unit_state{instance="10.10.0.101:9100",job="node",name="grafana-server.service",state="activating",type="simple"} 0
node_systemd_unit_state{instance="10.10.0.101:9100",job="node",name="grafana-server.service",state="active",type="simple"} 1
node_systemd_unit_state{instance="10.10.0.101:9100",job="node",name="grafana-server.service",state="deactivating",type="simple"} 0
node_systemd_unit_state{instance="10.10.0.101:9100",job="node",name="grafana-server.service",state="failed",type="simple"} 0
node_systemd_unit_state{instance="10.10.0.101:9100",job="node",name="grafana-server.service",state="inactive",type="simple"} 0

 

 

 

 

  查看服务状态为active状态的服务

node_systemd_unit_state{state="active"}

   或

node_systemd_unit_state{job="node"} == 1

向量匹配

  一对一匹配

  一对一配置从每一侧找到唯一匹配的条目对。如果两个条目具有完全相同的标签值,则它们是一对一匹配的。你可以考虑使用ignoring修饰符忽略掉特定标签,或者使用on修饰符来减少显示的标签列表。例如:

node_systemd_unit_state{name="grafana-server.service"} == 1 and on (instance,job)metadata{datacenter!="BJ"}

  查询所有node_systemd_unit_state指标中name标签为grafana-server.service并且值为1的指标。然后使用on修饰符将返回的标签列表减少到metadata指标的instance和job标签。并且datacenter标签的值为BJ

 

转载于:https://www.cnblogs.com/weidongliu/p/11583553.html

你可能感兴趣的文章
Linux下oracle数据库启动和关闭操作
查看>>
使用Vue2.X和Webpack2.X开发SPA应用 - 环境构建篇
查看>>
锋利的jQuery第四章:jQuery中的事件和动画
查看>>
网站结构优化的基本方法
查看>>
用CSS制作带图标的按钮
查看>>
1008.CTF 题目之 WEB Writeup 通关大全 – 2
查看>>
Spyder5 & 显示器校准 & 色彩校准
查看>>
SpringBoot之基础入门-专题一
查看>>
放大镜的实现
查看>>
[代码审计]某开源商城前台getshell
查看>>
使用ODBC时,要注意兼容的数据库版本号
查看>>
升级node后还是原来版本问题
查看>>
版本生成|Ext form输入框后加文字说明
查看>>
Php+Redis 实现Redis提供的lua脚本功能
查看>>
iOS - UIPageViewController
查看>>
一串数字每三位用逗号分隔的面试题
查看>>
JS全选/取消全选
查看>>
oracle查看经常使用的系统信息
查看>>
Codeforces Round #223 (Div. 2)--A. Sereja and Dima
查看>>
Animatepacker for cocos2d-x 3.0 解析
查看>>