Skip to content

Commit 9bfe5fd

Browse files
authored
Merge pull request #197 from pusher/metrics-non-leader
🐛 Serve metrics even if not leader
2 parents 5675a53 + e1ceb2f commit 9bfe5fd

File tree

1 file changed

+7
-5
lines changed

1 file changed

+7
-5
lines changed

pkg/manager/internal.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,13 @@ func (cm *controllerManager) Start(stop <-chan struct{}) error {
204204
// join the passed-in stop channel as an upstream feeding into cm.internalStopper
205205
defer close(cm.internalStopper)
206206

207+
// Metrics should be served whether the controller is leader or not.
208+
// (If we don't serve metrics for non-leaders, prometheus will still scrape
209+
// the pod but will get a connection refused)
210+
if cm.metricsListener != nil {
211+
go cm.serveMetrics(cm.internalStop)
212+
}
213+
207214
if cm.resourceLock != nil {
208215
err := cm.startLeaderElection()
209216
if err != nil {
@@ -237,11 +244,6 @@ func (cm *controllerManager) start() {
237244
}
238245
}()
239246

240-
// Start the metrics server
241-
if cm.metricsListener != nil {
242-
go cm.serveMetrics(cm.internalStop)
243-
}
244-
245247
// Wait for the caches to sync.
246248
// TODO(community): Check the return value and write a test
247249
cm.cache.WaitForCacheSync(cm.internalStop)

0 commit comments

Comments
 (0)