写点什么

Prometheus 查询操作符(四) 示例合集

用户头像
耳东@Erdong
关注
发布于: 刚刚

前边说了很多查询的操作符,现在我们集中来看一些例子。

运算操作符

#算数操作符+ (加法) - (减法)* (乘法)/ (除法)% (求余)^ (幂运算)
复制代码


上边基本都是常规的运算,幂运算比较少用,我们看一下幂运算


比如下列指标 的值为 5


process_open_fds
复制代码


我们来求一下 3 次方,也就是 3 次幂 ,最后的结果是 125 。


process_open_fds ^ 3 
复制代码

比较运算符

== (等于)!= (不等于)>  (大于)<  (小于)>= (大于等于)<= (小于等于
复制代码


这些运算符大部分是单独使用,个别情况下可以同时使用,类似大于小于这种情况可以同时使用,枚举一下大约是这么几种情况,其他情况下存在冲突。


> 、 <
>= 、 <
> 、 <=
复制代码


比如


process_open_fds > 3 and process_open_fds < 7
复制代码

聚合运算符

sum  #求和min  #最小值max  #最大值avg  #平均值count   #元素个数count_values  #等于某值的元素个数bottomk   #最小的 k 个元素topk      #最大的 k 个元素
复制代码


这些函数适合于这个语法


<聚合函数>([parameter,] <指标查询语句>) [without|by (<label list>)]
复制代码


without⽤于从计算结果中移除列举的标签,⽽保留其它标签。


by 则正好相反,结果向量中只保留列出的标签,其余标签则移除。


通过withoutby可以根据指标的 label 对数据进⾏聚合。


其中只有 count_values , quantile , topk , bottomk ⽀持参数(parameter)。


sum 、max、min、avg 这些都是常见的聚合函数了,我们一起举例就好。


sum(http_request_total)max(http_request_total)min(http_request_total)avg(http_request_total)
复制代码


对这些指标使用 withoutby 就是这样,


sum(http_request_total) without (instance, job)

sum(http_request_total) by (instance, job)
复制代码


count 是统计指标数值的个数, count_values 是统计含有某个参数或值的数量。


比如


# 统计文件打开数的值的个数count(process_open_fds)
# 统计 Instance 有多少个值。count_values("instance",process_open_fds)
复制代码


bottomk 和 topk


# 最小的 5 个值bottomk(5,  process_open_fds)# 最大的 5 个值,Top 5topk(5, process_open_fds)
复制代码


发布于: 刚刚阅读数: 2
用户头像

耳东@Erdong

关注

还未添加个人签名 2020.05.24 加入

主要研究分享运维技术,专注于监控、CICD、操作系统、云原生领域,公众号【耳东学堂】,知识星球同名,坚持原创,希望能和大家在运维路上结伴而行 邮箱:erdong@mail.erdong.site

评论

发布
暂无评论
Prometheus 查询操作符(四) 示例合集