promQL基本使用

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

- 瞬时向量与范围向量查询

参考链接

  1. 查询指标最新样本(称为瞬时向量):
node_cpu_seconds_total
  1. 可以通过附加一组标签来进一步过来这些时间序列:
node_cpu_seconds_total{job="Linux Server"}
  1. 查询指标近5分钟内样本(称为范围向量,时间单位 s,m,h,d,w,y):
node_cpu_seconds_total{job="Linux Server"}[5m]

- 常用操作符

参考链接

  1. 比较操作符
node_cpu_seconds_total{job="Linux Server",mode="iowait"}
node_cpu_seconds_total{job="Linux Server",mode=~"user|system"}
node_cpu_seconds_total{job="Linux Server",mode=~"user|system",cpu!="0"}
  1. 算术操作符
CPU使用率:
100 - (avg(irate(node_cpu_seconds_total{mode="idle"}[5m])) by (instance) * 100)
内存使用率:
100 - (node_memory_MemFree_bytes+node_memory_Cached_bytes+node_memory_Buffers_bytes) /
node_memory_MemTotal_bytes * 100
  1. 正则匹配操作符
磁盘使用率:
100 - (node_filesystem_free_bytes{mountpoint="/",fstype=~"ext4|xfs"} /
node_filesystem_size_bytes{mountpoint="/",fstype=~"ext4|xfs"} * 100)
  1. 聚合操作符
所有实例CPU system使用率总和:
sum(node_cpu_seconds_total{job="Linux Server",mode="system"}) 
所有实例CPU system变化速率平均值:
avg(irate(node_cpu_seconds_total{job="Linux Server",mode="system"}[5m])
统计CPU数量:
count(node_cpu_seconds_total{job="Linux Server",mode="system"})
  1. 逻辑操作符
大于10并且小于50:
prometheus_http_requests_total > 10 and prometheus_http_requests_total < 50
大于10或者小于50:
prometheus_http_requests_total > 10 or prometheus_http_requests_total < 50

- 常用函数

参考链接

irate():计算指标在一定时间间隔内的变化速率
irate(node_cpu_seconds_total{job="Linux Server",mode="system"}[5m])
posted @ 2022-03-01 14:05  曾某某scau  阅读(258)  评论(0编辑  收藏  举报