@@ -97,6 +97,10 @@ type fakeClusterState struct {
9797}
9898
9999func (cs * fakeClusterState ) AddSample (sample * model.ContainerUsageSampleWithKey ) error {
100+ _ , podExists := cs .stubbedPods [sample .Container .PodID ]
101+ if ! podExists {
102+ return model .NewKeyError (sample .Container .PodID )
103+ }
100104 samplesForContainer := cs .addedSamples [sample .Container ]
101105 cs .addedSamples [sample .Container ] = append (samplesForContainer , sample )
102106 return nil
@@ -651,6 +655,27 @@ func TestClusterStateFeeder_LoadRealTimeMetrics(t *testing.T) {
651655 samplesForContainer2 := clusterState .addedSamples [regularContainer2 ]
652656 assert .Contains (t , samplesForContainer2 , regularContainer2UsageSamples [0 ])
653657 assert .Contains (t , samplesForContainer2 , regularContainer2UsageSamples [1 ])
658+
659+ // Add extra container metrics for which there are no added pods to the state to simulate memory-saver=true
660+ extraPodID := model.PodID {Namespace : namespaceName , PodName : "ExtraPod" }
661+ extraContainer := model.ContainerID {PodID : extraPodID , ContainerName : "ExtraContainer" }
662+ extraContainerMetricsSnapshot , _ := newContainerMetricsSnapshot (extraContainer , 200 , 2048 )
663+ containerMetricsSnapshots = append (containerMetricsSnapshots , extraContainerMetricsSnapshot )
664+
665+ clusterState = NewFakeClusterState (nil , pods )
666+
667+ feeder = clusterStateFeeder {
668+ memorySaveMode : true ,
669+ clusterState : clusterState ,
670+ metricsClient : fakeMetricsClient {snapshots : containerMetricsSnapshots },
671+ }
672+
673+ feeder .LoadRealTimeMetrics (tctx )
674+
675+ assert .Equal (t , 2 , len (clusterState .addedSamples ))
676+
677+ _ , samplesForExtraContainerExist := clusterState .addedSamples [extraContainer ]
678+ assert .False (t , samplesForExtraContainerExist )
654679}
655680
656681type fakeHistoryProvider struct {
0 commit comments