Comments 15
Можно организовать удаление housekeeper'ом, но не через DELETE FROM, а именно через drop_chunk() самого TimescaleDB. Поэтому enterprise фича не особо и нужна, если housekeeper научится понимать дроп чанков из расширения. Можно добавить галочку в настройки, а в коде сделать if-else блок с DELETE FROM или drop_chunk() =)
Отличная статья! Не зря общались на HL++ в Новосибирске на стенде :)
У нас уже полтора месяца используется связка Zabbix+TimescaleDB на средних размеров инсталляции. Время запросов в таблицы history с использованием встроенных функций timescale увеличилась примерно на порядок. Скорость обычных запросов, которые использует и сам Zabbix — выросла, но несущественно (процентов на 30-50). Возможно, нужно что-то ещё тюнить
Я смотрел исходники Zabbix 4.2.1 — там все изменения, касающиеся timescale, сводятся к очистке исторических данных, хаускипингу. К сожалению, собственно select-запросы не учитывают использование tsdb, так что о каком-то существенном росте производительности в данном случае говорить не приходится. Надеюсь, что выборка из исторических таблиц будет учитывать tsdb в следующих версиях.
Время запросов в таблицы history с использованием встроенных функций timescale увеличилась примерно на порядок
то есть стало хуже?
Время запросов в таблицы history с использованием встроенных функций timescale увеличилась примерно на порядок
Вот я тоже не понял. Запросы стали в 10 раз дольше выполняться?
Если в системе мониторинга хотя бы 10% от количества items составляют triggers и calculated items — именно их расчёт становится «узким местом», поскольку требуется выборка исторических данных. И как раз здесь сочетание Zabbix+TimescaleDB не даёт тех существенных преимуществ, которые могло бы дать, если бы select'ы на получение исторических данных использовали встроенные функции TSDB.
Например:
SELECT time_bucket(180, clock) period,
max(ho.host) HOST,
max(i.key_) item_key,
last(value, clock) item_value
FROM history h
INNER JOIN items i USING(itemid)
INNER JOIN hosts ho USING(hostid)
WHERE
h.clock > (extract(epoch FROM now()) :: int - 300)
AND
i.key_ ~ '^(system|vm\.mem|vfs\.fs)\.'
GROUP BY ho.hostid,
i.itemid,
period
ORDER BY period DESC
Если общественность проявит достаточный интерес, то расскажем об этом всём подробнее на конференции в августе в Москве.
Мне одному кажется что графики nvps по полчаса каждый — маловато? Стандартный хаускипер запускается каждый час, а тут как?
Думаю, Zabbix стоит выложить на github эти бенчмарки, и все встанет на свои места.
Zabbix, временные ряды и TimescaleDB