Улучшена производительность Zabbix сервера при расчете выражений триггеров.
Процессы, которые получают значения из кэша истории и затем помещают их в базу данных - history syncers (настраивается через параметр конфигцрации сервера StartDBSyncers) принимают до 1000 значений в каждой итерации и вычисляют все триггеры, которые ссылаются на соответствующие элементы данных. Ранее, расчет каждой функция триггера приводил к отдельному запросу в базу данных. Начиная с Zabbix 1.8.8, подготавливается один SQL запрос для всех функций у всех триггеров, которые были добавлены на обновление синхронизатором истории (history syncer).
Кроме того, если есть несколько триггеров в этой партии, которые проверяют текстовые или журнальные элементы данных, в этом случае последние два значения для элементов данных такие же как эти, кэшируются для выполнения текущего запуска.
В общей сложности, это приводит к тому что значительно снижается количество запросов в базу данных и, следовательно, к улучшению производительности.
Эти же улучшения влияют на внутренний процесс timer (в настоящее время только один такой процесс может быть запущен), которые вычисляют триггеры включающие в себя функции на основе времени.
Синхронизаторы истории пытаются взять новую партию значений из истории кэша каждые 0-5 секунд, после того как завершат работу над предыдущей партией на основе того как много значений было получено ранее (например, если было получено 1000 значений, синхронизатор истории сделает следующую попытку незамедлительно сразу после окончания работы).
Теперь макрос {TRIGGER.ID} поддерживается в веб-интерфейсе и в оповещениях, если он используется в поле URL триггера.