prometheus
Promsql基础查询语句
Prometheus 常用 PromQL 语句
1、选择序列
选择指定指标名称的序列最新样本:
选择指定指标名称序列五分钟的样本范围:
筛选给定标签的序列
更复杂的标签匹配器
匹配器:
=
:等于!=
:不等于=~
:正则匹配!~
:不正则匹配
1、Counter 的增长速率
过去5分钟每秒平均增长速率
1分钟时间窗口中最后两个样本计算的每秒增长速率
过去1小时增加的绝对数值:
多个序列聚合
所有序列进行求和:
根据方法和路径标签维度进行求和:
without
用于从计算结果中移除列举的标签,而保留其它标签,by
则正好相反,结果向量中只保留列出的标签,其余标签则移除:
其他常用的聚合运算符:sum(), min(), max(), avg(), stddev(), stdvar(), count(), count_values(),bottomk(), topk(), quantile()。
序列间的数学计算
将两个相同标签的序列相加:
只将匹配 instance 和 job 标签的序列相加:
忽略匹配 instance 和 job 标签的序列相加:
多对一匹配模式:
在结果中包括一侧
(右侧)的 version 标签:
集合操作
包括任何左侧或右侧的标签集合:
包括任何同时存在于左侧或右侧的标签集:
包含任何左侧的标签集合,但不包括右侧的:
只在某些标签上匹配:
过滤
只保留大于1024样本值的序列:
只保留左边样本值大于右边样本值的序列:
不过滤序列,而是比较序列,然后返回0
或1
:
在某些匹配的标签上操作:
其他常用的比较运算符:==、!=、>、<、>=、≤。
直方图分位数
过去5分钟内,每个标签维度请求延迟的90%分位数:
只针对 method 和 path 维度的90%分位数:
Gauges 的变化
过去一小时内的绝对值变化:
基于过去4小时的数据来预测1小时后的数据:
时间
获取 Unix 时间,以秒为单位:
获取最后一次成功运行的批处理作业的年龄:
查找一小时内没有成功的批处理作业:
缺失数据处理
当输入向量为空时,创建一个一个输出序列:
当输入的范围向量5分钟内都是空的时候,创建一个空的输出序列:
标签操作
用 -
分隔符连接两个标签的值:
提取标签的一部分并将其存储在新标签中:
关于 PromQL 更多的使用方法,可以参考 PromQL 官方文档:
基础:https://prometheus.io/docs/prometheus/latest/querying/basics/
操作符:https://prometheus.io/docs/prometheus/latest/querying/operators/
函数:https://prometheus.io/docs/prometheus/latest/querying/functions/
示例:https://prometheus.io/docs/prometheus/latest/querying/examples/
最后更新于
这有帮助吗?