Save discovery alarms to context.
Сейчас любой вызов метода update_alarms
вызывает отправку сообщения в сторону коррелятора. На больших инсталляциях коррелятор перестаёт справляться с большим потоком сообщений (каждый опрос в том числе метрик вызывает оправку сообщения).
Чтобы этого избежать ссылка на группу (reference
) вместо со списком проблем помещается в контекст задачи. И реализуется следующая логика:
- Если
reference
отсутствует в контексте и список проблем пустой, то обработка не происходит - Если в контексте есть
reference
группы, идёт обработка списка проблем - Если список проблем пустой, то в конце обработки мы удаляем
reference
группы - Если список проблем не пустой, то мы размещаем
reference
проблем вместе с группой в контексте
Благодаря этому сообщения в сторону коррелятора отправляются только если список проблем не пустой. При очистки списка проблем уходит только 1 сообщение с пустым списком.
В контексте сохраняются все активные группы со своим списком проблем.