mirror of
https://github.com/kubernetes-sigs/external-dns.git
synced 2025-08-06 09:36:58 +02:00
Dynamically register cache provider metrics
This commit is contained in:
parent
ef0dd29cf5
commit
6c5faafbfe
8
main.go
8
main.go
@ -402,10 +402,10 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if cfg.ProviderCacheTime > 0 {
|
if cfg.ProviderCacheTime > 0 {
|
||||||
p = &provider.CachedProvider{
|
p = provider.NewCachedProvider(
|
||||||
Provider: p,
|
p,
|
||||||
RefreshDelay: cfg.ProviderCacheTime,
|
cfg.ProviderCacheTime,
|
||||||
}
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
var r registry.Registry
|
var r registry.Registry
|
||||||
|
@ -17,6 +17,7 @@ package provider
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/prometheus/client_golang/prometheus"
|
"github.com/prometheus/client_golang/prometheus"
|
||||||
@ -46,6 +47,8 @@ var (
|
|||||||
Help: "Number of calls to the provider cache ApplyChanges.",
|
Help: "Number of calls to the provider cache ApplyChanges.",
|
||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
|
registerCacheProviderMetrics = sync.Once{}
|
||||||
)
|
)
|
||||||
|
|
||||||
type CachedProvider struct {
|
type CachedProvider struct {
|
||||||
@ -55,6 +58,16 @@ type CachedProvider struct {
|
|||||||
cache []*endpoint.Endpoint
|
cache []*endpoint.Endpoint
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func NewCachedProvider(provider Provider, refreshDelay time.Duration) *CachedProvider {
|
||||||
|
registerMetrics.Do(func() {
|
||||||
|
prometheus.MustRegister(cachedRecordsCallsTotal)
|
||||||
|
})
|
||||||
|
return &CachedProvider{
|
||||||
|
Provider: provider,
|
||||||
|
RefreshDelay: refreshDelay,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (c *CachedProvider) Records(ctx context.Context) ([]*endpoint.Endpoint, error) {
|
func (c *CachedProvider) Records(ctx context.Context) ([]*endpoint.Endpoint, error) {
|
||||||
if c.needRefresh() {
|
if c.needRefresh() {
|
||||||
log.Info("Records cache provider: refreshing records list cache")
|
log.Info("Records cache provider: refreshing records list cache")
|
||||||
@ -95,7 +108,3 @@ func (c *CachedProvider) needRefresh() bool {
|
|||||||
log.Debug("Records cache last Read: ", c.lastRead, "expiration: ", c.RefreshDelay, " provider expiration:", c.lastRead.Add(c.RefreshDelay), "expired: ", time.Now().After(c.lastRead.Add(c.RefreshDelay)))
|
log.Debug("Records cache last Read: ", c.lastRead, "expiration: ", c.RefreshDelay, " provider expiration:", c.lastRead.Add(c.RefreshDelay), "expired: ", time.Now().After(c.lastRead.Add(c.RefreshDelay)))
|
||||||
return time.Now().After(c.lastRead.Add(c.RefreshDelay))
|
return time.Now().After(c.lastRead.Add(c.RefreshDelay))
|
||||||
}
|
}
|
||||||
|
|
||||||
func init() {
|
|
||||||
prometheus.MustRegister(cachedRecordsCallsTotal)
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user