From 5fd7219cf494df0f30c331b5395ff6b108f1fe73 Mon Sep 17 00:00:00 2001 From: Peter Hunt Date: Thu, 28 Mar 2024 12:41:54 -0400 Subject: [PATCH] kubelet/stats: fix pid stats for cadvisor stats provider the process stats aren't correct coming from only the pod stats. They need to be summed for all of the containers, as cadvisor is only reading per pid (per container process) Signed-off-by: Peter Hunt --- pkg/kubelet/stats/cadvisor_stats_provider.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/kubelet/stats/cadvisor_stats_provider.go b/pkg/kubelet/stats/cadvisor_stats_provider.go index 1fdf6ddfda4..6413e871d5f 100644 --- a/pkg/kubelet/stats/cadvisor_stats_provider.go +++ b/pkg/kubelet/stats/cadvisor_stats_provider.go @@ -139,6 +139,8 @@ func (p *cadvisorStatsProvider) ListPodStats(_ context.Context) ([]statsapi.PodS } podStats.Containers = append(podStats.Containers, *containerStat) } + // Either way, collect process stats + podStats.ProcessStats = mergeProcessStats(podStats.ProcessStats, cadvisorInfoToProcessStats(&cinfo)) } // Add each PodStats to the result. @@ -154,7 +156,7 @@ func (p *cadvisorStatsProvider) ListPodStats(_ context.Context) ([]statsapi.PodS podStats.CPU = cpu podStats.Memory = memory podStats.Swap = cadvisorInfoToSwapStats(podInfo) - podStats.ProcessStats = cadvisorInfoToProcessStats(podInfo) + // ProcessStats were accumulated as the containers were iterated. } status, found := p.statusProvider.GetPodStatus(podUID)