promQL语句和mysql数据库中select语句类似,都是用于查询某个对象下的数据信息
我们可以直接把promeheus中的"指标"看作是mysql中的"数据表"
通过查询指标,可以得到指标这个表中的存放的数据信息。并且可以通过筛选过滤来得到某个指标的详细信息

前言

#我们通过promQL语句查询得到的值主要有以下两种
1. "瞬时向量"   #查询得到最新的值,(实时数据)通常用于报警、实时监控
2. "区间向量"   #查询某一段时间范围内所有的样本值,多用于数据分析、预测

一. 瞬时向量

#查询磁盘总量
node_filesystem_size_bytes#通过下图,可以看到直接通过查询指标的名称,可以查询这个指标(表)中所有的数据
#而我们获取到的这个值,是一个实时数据。你可以多点几下,可以发现后面的值一直在变

返回

通过上面的查询我们获取到了该"指标(表)"下的所有数据

但很多时候希望可以获取单条的详细信息,而不是大量无用的信息

在promQL语句中,我们可以通过"标签"对查询的数据进行筛选

案例1  筛选过滤

#我们添加一个mountpoint="/"的标签 (显示/分区的信息)
#必须满足这个标签的值才会显示
node_filesystem_size_bytes{mountpoint="/"}

案例2 多层筛选

上图可以看到符合该条件的信息只有两条,但第二条rootfs明显是我们不需要的,我们可以再此过滤

#在上面的基础上我们再追加一个device != "rootfs"
#注意,这里使用的是"!=" 不等于
node_filesystem_size_bytes{mountpoint = "/",device != "rootfs"}

案例3 算数运算

我们通过筛选得到了一个单独的值,但这个数值并不方便理解。 我们将他转换一下

node_filesystem_size_bytes{mountpoint = "/",device != "rootfs"} / 1024 / 1024 / 1024

#得到如下的信息
{device="/dev/mapper/centos-root", fstype="xfs", instance="192.168.1.21:9100", job="node", mountpoint="/"} 16.986328125#我们回主机上查看
[root@k8s-node01 ~]# df -h | grep /$
/dev/mapper/centos-root   17G  5.8G   12G   35% /
#可以看到是很接近的,四舍五入的是17

小知识

#当我们使用下面语句查询时
node_filesystem_size_bytes{instance="192.168.1.21:9100"}  #实际上是以下面的形式运行的
{__name__="node_filesystem_size_bytes",instance="192.168.1.21:9100"}

案例4  模糊匹配

我们并不是在所有的情况下都需要单个信息,当节点信息过多的时候。

我们有时会进行一些模糊的匹配机制来获取多个资源的值

#和上面的语法类似,不同的是将 (=,!=) 替换为了(=~,!~)
#如下
#匹配到的ip都会显示
node_filesystem_size_bytes{instance=~"(192.168.1.20:9100|192.168.1.21:9100|192.168.1.22:9100)"}#匹配到的ip都不会显示
node_filesystem_size_bytes{instance!~"(192.168.1.20:9100|192.168.1.21:9100|192.168.1.22:9100)"}

二. 区间向量

上面我们通过promQL查询到的数据会返回一个样本值,这个值我们称之为"瞬时向量"

而我们想要获取一段时间范围内的数据时,我们则需要使用"区间向量表达式"

#首先我们要先了解一下时间范围的单位
#缩写      #单位
s         Seconds   秒
m         Minu        分
h         Hours       时
d         Days         天
w        Weeks      周
y         Years        月

案例1 获取2分钟内磁盘可用容量的值

#在结尾添加[2m]
node_filesystem_free_bytes{mountpoint = "/",device != "rootfs"}[2m]

可以看到,他会返回在2分钟内磁盘变化的值,前面标记的是磁盘可用的空间后面是磁盘最大空间

案例2 范围查询的偏移量(offset)

上面我们查询到了2分钟内的数据,但是我们现在反过来。
我们要查询2分钟之前的数据、或者昨天的数据做统计,就需要用到"偏移量"

#查询1小时前的最后两分钟的磁盘可用大小
node_filesystem_free_bytes{mountpoint = "/",device != "rootfs"}[2m] offset 1h#不过本地查看,也没什么太大的浮动。

 我们可以通过predict_linear() 去预测磁盘多久会用完 (当返回的值小于0时可以设置报警)

#这里我们根据磁盘可用量在10分钟内的增长值,去预测1个小时内会不会占满
predict_linear(node_filesystem_free_bytes{mountpoint ="/"}[10m], 1*3600) < 0#不出意外应该不会查询到任何东西
#自然增长没那么快,我这里磁盘容量大小是17G,我们去创建一个大文件做测试
dd if=/dev/zero of=file bs=5000M count=1  #写入一个5G的文件

刚开始的时候,我们不是很清楚要写些什么,可以先看看grafana上面的模板的语句进行参考

prometheus使用 (四) 瞬时向量与区间向量相关推荐

  1. 计算机图形学 opengl版本 第三版------胡事民 第四章 图形学中的向量工具

    计算机图形学 opengl版本 第三版------胡事民 第四章  图形学中的向量工具 一   基础 1:向量分析和变换   两个工具  可以设计出各种几何对象 点和向量基于坐标系定义 拇指指向z轴正 ...

  2. 系统学习NLP(十四)--句子向量与篇章向量

    转自:https://blog.csdn.net/qq_35082030/article/details/72582103 Doc2Vec 或者叫做 paragraph2vec, sentence e ...

  3. 词向量与词向量拼接_nlp中的词向量对比:word2vec/glove/fastText/elmo/GPT/bert

    本文以QA形式对自然语言处理中的词向量进行总结:包含word2vec/glove/fastText/elmo/bert. 2020年更新:NLP预训练模型的全面总结JayLou娄杰:史上最全!PTMs ...

  4. 词向量、句子向量、篇章向量的一些理解(转)

    2019独角兽企业重金招聘Python工程师标准>>> 词向量.句子向量.篇章向量的一些理解(转) (转自)http://blog.csdn.net/sinat_26917383/a ...

  5. asp.net core监控—引入Prometheus(四)

    上一篇博文中说到Prometheus有四种指标类型:Counter(计数器).Gauge(仪表盘).Histogram(直方图).Summary(摘要),并且我们做了一个Counter的Demo,接下 ...

  6. c语言平面向量加法考点,平面向量的加减法怎么死活都不会?有没有什么口诀?例如:向量AB+BC=?向量OA-OB=?向量AB-CB=?有没有什么口诀!...

    设a=(x,y),b=(x',y'). 1.向量的加法 向量的加法满足平行四边形法则和三角形法则. AB+BC=AC. a+b=(x+x',y+y'). a+0=0+a=a. 向量加法的运算律: 交换 ...

  7. unique去除重复的向量_R语言向量与因子

    使用combine创建向量 # 字符型向量 name <- c("张三","李四") # 数值型向量 num <- c(1,2,3.4,5) # 逻 ...

  8. python二维向量运算模拟_Python数学基础之向量定义与向量运算(附代码)

    患难与困苦是磨练人格的最高学府.--苏格拉底(公元前470年-公元前399年) Adversity and pinch are the highest institution of higher le ...

  9. 将向量附加到向量[重复]

    本文翻译自:Appending a vector to a vector [duplicate] This question already has an answer here: 这个问题已经在这里 ...

最新文章

  1. python判断一个数是整数、浮点数还是字符串
  2. python全栈学习--day8
  3. C++基础:第七章 函数
  4. SCI论文降重技巧盘点 - 易智编译EaseEditing
  5. windows用户密码破解
  6. 蚌埠学院计算机基础,蚌埠学院电子教务登录
  7. 聊聊外贸企业自建网站注意事项
  8. python百分号用法_python中百分号表示什么意思
  9. 企业微信自建内部应用Demo源码,附在线Demo及视频讲解,创建测试公司及测试应用简单配置即可使用
  10. 什么是Express框架
  11. 中国剩余定理与韩信点兵问题原理
  12. 计算机类部分核心期刊说明
  13. ROS 教程2 机器人雷达建图 蒙特卡洛定位 导航 路径规划 仿真
  14. 一犯人在执行死刑前三天供出祖传治癌奇方
  15. 开发中关于手机的听筒模式的设置
  16. Educoder头歌-Linux vi/vim编辑器
  17. echo命令的换行方法
  18. java license机制dll_LicenseJava.dll,下载,简介,描述,修复,等相关问题一站搞定_DLL之家...
  19. 【CSS布局】—— flex(弹性)布局
  20. 渲染TA实战:眼球的渲染

热门文章

  1. 进攻方向的选择(博弈论的诡计)
  2. 毕业设计——音乐播放系统 可以自己上传歌曲 SSM框架 MYSQL数据库 功能齐全
  3. Flash教程1000例
  4. 站长做广告联盟和包月广告需要注意些什么?
  5. 《如何让你爱的人爱上你》——莉尔·朗兹[美]
  6. VL48-使用Verilog解决多bit MUX同步器—慢时钟域同步到快时钟域(多bit跨时钟域),快时钟同步使能端并通过该使能端控制输出数据
  7. 苹果cms整合dplayer播放器增加记忆+P2P播放+自动下一集
  8. iOS:制作简易的 AAC 播放器 —— 了解音频的播放流程
  9. vulnhub Vegeta: 1
  10. linux安装压力测试工具vegeta