概述
对容器中的服务进行监控,常见方案是采用Prometheus+grafana。其中对容器服务的CPU的监控有一组指标,本文对它们进行了一些分析和解读,并做了一些试验。
查看cAdvisor输出的容器CPU监控指标
我们使用kubernetes进行管理,自带了容器监控cAdvisor exporter,可以直接通过页面查看监控指标,例如直接访问一台IP为172.18.12.188的node节点:
http://172.18.12.188:4194/metrics
直接在页面中搜索以 container_cpu 开头的指标,如下表所示:
| 名称 | 类型 | 单位 | 说明 |
|---|---|---|---|
| container_cpu_usage_seconds_total | counter | 秒数 |
该容器服务针对每个CPU累计消耗的CPU时间。如果有多个CPU,则总的CPU时间需要把各个CPU耗费的时间相加 |
| container_cpu_user_seconds_total | counter | 秒数 |
该容器服务累计消耗的用户(user)CPU时间 |
| container_cpu_system_seconds_total | counter | 秒数 |
该容器服务累计消耗的系统(system)CPU时间 |
| container_cpu_cfs_throttled_seconds_total | counter | 秒数 |
cfs 是完全公平调度器(Completely Fair Scheduler)的缩写,是Linux的一种控制CPU资源占用的机制,可以按指定比例分配调度CPU 的使用时间。这个指标指的是该容器服务被限制使用的CPU时间 |
| container_cpu_cfs_throttled_periods_total | counter |

本文详细介绍了如何通过Prometheus+Grafana监控cAdvisor输出的容器CPU指标,包括如何查看cAdvisor的监控数据,如何在Grafana中配置查询,以及对`container_cpu_usage_seconds_total`和`container_cpu_user_seconds_total`指标的解读。通过实例展示了如何验证CPU使用限制的有效性,并提供了监控总结和指标使用的建议。
最低0.47元/天 解锁文章
3182





