CPU使用率
指标名称:container_cpu_usage_seconds_total
容器CPU使用率计算公式详解
注:container_cpu_usage_seconds_total得到的并不是容器的CPU使用率,待我们一层层分析。
第一步:
http://10.4.**.***:31263/api/v1/query?query=container_cpu_usage_seconds_total{image!="",container_name!="POD",namespace="default"}
注:命名空间default下有两个Pod,分别为Pod1和Pod2。
上面的表达式查询出两组数据,分别为pod_name="Pod1"和pod_name=“Pod2”。每组数据都包含一个值,没有时间戳,默认为当前时间。
第二步:
http://10.4.**.***:31263/api/v1/query_range?query=container_cpu_usage_seconds_total{image!="",container_name!="POD",namespace="default"}[30s]
注1:将调用的接口从query变为query_range。
注2:Prometheus配置文件中将采集周期定义为15s,这里的[30s]表示过去30s的所有值。此时Pod1和Pod2分别对应两组数据。每组数据中包含一个时间戳和一个该时间戳下的value值。同理,45s对应三组数据。
第三步:
http://10.4.**.***:31263/api/v1/query_range?query=rate(container_cpu_usage_seconds_total{image!="",container_name!="POD",namespace="default"}[1m])
注:对每组过去1分钟的数据做计算,此时Pod1和Pod2分别对应一组数据,rate将每组数据中多个时间戳对应的数据聚合起来。
第四步:
http://10.4.**.***:31263/api/v1/query_range?query=sum(rate(container_cpu_usage_seconds_total{image!="",container_name!="POD",namespace="default"}[1m]))
注:对两个Pod的数据进行聚合,此时一共只有一组数据。
第五步: