首页/云/可观测性速查/cAdvisor:容器资源指标采集
Prometheus 与采集64 条

cAdvisor:容器资源指标采集

cAdvisor 采集容器的 CPU、内存、网络与文件系统指标,Kubernetes 中作为内置组件集成;常用指标 container_cpu_usage_seconds_total、container_memory_working_set_bytes。

可观测性速查云更新于 2026-10-13

cAdvisor 是什么

cAdvisor 采集容器的 CPU、内存、网络与文件系统指标,读取的是 cgroup 数据,因此在 Kubernetes 里能直接反映容器真实用量。它通常由 kubelet 内置暴露,或用 DaemonSet 单独部署,并用 container_cpu_usage_seconds_total、container_memory_working_set_bytes 等指标喂给 Prometheus。它只答「用了多少」,不答「对象是什么状态」。

基本信息

指标来源cgroup 统计(容器维度)
典型部署kubelet 内置 / DaemonSet
暴露端口默认 8080(版本与部署方式相关)
关键指标CPU 累计秒、工作集内存、网络与磁盘 IO
常用过滤container!="" 去掉 Pod 级汇总行
与 KSM 分工cAdvisor 管用量,KSM 管对象状态

典型使用场景

  • 查看各容器 CPU 与内存实际用量,评估 requests/limits 是否合理
  • 定位内存持续增长的工作负载,判断是否存在泄漏
  • 用 OOM 事件计数发现被反复杀掉的容器
  • 对比 limit 与实际用量,为扩缩容与配额调整提供依据
  • 监控容器网络与磁盘 IO,找出异常流量或写放大
  • 在节点资源紧张时按容器归因,确定谁在挤占资源

容器 CPU 与内存查询

容器 CPU 与内存查询
# 容器 CPU 核数(近 5 分钟平均)
sum by (container) (rate(container_cpu_usage_seconds_total{container!=""}[5m]))

# 工作集内存
sum by (container) (container_memory_working_set_bytes{container!=""})

# OOM 事件计数
container_oom_events_total

# 内存使用率(对照限制值)
container_memory_working_set_bytes{container!=""} / on (container) container_spec_memory_limit_bytes

关键指标读法

指标含义异常信号
container_cpu_usage_seconds_totalCPU 累计秒rate 后接近 limit 说明受限
container_memory_working_set_bytes工作集内存逼近 limit 有 OOM 风险
container_memory_rss常驻内存持续增长疑似泄漏
container_oom_events_totalOOM 事件数增长说明容器被反复杀掉
container_network_receive_bytes_total网络接收字节突增需排查流量来源
container 标签为空的行通常是 Pod 级汇总,聚合时过滤 container!="" 更准确,否则会把汇总行与容器行重复计入。
内存判断要区分工作集与限制值:working_set 更贴近「实际压力」,usage 含可回收的缓存,两者口径不同。
容器重建后标签变化会让曲线断档,长期观察按工作负载(deployment/statefulset)归一化比按容器 ID 更实用。
CPU throttle 指标能直接说明容器是否被限制:持续非零说明 limit 偏紧,比单看使用率更有说服力。
不同部署方式下指标名与标签有差异(kubelet 内置与独立 DaemonSet 不完全一致),接入前先用 Prometheus 的指标浏览核对。

易错点

  • working_set 与 usage 口径不同,内存告警前先对照 cgroup 限制值,否则阈值没有意义
  • 容器重建后标签变化会造成曲线断档,展示时考虑按工作负载归一化
  • 不过滤 container!="" 会把 Pod 级汇总行混入聚合,数值明显偏大
  • CPU 用累计秒必须 rate 才有意义,直接看原始值会把「运行久」误判为「用得多」
  • cAdvisor 只给用量不给状态,副本与就绪判断要转向 kube-state-metrics
  • 节点级指标与容器级指标混在一起聚合会重复计算,按指标来源分组再展示

数据来源与参考

  • cAdvisor 项目文档
  • Kubernetes 文档 · 资源指标管道
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌