Merge pull request #689 from lemaral/init-schedule-metrics
Init schedule Prometheus metricspull/696/head
commit
b0af81e780
|
@ -656,6 +656,7 @@ func (s *server) runControllers(config *api.Config) error {
|
|||
s.sharedInformerFactory.Ark().V1().Schedules(),
|
||||
config.ScheduleSyncPeriod.Duration,
|
||||
s.logger,
|
||||
s.metrics,
|
||||
)
|
||||
wg.Add(1)
|
||||
go func() {
|
||||
|
|
|
@ -41,6 +41,7 @@ import (
|
|||
arkv1client "github.com/heptio/ark/pkg/generated/clientset/versioned/typed/ark/v1"
|
||||
informers "github.com/heptio/ark/pkg/generated/informers/externalversions/ark/v1"
|
||||
listers "github.com/heptio/ark/pkg/generated/listers/ark/v1"
|
||||
"github.com/heptio/ark/pkg/metrics"
|
||||
kubeutil "github.com/heptio/ark/pkg/util/kube"
|
||||
)
|
||||
|
||||
|
@ -55,6 +56,7 @@ type scheduleController struct {
|
|||
syncPeriod time.Duration
|
||||
clock clock.Clock
|
||||
logger logrus.FieldLogger
|
||||
metrics *metrics.ServerMetrics
|
||||
}
|
||||
|
||||
func NewScheduleController(
|
||||
|
@ -64,6 +66,7 @@ func NewScheduleController(
|
|||
schedulesInformer informers.ScheduleInformer,
|
||||
syncPeriod time.Duration,
|
||||
logger logrus.FieldLogger,
|
||||
metrics *metrics.ServerMetrics,
|
||||
) *scheduleController {
|
||||
if syncPeriod < time.Minute {
|
||||
logger.WithField("syncPeriod", syncPeriod).Info("Provided schedule sync period is too short. Setting to 1 minute")
|
||||
|
@ -80,6 +83,7 @@ func NewScheduleController(
|
|||
syncPeriod: syncPeriod,
|
||||
clock: clock.RealClock{},
|
||||
logger: logger,
|
||||
metrics: metrics,
|
||||
}
|
||||
|
||||
c.syncHandler = c.processSchedule
|
||||
|
@ -106,6 +110,10 @@ func NewScheduleController(
|
|||
return
|
||||
}
|
||||
c.queue.Add(key)
|
||||
scheduleName := schedule.GetName()
|
||||
c.logger.Info("Creating schedule ", scheduleName)
|
||||
//Init Prometheus metrics to 0 to have them flowing up
|
||||
metrics.InitSchedule(scheduleName)
|
||||
},
|
||||
},
|
||||
)
|
||||
|
|
|
@ -34,6 +34,7 @@ import (
|
|||
api "github.com/heptio/ark/pkg/apis/ark/v1"
|
||||
"github.com/heptio/ark/pkg/generated/clientset/versioned/fake"
|
||||
informers "github.com/heptio/ark/pkg/generated/informers/externalversions"
|
||||
"github.com/heptio/ark/pkg/metrics"
|
||||
"github.com/heptio/ark/pkg/util/collections"
|
||||
arktest "github.com/heptio/ark/pkg/util/test"
|
||||
)
|
||||
|
@ -129,6 +130,7 @@ func TestProcessSchedule(t *testing.T) {
|
|||
sharedInformers.Ark().V1().Schedules(),
|
||||
time.Duration(0),
|
||||
logger,
|
||||
metrics.NewServerMetrics(),
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
|
@ -106,6 +106,18 @@ func (m *ServerMetrics) RegisterAllMetrics() {
|
|||
}
|
||||
}
|
||||
|
||||
func (m *ServerMetrics) InitSchedule(scheduleName string) {
|
||||
if c, ok := m.metrics[backupAttemptCount].(*prometheus.CounterVec); ok {
|
||||
c.WithLabelValues(scheduleName).Set(0)
|
||||
}
|
||||
if c, ok := m.metrics[backupSuccessCount].(*prometheus.CounterVec); ok {
|
||||
c.WithLabelValues(scheduleName).Set(0)
|
||||
}
|
||||
if c, ok := m.metrics[backupFailureCount].(*prometheus.CounterVec); ok {
|
||||
c.WithLabelValues(scheduleName).Set(0)
|
||||
}
|
||||
}
|
||||
|
||||
// SetBackupTarballSizeBytesGauge records the size, in bytes, of a backup tarball.
|
||||
func (m *ServerMetrics) SetBackupTarballSizeBytesGauge(backupSchedule string, size int64) {
|
||||
if g, ok := m.metrics[backupTarballSizeBytesGauge].(*prometheus.GaugeVec); ok {
|
||||
|
|
Loading…
Reference in New Issue