You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

已定义Pod标签时cAdvisor指标缺失container标签的原因排查

为什么container_spec_cpu_shares指标缺失container标签?

我们采用Victoria Metrics监控Kubernetes工作负载,抓取cAdvisor指标的Job配置如下:

- job_name: 'kubernetes-cadvisor'
  kubernetes_sd_configs:
  - role: node
  scheme: https
  metrics_path: /metrics/cadvisor
  tls_config:
    ca_file: $SVC_CA_CERT_PATH
    insecure_skip_verify: true
  bearer_token_file: $SVC_TOKEN_FILE_PATH

我们在Grafana中配置了多组过滤器,依赖container_cpu_usage_seconds_total指标的container和pod标签实现多环境、多集群的应用性能观测,但发现container_spec_cpu_shares指标中缺失container标签,请问原因是什么?


原因分析

  • cAdvisor指标生成逻辑差异:container_cpu_usage_seconds_total是容器运行时的实时指标,cAdvisor会为每个容器实例明确打上container标签;而container_spec_cpu_shares属于容器规格配置类指标,在节点级采集场景下,部分场景(如系统容器、未关联Pod的容器)的这类指标不会自动关联container标签。
  • 采集配置的维度限制:当前Job使用role: node的Kubernetes服务发现,采集的是节点级cAdvisor端点,部分规格类指标会以节点维度聚合输出,没有细化到单个容器的标签关联。对比运行时指标,规格类指标的标签生成逻辑更依赖容器与Pod的关联状态。
  • cAdvisor版本或内置规则差异:不同版本的cAdvisor对标签的处理逻辑有区别,旧版本中container_spec_cpu_shares仅会给关联到业务Pod的容器打上container标签,系统容器(如pause容器、kubelet相关容器)的该指标不会携带container标签。

内容的提问来源于stack exchange,提问作者pragmaticEngineer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 08:40:02