How are alerts staggered?

How are alerts staggered by the scheduler?

If we had 100 alerts for interval 5mins. Should I expect 100 alerts at exactly 00:05, 00:10?

I.e it’s going to be quite a surge on the database.

Or are the spread out in some way over that 5min window. I eyeballed the code and it looks like it’s spread over 1 second presumably to key the scheduler on track. But they aren’t spread over the 5min window to distribute load.


Actually on second pass, I think there was an attempt to evenly distributed alerts over their alerting window. It’s no obvious to me the code is correct though. So would be interested in people’s experiences/thoughts!

The algorithm appears to be …

offset := (rule.Frequency / len(rules )) * i

Where i is the array position in list of all alert rules

So presumably if their is a mix of alert frequencies this could get all messed up

If there was a 1s, 30s, and 60s rule
Offset would be 0.3, 20s, 60s.

So the 2nd and 3rd still synchronise