From ccec4f968639988c1274dcbb7b7cacfb733c5921 Mon Sep 17 00:00:00 2001 From: "lihonghao.314" Date: Wed, 12 Feb 2025 15:48:47 +0800 Subject: [PATCH] feat(sysadvisor): add ignore check in borwein --- .../latencyregression/latency_regression.go | 5 +++ .../latency_regression_test.go | 36 ++++++++++++------- 2 files changed, 29 insertions(+), 12 deletions(-) diff --git a/pkg/agent/sysadvisor/plugin/inference/modelresultfetcher/borwein/latencyregression/latency_regression.go b/pkg/agent/sysadvisor/plugin/inference/modelresultfetcher/borwein/latencyregression/latency_regression.go index e880e65d3..57850e020 100644 --- a/pkg/agent/sysadvisor/plugin/inference/modelresultfetcher/borwein/latencyregression/latency_regression.go +++ b/pkg/agent/sysadvisor/plugin/inference/modelresultfetcher/borwein/latencyregression/latency_regression.go @@ -31,6 +31,8 @@ import ( type LatencyRegression struct { PredictValue float64 `json:"predict_value"` EquilibriumValue float64 `json:"equilibrium_value"` + // Ignore is used to ignore the result of this container + Ignore bool `json:"ignore"` } func GetLatencyRegressionPredictResult(metaReader metacache.MetaReader) (map[string]map[string]*LatencyRegression, int64, error) { @@ -60,6 +62,9 @@ func GetLatencyRegressionPredictResult(metaReader metacache.MetaReader) (map[str general.Errorf("invalid generic output: %s for %s", result.GenericOutput, inferenceResultKey) return } + if specificResult.Ignore { + return + } if ret[podUID] == nil { ret[podUID] = make(map[string]*LatencyRegression) diff --git a/pkg/agent/sysadvisor/plugin/inference/modelresultfetcher/borwein/latencyregression/latency_regression_test.go b/pkg/agent/sysadvisor/plugin/inference/modelresultfetcher/borwein/latencyregression/latency_regression_test.go index 42e47f87a..fa8bcc930 100644 --- a/pkg/agent/sysadvisor/plugin/inference/modelresultfetcher/borwein/latencyregression/latency_regression_test.go +++ b/pkg/agent/sysadvisor/plugin/inference/modelresultfetcher/borwein/latencyregression/latency_regression_test.go @@ -32,19 +32,33 @@ import ( func TestGetLatencyRegressionPredictValue(t *testing.T) { t.Parallel() timeNow := time.Now().Unix() - res := &LatencyRegression{ + res1 := &LatencyRegression{ PredictValue: 0.6, EquilibriumValue: 0.1, + Ignore: false, } - bs, _ := json.Marshal(res) + bs1, _ := json.Marshal(res1) + res2 := &LatencyRegression{ + PredictValue: 0.7, + EquilibriumValue: 0.1, + Ignore: true, + } + bs2, _ := json.Marshal(res2) reader := metacache.NewDummyMetaCacheImp() _ = reader.SetInferenceResult(borweinutils.GetInferenceResultKey(borweinconsts.ModelNameBorweinLatencyRegression), &borweintypes.BorweinInferenceResults{ Timestamp: timeNow, Results: map[string]map[string][]*borweininfsvc.InferenceResult{ - "test": { + "test1": { + "test": []*borweininfsvc.InferenceResult{ + { + GenericOutput: string(bs1), + }, + }, + }, + "test2": { "test": []*borweininfsvc.InferenceResult{ { - GenericOutput: string(bs), + GenericOutput: string(bs2), }, }, }, @@ -57,13 +71,13 @@ func TestGetLatencyRegressionPredictValue(t *testing.T) { name string args args want map[string]map[string]*LatencyRegression - want1 int64 + wantTs int64 wantErr bool }{ { name: "GetLatencyRegressionPredictValue failed", want: nil, - want1: 0, + wantTs: 0, wantErr: true, }, { @@ -72,14 +86,15 @@ func TestGetLatencyRegressionPredictValue(t *testing.T) { metaReader: reader, }, want: map[string]map[string]*LatencyRegression{ - "test": { + "test1": { "test": &LatencyRegression{ PredictValue: 0.6, EquilibriumValue: 0.1, + Ignore: false, }, }, }, - want1: timeNow, + wantTs: timeNow, wantErr: false, }, } @@ -87,7 +102,7 @@ func TestGetLatencyRegressionPredictValue(t *testing.T) { curTT := tt t.Run(curTT.name, func(t *testing.T) { t.Parallel() - got, got1, err := GetLatencyRegressionPredictResult(curTT.args.metaReader) + got, _, err := GetLatencyRegressionPredictResult(curTT.args.metaReader) if (err != nil) != curTT.wantErr { t.Errorf("GetLatencyRegressionPredictResult() error = %v, wantErr %v", err, curTT.wantErr) return @@ -95,9 +110,6 @@ func TestGetLatencyRegressionPredictValue(t *testing.T) { if !reflect.DeepEqual(got, curTT.want) { t.Errorf("GetLatencyRegressionPredictResult() got = %v, want %v", got, curTT.want) } - if got1 != curTT.want1 { - t.Errorf("GetLatencyRegressionPredictResult() got1 = %v, want %v", got1, curTT.want1) - } }) } }