如何修改PromQL语句仅获取单条最高CPU负载实例结果?
解决PromQL返回多条最高CPU实例的问题
问题原因
你当前使用的topk(1, ...)返回多条结果,是因为存在多个匹配processing.+规则的实例,它们的平均CPU负载并列最高。topk函数会返回所有值并列在前N位的样本,而非仅返回其中一个。
修改后的PromQL语句
head(1, sort_desc(avg by (instance) (100 * (1 - rate(node_cpu_seconds_total{cluster="$cluster",mode="idle", instance=~"processing.+"}[1m])))))
语句说明
avg by (instance):按实例维度聚合,计算每个实例的平均CPU使用率(原公式逻辑保持不变)sort_desc(...):将所有实例的CPU使用率按降序排列head(1):仅保留排序后的第一个结果,确保无论有多少个并列最高的实例,最终只返回一条符合要求的结果
内容的提问来源于stack exchange,提问作者Jeroen.
相关产品推荐
相关产品推荐

