一、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