Skip to content

Commit

Permalink
Init metrics when cronjob been added
Browse files Browse the repository at this point in the history
  • Loading branch information
dispensable committed Apr 21, 2023
1 parent bf86b6d commit 42f29ad
Showing 1 changed file with 10 additions and 3 deletions.
13 changes: 10 additions & 3 deletions runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ func (r *Runner) Add(cronjob CrontabEntry) error {
log.WithFields(LogCronjobToFields(cronjob)).Errorf("cronjob failed adding:%v", err)
} else {
cronjob.SetEntryId(eid)
r.updateCronEntryMetrics(&cronjob)
prometheusMetricTask.With(r.cronjobToPrometheusLabels(cronjob)).Set(1)
log.WithFields(LogCronjobToFields(cronjob)).Infof("cronjob added")
}
Expand Down Expand Up @@ -88,6 +89,7 @@ func (r *Runner) AddWithUser(cronjob CrontabEntry) error {
log.WithFields(LogCronjobToFields(cronjob)).Errorf("cronjob failed adding: %v", err)
} else {
cronjob.SetEntryId(eid)
r.updateCronEntryMetrics(&cronjob)
prometheusMetricTask.With(r.cronjobToPrometheusLabels(cronjob)).Set(1)
log.WithFields(LogCronjobToFields(cronjob)).Infof("cronjob added")
}
Expand Down Expand Up @@ -159,9 +161,7 @@ func (r *Runner) cmdFunc(cronjob *CrontabEntry, cmdCallback func(*exec.Cmd) bool
logFields["result"] = "success"
}

entry := r.cron.Entry(cronjob.EntryId)
prometheusMetricTaskRunNextTs.With(cronjobMetricCommonLables).Set(float64(entry.Next.Unix()))
prometheusMetricTaskRunPrevTs.With(cronjobMetricCommonLables).Set(float64(entry.Prev.Unix()))
r.updateCronEntryMetrics(cronjob)
log.WithFields(logFields).Info("finished")
if len(cmdStdout) > 0 {
log.Debugln(string(cmdStdout))
Expand All @@ -184,3 +184,10 @@ func (r *Runner) cronjobToPrometheusLabels(cronjob CrontabEntry, additionalLabel
}
return
}

func (r *Runner) updateCronEntryMetrics(cronjob *CrontabEntry) {
cronjobMetricCommonLables := r.cronjobToPrometheusLabels(*cronjob)
entry := r.cron.Entry(cronjob.EntryId)
prometheusMetricTaskRunNextTs.With(cronjobMetricCommonLables).Set(float64(entry.Next.Unix()))
prometheusMetricTaskRunPrevTs.With(cronjobMetricCommonLables).Set(float64(entry.Prev.Unix()))
}

0 comments on commit 42f29ad

Please sign in to comment.