引言
工作许久,每日忙于各种事务,因为很少进行总结和回顾,导致知识面和技能不够体系化。期望能通过记录日常问题排查,技术学习的点点滴滴,来帮助自己体系化的构筑自己的知识仓库,同时,如果能帮助到他人,也是一件令人开心的事。
正文
问题
有同事反馈在所有Kubernetes配置都一样的情况下,镜像不同,grafana中(数据源是prometheus)查看pod的指标container_cpu_usage_seconds_total,会出现label不一致的情况,有一个pod多了一些没见过的label,缺少了一些基本label。
排查过程
按本人理解,prometheus的metric采集可以分为指标生成、指标上报、指标处理三个阶段,所以按这个顺序进行排查。
因为container_cpu_usage_seconds_total是cadvisor的指标,而kubelet是负责初始化的,所以查看kubelet的代码:
看到函数NewPrometheusCollector,那可以继续追踪这个函数