@@ -49,7 +49,7 @@ type Provider struct {
49
49
}
50
50
51
51
type PodMetricsClient interface {
52
- FetchMetrics (ctx context.Context , existing * datastore.PodMetrics ) (* datastore.PodMetrics , error )
52
+ FetchMetrics (ctx context.Context , existing * datastore.PodMetrics , port int32 ) (* datastore.PodMetrics , error )
53
53
}
54
54
55
55
func (p * Provider ) Init (ctx context.Context , refreshMetricsInterval , refreshPrometheusMetricsInterval time.Duration ) error {
@@ -105,6 +105,11 @@ func (p *Provider) Init(ctx context.Context, refreshMetricsInterval, refreshProm
105
105
106
106
func (p * Provider ) refreshMetricsOnce (logger logr.Logger ) error {
107
107
loggerTrace := logger .V (logutil .TRACE )
108
+ pool , _ := p .datastore .PoolGet ()
109
+ if pool == nil {
110
+ loggerTrace .Info ("No inference pool or not initialized" )
111
+ return nil
112
+ }
108
113
ctx , cancel := context .WithTimeout (context .Background (), fetchMetricsTimeout )
109
114
defer cancel ()
110
115
start := time .Now ()
@@ -113,6 +118,7 @@ func (p *Provider) refreshMetricsOnce(logger logr.Logger) error {
113
118
// TODO: add a metric instead of logging
114
119
loggerTrace .Info ("Metrics refreshed" , "duration" , d )
115
120
}()
121
+
116
122
var wg sync.WaitGroup
117
123
errCh := make (chan error )
118
124
processOnePod := func (key , value any ) bool {
@@ -121,7 +127,7 @@ func (p *Provider) refreshMetricsOnce(logger logr.Logger) error {
121
127
wg .Add (1 )
122
128
go func () {
123
129
defer wg .Done ()
124
- updated , err := p .pmc .FetchMetrics (ctx , existing )
130
+ updated , err := p .pmc .FetchMetrics (ctx , existing , pool . Spec . TargetPortNumber )
125
131
if err != nil {
126
132
errCh <- fmt .Errorf ("failed to parse metrics from %s: %v" , existing .NamespacedName , err )
127
133
return
@@ -151,8 +157,6 @@ func (p *Provider) refreshMetricsOnce(logger logr.Logger) error {
151
157
}
152
158
153
159
func (p * Provider ) flushPrometheusMetricsOnce (logger logr.Logger ) {
154
- logger .V (logutil .DEBUG ).Info ("Flushing Prometheus Metrics" )
155
-
156
160
pool , _ := p .datastore .PoolGet ()
157
161
if pool == nil {
158
162
// No inference pool or not initialize.
@@ -163,6 +167,7 @@ func (p *Provider) flushPrometheusMetricsOnce(logger logr.Logger) {
163
167
var queueTotal int
164
168
165
169
podMetrics := p .datastore .PodGetAll ()
170
+ logger .V (logutil .VERBOSE ).Info ("Flushing Prometheus Metrics" , "ReadyPods" , len (podMetrics ))
166
171
if len (podMetrics ) == 0 {
167
172
return
168
173
}
0 commit comments