Skip to content

Commit a0b161a

Browse files
authored
Merge pull request #826 from cheney-lin/dev/fix_no_pods
fix(sysadvisor): report zero resource when podList is nil
2 parents c42975d + 085f1b0 commit a0b161a

File tree

2 files changed

+63
-7
lines changed

2 files changed

+63
-7
lines changed

pkg/agent/sysadvisor/plugin/qosaware/reporter/nodemetric_reporter.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -364,10 +364,7 @@ func (p *nodeMetricsReporterPlugin) getGroupMetricInfo() ([]nodeapis.GroupMetric
364364

365365
for _, qosLevel := range qosLevels {
366366
metricInfo := *newGroupMetricInfo(qosLevel)
367-
pods, ok := qosLevel2Pods[qosLevel]
368-
if !ok || len(pods) == 0 {
369-
continue
370-
}
367+
pods := qosLevel2Pods[qosLevel]
371368
groupUsage, groupNUMAUsages, effectivePods, err := p.getGroupUsage(pods, qosLevel)
372369
if err != nil {
373370
errList = append(errList, err)
@@ -545,7 +542,10 @@ func (p *nodeMetricsReporterPlugin) getGroupUsage(pods []*v1.Pod, qosLevel strin
545542
for numaID := 0; numaID < p.metaServer.NumNUMANodes; numaID++ {
546543
resourceUsages, ok := numaUsages[numaID]
547544
if !ok {
548-
continue
545+
resourceUsages = map[v1.ResourceName]resource.Quantity{
546+
v1.ResourceCPU: *resource.NewQuantity(0, resource.DecimalSI),
547+
v1.ResourceMemory: *resource.NewQuantity(0, resource.BinarySI),
548+
}
549549
}
550550
resourceNUMAMetric := nodeapis.ResourceMetric{}
551551

pkg/agent/sysadvisor/plugin/qosaware/reporter/nodemetric_reporter_test.go

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,22 @@ func TestNodeMetricUpdate(t *testing.T) {
333333
{
334334
QoSLevel: apiconsts.PodAnnotationQoSLevelDedicatedCores,
335335
ResourceUsage: nodeapis.ResourceUsage{
336-
NUMAUsage: nil,
336+
NUMAUsage: []nodeapis.NUMAMetricInfo{
337+
{
338+
NUMAId: 0,
339+
Usage: &nodeapis.ResourceMetric{
340+
Memory: mustParse("0"),
341+
CPU: mustParse("0"),
342+
},
343+
},
344+
{
345+
NUMAId: 1,
346+
Usage: &nodeapis.ResourceMetric{
347+
Memory: mustParse("0"),
348+
CPU: mustParse("0"),
349+
},
350+
},
351+
},
337352
GenericUsage: &nodeapis.ResourceMetric{
338353
CPU: mustParse("1"),
339354
Memory: mustParse("10Gi"),
@@ -370,14 +385,55 @@ func TestNodeMetricUpdate(t *testing.T) {
370385
{
371386
QoSLevel: apiconsts.PodAnnotationQoSLevelReclaimedCores,
372387
ResourceUsage: nodeapis.ResourceUsage{
373-
NUMAUsage: nil,
388+
NUMAUsage: []nodeapis.NUMAMetricInfo{
389+
{
390+
NUMAId: 0,
391+
Usage: &nodeapis.ResourceMetric{
392+
Memory: mustParse("0"),
393+
CPU: mustParse("0"),
394+
},
395+
},
396+
{
397+
NUMAId: 1,
398+
Usage: &nodeapis.ResourceMetric{
399+
Memory: mustParse("0"),
400+
CPU: mustParse("0"),
401+
},
402+
},
403+
},
374404
GenericUsage: &nodeapis.ResourceMetric{
375405
CPU: mustParse("1"),
376406
Memory: mustParse("10Gi"),
377407
},
378408
},
379409
PodList: []string{"default/pod3"},
380410
},
411+
{
412+
QoSLevel: apiconsts.PodAnnotationQoSLevelSystemCores,
413+
ResourceUsage: nodeapis.ResourceUsage{
414+
NUMAUsage: []nodeapis.NUMAMetricInfo{
415+
{
416+
NUMAId: 0,
417+
Usage: &nodeapis.ResourceMetric{
418+
Memory: mustParse("0"),
419+
CPU: mustParse("0"),
420+
},
421+
},
422+
{
423+
NUMAId: 1,
424+
Usage: &nodeapis.ResourceMetric{
425+
Memory: mustParse("0"),
426+
CPU: mustParse("0"),
427+
},
428+
},
429+
},
430+
GenericUsage: &nodeapis.ResourceMetric{
431+
CPU: mustParse("0"),
432+
Memory: mustParse("0"),
433+
},
434+
},
435+
PodList: nil,
436+
},
381437
},
382438
},
383439
},

0 commit comments

Comments
 (0)