@@ -18,7 +18,6 @@ package runner
1818
1919import (
2020 "context"
21- "crypto/tls"
2221 "errors"
2322 "flag"
2423 "fmt"
@@ -121,8 +120,7 @@ type Runner struct {
121120 customCollectors []prometheus.Collector
122121
123122 // Test overrides
124- testPodMetricsClient * backendmetrics.FakePodMetricsClient
125- skipNameValidation bool
123+ skipNameValidation bool
126124}
127125
128126// WithExecutableName sets the name of the executable containing the runner.
@@ -188,7 +186,22 @@ func (r *Runner) Run(ctx context.Context) error {
188186 return err
189187 }
190188
191- mgr , _ , _ , err := r .Setup (ctx , cfg , opts )
189+ pmc , err := backendmetrics .NewPodMetricsClientImpl (setupLog , backendmetrics.Config {
190+ ModelServerMetricsScheme : opts .ModelServerMetricsScheme ,
191+ ModelServerMetricsHTTPSInsecure : opts .ModelServerMetricsHTTPSInsecure ,
192+ ModelServerMetricsPath : opts .ModelServerMetricsPath ,
193+
194+ TotalQueuedRequestsMetric : opts .TotalQueuedRequestsMetric ,
195+ TotalRunningRequestsMetric : opts .TotalRunningRequestsMetric ,
196+ KVCacheUsagePercentageMetric : opts .KVCacheUsagePercentageMetric ,
197+ LoRAInfoMetric : opts .LoRAInfoMetric ,
198+ CacheInfoMetric : opts .CacheInfoMetric ,
199+ })
200+ if err != nil {
201+ return err
202+ }
203+
204+ mgr , _ , _ , err := r .Setup (ctx , cfg , opts , pmc )
192205 if err != nil {
193206 return err
194207 }
@@ -209,20 +222,15 @@ func (r *Runner) Run(ctx context.Context) error {
209222// without starting it, allowing for flexible in integration test.
210223//
211224// The returned Datastore and ExtProcServerRunner is **only** meant to use in the integration test.
212- func (r * Runner ) Setup (ctx context.Context , cfg * rest.Config , opts * runserver.Options ) (ctrl.Manager , datastore.Datastore , * runserver.ExtProcServerRunner , error ) {
225+ func (r * Runner ) Setup (ctx context.Context , cfg * rest.Config , opts * runserver.Options , pmc backendmetrics. PodMetricsClient ) (ctrl.Manager , datastore.Datastore , * runserver.ExtProcServerRunner , error ) {
213226 rawConfig , err := r .parseConfigurationPhaseOne (ctx , opts )
214227 if err != nil {
215228 setupLog .Error (err , "Failed to parse configuration" )
216229 return nil , nil , nil , err
217230 }
218231
219232 // --- Setup Datastore ---
220- epf , err := r .setupMetricsCollection (r .featureGates [datalayer .ExperimentalDatalayerFeatureGate ], opts )
221-
222- if r .testPodMetricsClient != nil {
223- // Test only, override epf with FakePodMetricsClient.
224- epf = backendmetrics .NewPodMetricsFactory (r .testPodMetricsClient , 10 * time .Millisecond )
225- }
233+ epf , err := r .setupMetricsCollection (r .featureGates [datalayer .ExperimentalDatalayerFeatureGate ], opts , pmc )
226234
227235 if err != nil {
228236 return nil , nil , nil , err
@@ -368,10 +376,6 @@ func (r *Runner) Setup(ctx context.Context, cfg *rest.Config, opts *runserver.Op
368376 UseExperimentalDatalayerV2 : r .featureGates [datalayer .ExperimentalDatalayerFeatureGate ], // pluggable data layer feature flag
369377 }
370378
371- if r .testPodMetricsClient != nil {
372- serverRunner .TestPodMetricsClient = r .testPodMetricsClient
373- }
374-
375379 if err := serverRunner .SetupWithManager (mgr ); err != nil {
376380 setupLog .Error (err , "Failed to setup EPP controllers" )
377381 return nil , nil , nil , err
@@ -625,46 +629,15 @@ func (r *Runner) setupDataLayer(enableNewMetrics bool, cfg *datalayer.Config,
625629 return nil
626630}
627631
628- func (r * Runner ) setupMetricsCollection (enableNewMetrics bool , opts * runserver.Options ) (datalayer.EndpointFactory , error ) {
632+ func (r * Runner ) setupMetricsCollection (enableNewMetrics bool , opts * runserver.Options , pmc backendmetrics. PodMetricsClient ) (datalayer.EndpointFactory , error ) {
629633 if enableNewMetrics {
630634 return datalayer .NewEndpointFactory (nil , opts .RefreshMetricsInterval ), nil
631635 }
632- return setupMetricsV1 (opts )
636+ return setupMetricsV1 (opts , pmc )
633637}
634638
635- func setupMetricsV1 (opts * runserver.Options ) (datalayer.EndpointFactory , error ) {
636- mapping , err := backendmetrics .NewMetricMapping (
637- opts .TotalQueuedRequestsMetric ,
638- opts .TotalRunningRequestsMetric ,
639- opts .KVCacheUsagePercentageMetric ,
640- opts .LoRAInfoMetric ,
641- opts .CacheInfoMetric ,
642- )
643- if err != nil {
644- setupLog .Error (err , "Failed to create metric mapping from flags." )
645- return nil , err
646- }
647- verifyMetricMapping (* mapping )
648-
649- var metricsHttpClient * http.Client
650- if opts .ModelServerMetricsScheme == "https" {
651- metricsHttpClient = & http.Client {
652- Transport : & http.Transport {
653- TLSClientConfig : & tls.Config {
654- InsecureSkipVerify : opts .ModelServerMetricsHTTPSInsecure ,
655- },
656- },
657- }
658- } else {
659- metricsHttpClient = http .DefaultClient
660- }
661-
662- pmf := backendmetrics .NewPodMetricsFactory (& backendmetrics.PodMetricsClientImpl {
663- MetricMapping : mapping ,
664- ModelServerMetricsPath : opts .ModelServerMetricsPath ,
665- ModelServerMetricsScheme : opts .ModelServerMetricsScheme ,
666- Client : metricsHttpClient ,
667- },
639+ func setupMetricsV1 (opts * runserver.Options , pmc backendmetrics.PodMetricsClient ) (datalayer.EndpointFactory , error ) {
640+ pmf := backendmetrics .NewPodMetricsFactory (pmc ,
668641 opts .RefreshMetricsInterval )
669642 return pmf , nil
670643}
0 commit comments