Поиск наоборот: материализуем результаты поискаЭлементы архитектуры

Доклад принят в программу конференции
Николай Сивко
okmeter.io

Сооснователь okmeter.io.

Тезисы

Наш сервис мониторинга постоянно обрабатывает миллионы метрик от агентов, установленных на серверах наших клиентов.

Любая операция с метриками начинается с поиска, эта стадия достаточно затратна по ресурсам, но, с другой стороны, у нас очень много повторяющихся запросов (проверка триггеров). Простое кэширование на определенное время нам не подошло - новая метрика сразу должна быть видна на графиках, и ее необходимо учитывать при проверке триггеров.

Я расскажу, как нам удалось материализовать результаты поиска для повторяющихся запросов:
* материализация запросов в хранилище;
* перколяция ("обратный" поиск; ищем, каким запросам соответствует документ) при записи метрик;
* чтение из кэша;
* вымывание устаревших метрик.

Немного о системе:
* основное хранилище: cassandra;
* поиск: elasticsearch (100 млн. документов без учета репликации);
* поток записи: ~100 тысяч метрик в секунду.

Организация системы кеширования
,
Оптимизация производительности

Другие доклады секции Элементы архитектуры