PromQL使用

2021-05-25  本文已影响0人  阿当运维

PromQL(Prometheus Query Language) 是 Prometheus 自己开发的数据查询 DSL 语言,语言表现力
非常丰富,支持条件查询、操作符,并且内建了大量内置函数,供我们针对监控数据的各种维度进行查询.

瞬时向量与范围向量查询

如:
1.目标实例状态:
up

2.查询指标最新样本(称为瞬时向量):
node_cpu_seconds_total


image.png

回车,我们可以看到关于prometheus监控所有主机的数据,这就是瞬时向量


image.png

可以通过附加一组标签来进一步筛选这些时间序列:


image.png

3.查询指标近5分钟内样本(称为范围向量,时间单位 s,m,h,d,w,y):
查询192.168.1.112机器的cpu空闲率百分比
(会用到聚合操作符avg 和函数irate())


image.png
avg(irate(node_cpu_seconds_total{instance="192.168.1.112:9100",mode="idle"}[5m]))*100

avg:求平均值
irate():函数,计算指标在一定时间间隔内的变化速率
*100 : 换算百分比
求使用率再用100-(空闲率表达式)
利用这些表达式直接可以在grafana出图


image.png

常用操作符

image.png

常用promQL收集系统信息公式:

收集系统CPU监控信息

  1 .CPU使用率

  公式:100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100)

 2 . CPU负载

  公式:

    node_load1     ## 1分钟负载

    node_load5     ##5分钟负载

    node_load15   ##15分钟负载

收集系统内存监控信息

1 内存使用率

  公式:(1 - (node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes ))* 100

 2 可用内存(单位:M)

  公式:node_memory_MemAvailable_bytes / 1024 / 1024 

收集系统磁盘监控信息

1 磁盘总大小(单位: G)

  公式:node_filesystem_size_bytes {fstype=~"ext4|xfs"} / 1024 / 1024 / 1024

  2 磁盘剩余大小(单位: G)

  公式:node_filesystem_avail_bytes {fstype=~"ext4|xfs"}  / 1024 / 1024 / 1024

3 磁盘使用率

  公式:(1-(node_filesystem_free_bytes{fstype=~"ext4|xfs"} / node_filesystem_size_bytes{fstype=~"ext4|xfs"})) * 100

收集系统网络监控信息

1. 网卡入网流量 (指定某一个网卡)

  公式:irate(node_network_receive_bytes_total{device='ens32'}[5m])

2. 网卡出网流量(指定某一个网卡)

  公式:irate(node_network_transmit_bytes_total{device='ens32'}[5m])

说明:收集系统各信息,都是通过node_exporter服务进行数据的收集,然后通过prometheus内置的PromQL语句进行组合查询,对于每一个公式,都可以在prometheus WEB界面测试查询。

上一篇下一篇

猜你喜欢

热点阅读