do not send more than group_threshold alerts at once to a notification plugin
This commit is contained in:
parent
9a5a937695
commit
1aa6f4014f
|
@ -115,9 +115,20 @@ loop:
|
|||
pb.alertsByPluginName[pluginName] = make([]*models.Alert, 0)
|
||||
pluginMutex.Unlock()
|
||||
go func() {
|
||||
if err := pb.pushNotificationsToPlugin(pluginName, tmpAlerts); err != nil {
|
||||
//Chunk alerts to respect group_threshold
|
||||
threshold := pb.pluginConfigByName[pluginName].GroupThreshold
|
||||
if threshold == 0 {
|
||||
threshold = 1
|
||||
}
|
||||
for i := 0; i < len(tmpAlerts); i += threshold {
|
||||
end := i + threshold
|
||||
if end > len(tmpAlerts) {
|
||||
end = len(tmpAlerts)
|
||||
}
|
||||
if err := pb.pushNotificationsToPlugin(pluginName, tmpAlerts[i:end]); err != nil {
|
||||
log.WithField("plugin:", pluginName).Error(err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
case <-pluginTomb.Dying():
|
||||
|
|
Loading…
Reference in a new issue