Nrehearsal container_cpu_usage_seconds_total是该容器服务针对每个CPU累计消耗的CPU时间。如果有多个CPU,则总的CPU时间需要把各个CPU耗费的时间相加,你给的应该不是CPU使用率,我个人理解,我现在使用的方法是sum(rate(container_cpu_usage_seconds_total{namespace=“demo”, image!="", container_name!=“POD”}[2m])) by (pod,namespace) / sum(kube_pod_container_resource_limits_cpu_cores{namespace=“demo”,pod!="",container!=“POD”,container!=""}) by (pod,namespace)!= +inf >= 0.85
从网上看到很多文章需要/container_spec_cpu_quota:container的配额,为容器指定的CPU个数*100000
语句为sum(rate(container_cpu_usage_seconds_total{image!="",container!="POD",container!=""}[1m])) by (pod,namespace) / (sum(container_spec_cpu_quota{image!="",container!="POD",container!=""}/100000) by (pod,namespace)) * 100
我也没有办法确认那个是正确的,但是我的ks prom是没有办法获取到container_spec_cpu_quota的数据的,所有使用了我上面的方式作为告警策略