Code:
select clock,ns,value from history where itemid=885740 and clock<=1469882600 order by clock desc limit 2
Когда DBA-шники видят такой запрос - они сбрасывают пар, изливают кипяток и производят кирпичи.
Размер таблицы history - почти 1Тб, MySQL, таблица партиционирована.
Кто-нибудь может мне объяснить, зачем, ЗАЧЕМ нужна эта странная логика:
"Если не нашли 2 значения за день, отступить день назад и посмотреть за неделю, если не за неделю, то за месяц, если не за месяц, то за всё время".
Для метрики, которая обновляется раз в 60 секунд - можно как-то не пытаться считать триггер по значениям, полученным "когда-нибудь 10 лет назад" ??? Кто этот маразм вообще придумал?
Подсказываю: если метрика обновляется раз в 60 секунд, то вычисление триггера даже по значению, пришедшему час назад - это нонсенс. Такой триггер - это свет далёких звёзд, он просто никому даром не нужен. Если мониторинг настроен, то будут вопить триггеры о недоступности Zabbix-агента, отсутствии данных, бешенных очередях, о чём угодно - содержательном, информативном. Почему нельзя исхдить из того, что, например, если в течение 5-ти периодов обновления метрики данные в неё не поступали, то триггер по ней по определению будет в UNKNOWN?