十、Prometheus 语法PromQL入门

发布于:2025-03-26 ⋅ 阅读:(30) ⋅ 点赞:(0)

一、PromQL语法初体验

PromQL Web UI 的 Graph 选项卡提供了简单的用于查询数据的入口,对于 PromQL 的编写和校验都可以在此位置,如图所示:
在这里插入图片描述

输入 up,然后点击 Execute,就能查到监控正常的 Target:

在这里插入图片描述

通过标签选择器过滤出 job 为 node-exporter 的监控,语法为:up{job="node-exporter"}
在这里插入图片描述

注意此时是 up{job=“node-exporter”} 属于绝对匹配,PromQL 也支持如下表达式:

  • != :不等于;
  • =~ :表示等于符合正则表达式的指标;
  • !~ : 和=~ 类似,=~ 表示正则匹配,!~ 表示正则不匹配

排除一些项up{job!~"node-.*|alertmanager-main.*"}

注意:不能有空格

在这里插入图片描述

匹配等于up{job=~"node-.*|alertmanager-main.*"}

在这里插入图片描述

如果想要查看主机监控的指标有哪些,可以输入 node,会提示所有主机监控的指标:

在这里插入图片描述

假 如 想 要 查 询 Kubernetes 集 群 中 每 个 宿 主 机 的 磁 盘 总 量 , 可 以 使 用node_filesystem_size_bytes

在这里插入图片描述

查询指定分区大小 node_filesystem_size_bytes{mountpoint="/"}

在这里插入图片描述

显示的大小为字节可以转单位,用/1024这种方式,除以3个就是GB的单位

在这里插入图片描述

或者是查询分区不是/boot,且磁盘是/dev/开头的分区大小

node_filesystem_size_bytes{
   device=~"/dev/.*", mountpoint!="/boot"}

在这里插入图片描述

查询主机 k8s-master01 在最近 5 分钟可用的磁盘空间变化,后面是时间戳:

node_filesystem_avail_bytes{
   instance="k8s-master01", mountpoint="/", device="/dev/mapper/centos-root"}[5m]

在这里插入图片描述

目前支持的范围单位如下:

  • ➢ s:秒
  • ➢ m:分钟
  • ➢ h:小时
  • ➢ d:天
  • ➢ w:周
  • ➢ y:年

查询 10 分钟之前磁盘可用空间,只需要指定 offset 参数即可:

node_filesystem_avail_bytes{instance="k8s-master01", mountpoint="/", device="/dev/mapper/centos-root"} offset 10m

在这里插入图片描述

查询 10 分钟之前,5 分钟区间的磁盘可用空间的变化:

node_filesystem_avail_bytes{
   instance="k8s-master01", mountpoint="/", device="/dev/mapper/centos-root"}[5m] offset 10m