mirror of
https://github.com/SigNoz/signoz.git
synced 2025-12-24 10:56:53 +00:00
feat(cron-alerts): added prom cron alerts
This commit is contained in:
parent
500c5ecd8c
commit
05a0ce64d3
@ -98,6 +98,22 @@ func (g *PromRuleTask) Pause(b bool) {
|
||||
|
||||
func (g *PromRuleTask) Run(ctx context.Context) {
|
||||
defer close(g.terminated)
|
||||
defer func() {
|
||||
if !g.markStale {
|
||||
return
|
||||
}
|
||||
go func(now time.Time) {
|
||||
for _, rule := range g.seriesInPreviousEval {
|
||||
for _, r := range rule {
|
||||
g.staleSeries = append(g.staleSeries, r)
|
||||
}
|
||||
}
|
||||
// That can be garbage collected at this point.
|
||||
g.seriesInPreviousEval = nil
|
||||
|
||||
}(time.Now())
|
||||
|
||||
}()
|
||||
if g.IsCronSchedule() {
|
||||
schedule, err := rrule.StrToRRule("DTSTART=" + g.scheduleStartsAt.UTC().Format("20060102T150405Z") + "\nRRULE:" + g.schedule) // assuming g.cronExpr contains the cron expression
|
||||
if err != nil {
|
||||
@ -190,24 +206,6 @@ func (g *PromRuleTask) Run(ctx context.Context) {
|
||||
tick := time.NewTicker(g.frequency)
|
||||
defer tick.Stop()
|
||||
|
||||
// defer cleanup
|
||||
defer func() {
|
||||
if !g.markStale {
|
||||
return
|
||||
}
|
||||
go func(now time.Time) {
|
||||
for _, rule := range g.seriesInPreviousEval {
|
||||
for _, r := range rule {
|
||||
g.staleSeries = append(g.staleSeries, r)
|
||||
}
|
||||
}
|
||||
// That can be garbage collected at this point.
|
||||
g.seriesInPreviousEval = nil
|
||||
|
||||
}(time.Now())
|
||||
|
||||
}()
|
||||
|
||||
iter()
|
||||
|
||||
// let the group iterate and run
|
||||
@ -318,6 +316,7 @@ func (g *PromRuleTask) SetSchedule(schedule string, t time.Time) {
|
||||
g.mtx.Lock()
|
||||
defer g.mtx.Unlock()
|
||||
g.schedule = schedule
|
||||
g.scheduleStartsAt = t
|
||||
}
|
||||
|
||||
// EvalTimestamp returns the immediately preceding consistently slotted evaluation time.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user