@@ -22,6 +22,8 @@ import (
2222 "time"
2323
2424 "github.com/kubewharf/katalyst-core/pkg/agent/sysadvisor/metacache"
25+ "github.com/kubewharf/katalyst-core/pkg/agent/sysadvisor/plugin/inference/modelinputfetcher"
26+ genericinput "github.com/kubewharf/katalyst-core/pkg/agent/sysadvisor/plugin/inference/modelinputfetcher/generic"
2527 "github.com/kubewharf/katalyst-core/pkg/agent/sysadvisor/plugin/inference/modelresultfetcher"
2628 borweinfetcher "github.com/kubewharf/katalyst-core/pkg/agent/sysadvisor/plugin/inference/modelresultfetcher/borwein"
2729 "github.com/kubewharf/katalyst-core/pkg/agent/sysadvisor/types"
@@ -31,6 +33,13 @@ import (
3133 metricspool "github.com/kubewharf/katalyst-core/pkg/metrics/metrics-pool"
3234)
3335
36+ func NewNilModelInputFetcher (fetcherName string , conf * config.Configuration , extraConf interface {},
37+ emitterPool metricspool.MetricsEmitterPool , metaServer * metaserver.MetaServer ,
38+ metaCache metacache.MetaCache ,
39+ ) (modelinputfetcher.ModelInputFetcher , error ) {
40+ return nil , nil
41+ }
42+
3443func NewNilModelResultFetcher (fetcherName string , conf * config.Configuration , extraConf interface {},
3544 emitterPool metricspool.MetricsEmitterPool , metaServer * metaserver.MetaServer ,
3645 metaCache metacache.MetaCache ,
@@ -68,6 +77,10 @@ func TestNewInferencePlugin(t *testing.T) {
6877 },
6978 }
7079
80+ modelinputfetcher .RegisterModelInputFetcherInitFunc (genericinput .GenericModelInputFetcherName ,
81+ modelinputfetcher .NewDummyModelInputFetcher )
82+ modelinputfetcher .RegisterModelInputFetcherInitFunc ("test-nil-fetcher" ,
83+ NewNilModelInputFetcher )
7184 modelresultfetcher .RegisterModelResultFetcherInitFunc (borweinfetcher .BorweinModelResultFetcherName ,
7285 modelresultfetcher .NewDummyModelResultFetcher )
7386 modelresultfetcher .RegisterModelResultFetcherInitFunc ("test-nil-fetcher" ,
@@ -91,6 +104,7 @@ func TestInferencePlugin_Run(t *testing.T) {
91104 type fields struct {
92105 name string
93106 period time.Duration
107+ modelsInputFetchers map [string ]modelinputfetcher.ModelInputFetcher
94108 modelsResultFetchers map [string ]modelresultfetcher.ModelResultFetcher
95109 metaServer * metaserver.MetaServer
96110 emitter metrics.MetricEmitter
@@ -110,6 +124,9 @@ func TestInferencePlugin_Run(t *testing.T) {
110124 fields : fields {
111125 name : types .AdvisorPluginNameInference ,
112126 period : 5 * time .Second ,
127+ modelsInputFetchers : map [string ]modelinputfetcher.ModelInputFetcher {
128+ "test" : modelinputfetcher.DummyModelInputFetcher {},
129+ },
113130 modelsResultFetchers : map [string ]modelresultfetcher.ModelResultFetcher {
114131 "test" : modelresultfetcher.DummyModelResultFetcher {},
115132 },
@@ -128,6 +145,7 @@ func TestInferencePlugin_Run(t *testing.T) {
128145 infp := & InferencePlugin {
129146 name : tt .fields .name ,
130147 period : tt .fields .period ,
148+ modelsInputFetchers : tt .fields .modelsInputFetchers ,
131149 modelsResultFetchers : tt .fields .modelsResultFetchers ,
132150 metaServer : tt .fields .metaServer ,
133151 metricEmitter : tt .fields .emitter ,
@@ -145,6 +163,7 @@ func TestInferencePlugin_Name(t *testing.T) {
145163 type fields struct {
146164 name string
147165 period time.Duration
166+ modelsInputFetchers map [string ]modelinputfetcher.ModelInputFetcher
148167 modelsResultFetchers map [string ]modelresultfetcher.ModelResultFetcher
149168 metaServer * metaserver.MetaServer
150169 emitter metrics.MetricEmitter
@@ -161,6 +180,9 @@ func TestInferencePlugin_Name(t *testing.T) {
161180 fields : fields {
162181 name : types .AdvisorPluginNameInference ,
163182 period : 5 * time .Second ,
183+ modelsInputFetchers : map [string ]modelinputfetcher.ModelInputFetcher {
184+ "test" : modelinputfetcher.DummyModelInputFetcher {},
185+ },
164186 modelsResultFetchers : map [string ]modelresultfetcher.ModelResultFetcher {
165187 "test" : modelresultfetcher.DummyModelResultFetcher {},
166188 },
@@ -178,6 +200,7 @@ func TestInferencePlugin_Name(t *testing.T) {
178200 infp := & InferencePlugin {
179201 name : tt .fields .name ,
180202 period : tt .fields .period ,
203+ modelsInputFetchers : tt .fields .modelsInputFetchers ,
181204 modelsResultFetchers : tt .fields .modelsResultFetchers ,
182205 metaServer : tt .fields .metaServer ,
183206 metricEmitter : tt .fields .emitter ,
@@ -196,6 +219,7 @@ func TestInferencePlugin_Init(t *testing.T) {
196219 type fields struct {
197220 name string
198221 period time.Duration
222+ modelsInputFetchers map [string ]modelinputfetcher.ModelInputFetcher
199223 modelsResultFetchers map [string ]modelresultfetcher.ModelResultFetcher
200224 metaServer * metaserver.MetaServer
201225 emitter metrics.MetricEmitter
@@ -212,6 +236,9 @@ func TestInferencePlugin_Init(t *testing.T) {
212236 fields : fields {
213237 name : types .AdvisorPluginNameInference ,
214238 period : 5 * time .Second ,
239+ modelsInputFetchers : map [string ]modelinputfetcher.ModelInputFetcher {
240+ "test" : modelinputfetcher.DummyModelInputFetcher {},
241+ },
215242 modelsResultFetchers : map [string ]modelresultfetcher.ModelResultFetcher {
216243 "test" : modelresultfetcher.DummyModelResultFetcher {},
217244 },
@@ -229,6 +256,7 @@ func TestInferencePlugin_Init(t *testing.T) {
229256 infp := & InferencePlugin {
230257 name : tt .fields .name ,
231258 period : tt .fields .period ,
259+ modelsInputFetchers : tt .fields .modelsInputFetchers ,
232260 modelsResultFetchers : tt .fields .modelsResultFetchers ,
233261 metaServer : tt .fields .metaServer ,
234262 metricEmitter : tt .fields .emitter ,
@@ -291,3 +319,53 @@ func TestInferencePlugin_fetchModelResult(t *testing.T) {
291319 })
292320 }
293321}
322+
323+ func TestInferencePlugin_fetchModelInput (t * testing.T ) {
324+ t .Parallel ()
325+ type fields struct {
326+ name string
327+ period time.Duration
328+ modelsInputFetchers map [string ]modelinputfetcher.ModelInputFetcher
329+ metaServer * metaserver.MetaServer
330+ emitter metrics.MetricEmitter
331+ metaReader metacache.MetaReader
332+ metaWriter metacache.MetaWriter
333+ }
334+ type args struct {
335+ ctx context.Context
336+ }
337+ tests := []struct {
338+ name string
339+ fields fields
340+ args args
341+ }{
342+ {
343+ name : "test inference plugin fetching model input" ,
344+ fields : fields {
345+ name : types .AdvisorPluginNameInference ,
346+ period : 5 * time .Second ,
347+ modelsInputFetchers : map [string ]modelinputfetcher.ModelInputFetcher {
348+ "test" : modelinputfetcher.DummyModelInputFetcher {},
349+ },
350+ metaServer : & metaserver.MetaServer {},
351+ emitter : metrics.DummyMetrics {},
352+ },
353+ },
354+ }
355+ for _ , tt := range tests {
356+ tt := tt
357+ t .Run (tt .name , func (t * testing.T ) {
358+ t .Parallel ()
359+ infp := & InferencePlugin {
360+ name : tt .fields .name ,
361+ period : tt .fields .period ,
362+ modelsInputFetchers : tt .fields .modelsInputFetchers ,
363+ metaServer : tt .fields .metaServer ,
364+ metricEmitter : tt .fields .emitter ,
365+ metaReader : tt .fields .metaReader ,
366+ metaWriter : tt .fields .metaWriter ,
367+ }
368+ infp .fetchModelInput (tt .args .ctx )
369+ })
370+ }
371+ }
0 commit comments