gpt4 book ai didi

kubernetes - 如何在 promql 的时间间隔(比如 30 天)内获得 kubernetes 中 pod 的最大 cpu 使用率?

转载 作者:行者123 更新时间:2023-12-02 11:34:20 26 4
gpt4 key购买 nike

我正在尝试估算资源 (cpu) 请求和限制值,为此我想知道过去一个月使用 prometheus 的 pod 的最大 cpu 使用率。

我检查了这个问题,但无法得到我想要的Generating range vectors from return values in Prometheus queries

我试过了,但 max_over_time 似乎没有超过速率

max (  
max_over_time(
rate(
container_cpu_usage_seconds_total[5m]
)[30d]
)
) by (pod_name)

无效参数“query”:字符 64 处的解析错误:范围规范必须在度量选择器之前,但在 *promql.Call 之后

最佳答案

您需要将内部表达式(容器 CPU 使用率)捕获为 recording rule :

- record: container_cpu_usage_seconds_total:rate5m
expr: rate(container_cpu_usage_seconds_total[5m])

然后使用这个新的时间序列来计算 max_over_time:

max (  
max_over_time(container_cpu_usage_seconds_total:rate5m[30d])
) by (pod_name)

这仅在 Prometheus 2.7 之前的版本中需要,如 subqueries can be calculated on the fly , 请参阅 this blog post for more details .

请记住,如果您打算使用此复合查询(过去 30 天内收集的最多 max_per_time 数据)进行警报或可视化(而不是一次性查询),那么您仍然希望使用记录规则来提高查询的性能。这是经典的 CS 计算复杂性权衡(将记录规则存储为单独的时间序列所需的内存/存储空间与处理 30 天数据所需的计算资源!)

关于kubernetes - 如何在 promql 的时间间隔(比如 30 天)内获得 kubernetes 中 pod 的最大 cpu 使用率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58747562/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com