mirror of
https://github.com/kubernetes/client-go.git
synced 2025-09-09 02:50:04 +00:00
Add gauge metric for master of leader election.
Fixes #71730 0 indicates standby, 1 indicates master, label indicates which lease. Tweaked name and documentation Factored in Mike Danese feedback. Removed dependency on prometheus from client-go using adapter. Centralized adapter import. Fixed godeps Fixed boilerplate. Put in fixes for caesarxuchao Kubernetes-commit: f1926573804ed2c172c91d1022203d0699210138
This commit is contained in:
committed by
Kubernetes Publisher
parent
e21449da97
commit
03e373bae2
@@ -89,10 +89,13 @@ func NewLeaderElector(lec LeaderElectionConfig) (*LeaderElector, error) {
|
||||
if lec.Lock == nil {
|
||||
return nil, fmt.Errorf("Lock must not be nil.")
|
||||
}
|
||||
return &LeaderElector{
|
||||
config: lec,
|
||||
clock: clock.RealClock{},
|
||||
}, nil
|
||||
le := LeaderElector{
|
||||
config: lec,
|
||||
clock: clock.RealClock{},
|
||||
metrics: globalMetricsFactory.newLeaderMetrics(),
|
||||
}
|
||||
le.metrics.leaderOff(le.config.Name)
|
||||
return &le, nil
|
||||
}
|
||||
|
||||
type LeaderElectionConfig struct {
|
||||
@@ -152,6 +155,8 @@ type LeaderElector struct {
|
||||
// clock is wrapper around time to allow for less flaky testing
|
||||
clock clock.Clock
|
||||
|
||||
metrics leaderMetricsAdapter
|
||||
|
||||
// name is the name of the resource lock for debugging
|
||||
name string
|
||||
}
|
||||
@@ -211,6 +216,7 @@ func (le *LeaderElector) acquire(ctx context.Context) bool {
|
||||
return
|
||||
}
|
||||
le.config.Lock.RecordEvent("became leader")
|
||||
le.metrics.leaderOn(le.config.Name)
|
||||
klog.Infof("successfully acquired lease %v", desc)
|
||||
cancel()
|
||||
}, le.config.RetryPeriod, JitterFactor, true, ctx.Done())
|
||||
@@ -246,6 +252,7 @@ func (le *LeaderElector) renew(ctx context.Context) {
|
||||
return
|
||||
}
|
||||
le.config.Lock.RecordEvent("stopped leading")
|
||||
le.metrics.leaderOff(le.config.Name)
|
||||
klog.Infof("failed to renew lease %v: %v", desc, err)
|
||||
cancel()
|
||||
}, le.config.RetryPeriod, ctx.Done())
|
||||
|
Reference in New Issue
Block a user