Skip to content

Commit 27fa59a

Browse files
authored
Merge pull request kubernetes#125656 from gyuho/recent-stats-check-error-for-error-level-logging
feat(kubelet/stats): match cadvisor error to lower not found stats log level
2 parents f2428d6 + ac992f9 commit 27fa59a

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

pkg/kubelet/server/stats/summary_sys_containers.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,11 @@ limitations under the License.
2020
package stats
2121

2222
import (
23+
"errors"
24+
2325
"k8s.io/klog/v2"
2426

27+
cadvisormemory "github.com/google/cadvisor/cache/memory"
2528
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2629
statsapi "k8s.io/kubelet/pkg/apis/stats/v1alpha1"
2730
"k8s.io/kubernetes/pkg/kubelet/cm"
@@ -80,7 +83,11 @@ func (sp *summaryProviderImpl) GetSystemContainersCPUAndMemoryStats(nodeConfig c
8083
}
8184
s, err := sp.provider.GetCgroupCPUAndMemoryStats(cont.name, cont.forceStatsUpdate)
8285
if err != nil {
83-
klog.ErrorS(err, "Failed to get system container stats", "containerName", cont.name)
86+
if errors.Is(err, cadvisormemory.ErrDataNotFound) {
87+
klog.V(4).InfoS("cgroup stats not found in memory cache", "containerName", cont.name)
88+
} else {
89+
klog.ErrorS(err, "Failed to get system container stats", "containerName", cont.name)
90+
}
8491
continue
8592
}
8693
s.Name = sys

pkg/kubelet/stats/cadvisor_stats_provider.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,7 @@ func getCadvisorContainerInfo(ca cadvisor.Interface) (map[string]cadvisorapiv2.C
499499
// response.
500500
klog.ErrorS(err, "Partial failure issuing cadvisor.ContainerInfoV2")
501501
} else {
502-
return nil, fmt.Errorf("failed to get root cgroup stats: %v", err)
502+
return nil, fmt.Errorf("failed to get root cgroup stats: %w", err)
503503
}
504504
}
505505
return infos, nil

pkg/kubelet/stats/helper.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -318,7 +318,7 @@ func getCgroupInfo(cadvisor cadvisor.Interface, containerName string, updateStat
318318
MaxAge: maxAge,
319319
})
320320
if err != nil {
321-
return nil, fmt.Errorf("failed to get container info for %q: %v", containerName, err)
321+
return nil, fmt.Errorf("failed to get container info for %q: %w", containerName, err)
322322
}
323323
if len(infoMap) != 1 {
324324
return nil, fmt.Errorf("unexpected number of containers: %v", len(infoMap))

pkg/kubelet/stats/provider.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,10 @@ package stats
1818

1919
import (
2020
"context"
21+
"errors"
2122
"fmt"
2223

24+
cadvisormemory "github.com/google/cadvisor/cache/memory"
2325
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2426
"k8s.io/apimachinery/pkg/types"
2527
internalapi "k8s.io/cri-api/pkg/apis"
@@ -113,6 +115,9 @@ func (p *Provider) RlimitStats() (*statsapi.RlimitStats, error) {
113115
func (p *Provider) GetCgroupStats(cgroupName string, updateStats bool) (*statsapi.ContainerStats, *statsapi.NetworkStats, error) {
114116
info, err := getCgroupInfo(p.cadvisor, cgroupName, updateStats)
115117
if err != nil {
118+
if errors.Is(err, cadvisormemory.ErrDataNotFound) {
119+
return nil, nil, fmt.Errorf("cgroup stats not found for %q: %w", cgroupName, cadvisormemory.ErrDataNotFound)
120+
}
116121
return nil, nil, fmt.Errorf("failed to get cgroup stats for %q: %v", cgroupName, err)
117122
}
118123
// Rootfs and imagefs doesn't make sense for raw cgroup.
@@ -126,6 +131,9 @@ func (p *Provider) GetCgroupStats(cgroupName string, updateStats bool) (*statsap
126131
func (p *Provider) GetCgroupCPUAndMemoryStats(cgroupName string, updateStats bool) (*statsapi.ContainerStats, error) {
127132
info, err := getCgroupInfo(p.cadvisor, cgroupName, updateStats)
128133
if err != nil {
134+
if errors.Is(err, cadvisormemory.ErrDataNotFound) {
135+
return nil, fmt.Errorf("cgroup stats not found for %q: %w", cgroupName, cadvisormemory.ErrDataNotFound)
136+
}
129137
return nil, fmt.Errorf("failed to get cgroup stats for %q: %v", cgroupName, err)
130138
}
131139
// Rootfs and imagefs doesn't make sense for raw cgroup.

0 commit comments

Comments
 (0)