查询结果删除某些指标
without
without 属于聚合查询的子句,必须在聚合查询中使用
语法:
bash
|
|
可以看到属于 <aggr-op>
例如
text
|
|
ignoring
ignoring 属于 “向量匹配” (Vector matching) 关键词,可以在 一对多,和多对多查询中使用
语法
bash
|
|
例如
bash
|
|
与查询
可以查询满足多个条件的指标,例如下列是查询 jvm 内存 $\frac{used}{committed} > 80%$ 并且 Pod WSS 使用大于 80% 的指标
promql
|
|
向量查询
向量查询关键词为 on
和 ignoring
on 仅考虑表达式内提供的标签相同的,ignoring 允许在匹配时间序列时忽略指定的标签。
语法
一对一
bash
|
|
多对一或一对多
bash
|
|
向量查询的高级用法
通过一个 metrcs 上的 label 的值去查询另外一个 metric 上这个标签的值
bash
|
|
查询不同标签上的相同标签值的内容,例如,我想通过 **jvm_memory_used_bytes **指标上 pod label 为 “aaaa” 的 label,去查询 container_memory_rss 上 container label 为 “aaaa” 的指标内容,这个时候可以使用 label_replace 来重写不同的 label 为相同的值,on() 函数中添加相同指标的值即可完成查询。
如下所示
promeql
sum without(
node,instance,job,name,id,image,metrics_path,endpoint,service,pod)(
label_replace(
container_memory_rss{container=~".*$module.*",}
,"ints","$1","pod", "(.*)"
)
)
!= on(ints)
group_left()
sum by(ints)
(sum without (job,pod,container) (
label_replace(
jvm_memory_used_bytes{instance="$instance"}
,"ints","$1","pod", "(.*)"
)
)
)