Skip to content

Commit 29b4b4f

Browse files
committed
Add GC controller metrics
1 parent faa1d1a commit 29b4b4f

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

pkg/server/leases/gc_controller.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
coordinationv1 "k8s.io/client-go/kubernetes/typed/coordination/v1"
2727
"k8s.io/klog/v2"
2828
"k8s.io/utils/clock"
29+
"sigs.k8s.io/apiserver-network-proxy/pkg/server/metrics"
2930
"sigs.k8s.io/apiserver-network-proxy/pkg/util"
3031
)
3132

@@ -70,6 +71,8 @@ func (c *GarbageCollectionController) gc(ctx context.Context) {
7071
klog.V(4).Infof("Lease %v was already deleted", lease.Name)
7172
} else if err != nil {
7273
klog.Errorf("Could not delete lease %v: %v", lease.Name, err)
74+
} else {
75+
metrics.Metrics.CulledLeasesInc()
7376
}
7477
}
7578
}

pkg/server/metrics/metrics.go

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ type ServerMetrics struct {
5656
dialFailures *prometheus.CounterVec
5757
streamPackets *prometheus.CounterVec
5858
streamErrors *prometheus.CounterVec
59+
culledLeases prometheus.Counter
5960
}
6061

6162
// newServerMetrics create a new ServerMetrics, configured with default metric names.
@@ -148,6 +149,12 @@ func newServerMetrics() *ServerMetrics {
148149
"reason",
149150
},
150151
)
152+
culledLeases := prometheus.NewCounter(prometheus.CounterOpts{
153+
Namespace: Namespace,
154+
Subsystem: Subsystem,
155+
Name: "culled_leases_count",
156+
Help: "Count of expired leases that the lease garbage collection controller has culled.",
157+
})
151158
streamPackets := commonmetrics.MakeStreamPacketsTotalMetric(Namespace, Subsystem)
152159
streamErrors := commonmetrics.MakeStreamErrorsTotalMetric(Namespace, Subsystem)
153160
prometheus.MustRegister(endpointLatencies)
@@ -161,6 +168,7 @@ func newServerMetrics() *ServerMetrics {
161168
prometheus.MustRegister(dialFailures)
162169
prometheus.MustRegister(streamPackets)
163170
prometheus.MustRegister(streamErrors)
171+
prometheus.MustRegister(culledLeases)
164172
return &ServerMetrics{
165173
endpointLatencies: endpointLatencies,
166174
frontendLatencies: frontendLatencies,
@@ -173,6 +181,7 @@ func newServerMetrics() *ServerMetrics {
173181
dialFailures: dialFailures,
174182
streamPackets: streamPackets,
175183
streamErrors: streamErrors,
184+
culledLeases: culledLeases,
176185
}
177186
}
178187

@@ -190,6 +199,11 @@ func (s *ServerMetrics) Reset() {
190199
s.streamErrors.Reset()
191200
}
192201

202+
// CulledLeasesInc increments the number of leases that the GC controller has culled.
203+
func (s *ServerMetrics) CulledLeasesInc() {
204+
s.culledLeases.Inc()
205+
}
206+
193207
// ObserveDialLatency records the latency of dial to the remote endpoint.
194208
func (s *ServerMetrics) ObserveDialLatency(elapsed time.Duration) {
195209
s.endpointLatencies.WithLabelValues().Observe(elapsed.Seconds())

0 commit comments

Comments
 (0)