有人知道如何将查询结果与某个值进行比较吗?例如,我有这样的查询:
fetch k8s_container
| { metric 'kubernetes.io/container/cpu/core_usage_time'
| filter
(metadata.user_labels.project =~ '.*')
| align rate(1m)
| every 1m
| group_by [resource.container_name],[value_core_usage_time_aggregate: aggregate(value.core_usage_time)];
metric 'kubernetes.io/container/cpu/limit_cores'
| filter
(metadata.user_labels.project =~ '.*')
| group_by 1m, [value_limit_cores_mean: mean(value.limit_cores)]
| every 1m }
| outer_join 0
| div
我只想得到那些大于0.5的结果。我该怎么做?
使用PromQL很容易,就像一样
some_metric/other_metric > 0.5
甚至布尔结果
some_metric/other_metric > 0.5
此查询返回0或1。
但有了GKE指标,一点都不容易
您可能正在寻找类似gt函数的东西。
它应该像使用gt(val(((一样简单。
最后,我用下一个查询解决了这个问题
fetch k8s_node
| {
t_0:
metric 'kubernetes.io/node/ephemeral_storage/used_bytes'
| group_by 1m, [value_used_bytes_mean: mean(value.used_bytes)]
| every 1m
; t_1:
metric 'kubernetes.io/node/ephemeral_storage/total_bytes'
| group_by 1m, [value_total_bytes_mean: mean(value.total_bytes)]
| every 1m
}
| outer_join 0
| value val(0)/val(1)
| map rename[node : resource.node_name]