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

在ProMQ中,如何在一段时间间隔(比如30天)内获得kubernetes中pod的最大cpu使用率?,kubernetes,prometheus,promql,prometheus-operator,Kubernetes,Prometheus,Promql,Prometheus Operator,我试图估计资源(cpu)请求和限制值,我想知道最近一个月使用普罗米修斯的pod的最大cpu使用量 我检查了这个问题,但没有得到我想要的 我试过了,但似乎max_over_time并没有超负荷工作 max ( max_over_time( rate( container_cpu_usage_seconds_total[5m] )[30d] ) ) by (pod_name) 无效参数“query”:char 64处的分析错误:范围规范前面必须有一个度量选择

我试图估计资源(cpu)请求和限制值,我想知道最近一个月使用普罗米修斯的pod的最大cpu使用量

我检查了这个问题,但没有得到我想要的

我试过了,但似乎max_over_time并没有超负荷工作

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

无效参数“query”:char 64处的分析错误:范围规范前面必须有一个度量选择器,但后面跟着一个*promql.Call

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

然后使用此新的时间序列计算随时间变化的最大值:

max (  
  max_over_time(container_cpu_usage_seconds_total:rate5m[30d])
) by (pod_name)
这仅在2.7之前的普罗米修斯版本中需要,请参见


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

请尝试以下方法:


max\u over\u time(总和(速率(容器cpu使用量秒数){pod=“pod-name-here-759b8f”,容器名称!=“pod”,容器名称!=”}[1m])[720h:1s])

你的普罗米修斯版本是什么?
max (  
  max_over_time(container_cpu_usage_seconds_total:rate5m[30d])
) by (pod_name)