Skip to content

Commit 0be970f

Browse files
committed
rebase and update last changes
Signed-off-by: Nir Rozenbaum <[email protected]>
1 parent 929ca18 commit 0be970f

File tree

2 files changed

+28
-12
lines changed

2 files changed

+28
-12
lines changed

pkg/epp/metrics/collectors/inference_pool.go

+18-7
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@ package collectors
1818

1919
import (
2020
"k8s.io/component-base/metrics"
21+
backendmetrics "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend/metrics"
22+
podinfo "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend/pod-info"
2123
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
2224
)
2325

@@ -69,12 +71,21 @@ func (c *inferencePoolMetricsCollector) CollectWithStability(ch chan<- metrics.M
6971
}
7072

7173
for _, pod := range podMetrics {
72-
ch <- metrics.NewLazyConstMetric(
73-
descInferencePoolPerPodQueueSize,
74-
metrics.GaugeValue,
75-
float64(pod.GetMetrics().WaitingQueueSize),
76-
pool.Name,
77-
pod.GetPod().NamespacedName.Name,
78-
)
74+
if podMetrics := getMetricsFromPodInfo(pod); podMetrics != nil {
75+
ch <- metrics.NewLazyConstMetric(
76+
descInferencePoolPerPodQueueSize,
77+
metrics.GaugeValue,
78+
float64(podMetrics.WaitingQueueSize),
79+
pool.Name,
80+
pod.GetPod().NamespacedName.Name,
81+
)
82+
}
7983
}
8084
}
85+
func getMetricsFromPodInfo(pod podinfo.PodInfo) *backendmetrics.Metrics {
86+
podMetrics, ok := pod.GetData()[backendmetrics.MetricsDataKey]
87+
if !ok {
88+
return nil // no entry in the map with metrics key
89+
}
90+
return podMetrics.(*backendmetrics.Metrics)
91+
}

pkg/epp/metrics/collectors/inference_pool_test.go

+10-5
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import (
3030
"sigs.k8s.io/controller-runtime/pkg/client/fake"
3131
"sigs.k8s.io/gateway-api-inference-extension/api/v1alpha2"
3232
backendmetrics "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend/metrics"
33+
podinfo "sigs.k8s.io/gateway-api-inference-extension/pkg/epp/backend/pod-info"
3334
"sigs.k8s.io/gateway-api-inference-extension/pkg/epp/datastore"
3435
)
3536

@@ -48,8 +49,10 @@ var (
4849
)
4950

5051
func TestNoMetricsCollected(t *testing.T) {
51-
pmf := backendmetrics.NewPodMetricsFactory(&backendmetrics.FakePodMetricsClient{}, time.Second)
52-
datastore := datastore.NewDatastore(context.Background(), pmf)
52+
podInfoFactory := podinfo.NewPodInfoFactory(map[podinfo.Scraper]*podinfo.ScraperConfig{
53+
&backendmetrics.FakeMetricsScraper{}: podinfo.NewScraperConfig(time.Second, 5*time.Second),
54+
})
55+
datastore := datastore.NewDatastore(context.Background(), podInfoFactory)
5356

5457
collector := &inferencePoolMetricsCollector{
5558
ds: datastore,
@@ -61,13 +64,15 @@ func TestNoMetricsCollected(t *testing.T) {
6164
}
6265

6366
func TestMetricsCollected(t *testing.T) {
64-
pmc := &backendmetrics.FakePodMetricsClient{
67+
fms := &backendmetrics.FakeMetricsScraper{
6568
Res: map[types.NamespacedName]*backendmetrics.Metrics{
6669
pod1NamespacedName: pod1Metrics,
6770
},
6871
}
69-
pmf := backendmetrics.NewPodMetricsFactory(pmc, time.Millisecond)
70-
ds := datastore.NewDatastore(context.Background(), pmf)
72+
podInfoFactory := podinfo.NewPodInfoFactory(map[podinfo.Scraper]*podinfo.ScraperConfig{
73+
fms: podinfo.NewScraperConfig(time.Millisecond, 5*time.Millisecond),
74+
})
75+
ds := datastore.NewDatastore(context.Background(), podInfoFactory)
7176

7277
scheme := runtime.NewScheme()
7378
fakeClient := fake.NewClientBuilder().

0 commit comments

Comments
 (0)