digital-garden/source/доклады/Нельзя просто так взять и отправить все логи в Elastic.md
2024-06-13 21:01:37 +03:00

2.2 KiB
Raw Blame History

Презентация:

Описание доклада

Почему писать все логи в Elastic — не такая простая задача, как кажется. Поговорим про особенности использования ElasticSearch для логов, подводные камни Java-клиента (и не только) и инженерную (бес)культурность.

Мои заметки

У них три кластера Эластика, причем они не связаны. Kibana может осуществлять крос-кластерный поиск.

У спикера в системе 250_000 событий отправляется в эти 3 контура.

Делить по дате не удачная идея, так как индексы будут разных размеров. Эластик с 6.7 версии умеет сам дробить индексы.

Есть два клиента для доступа к эластику. High Livel Rest Client это обертка над Rest Client. Hight Level работает в 2+ раз медлнее.

Отправлять данные нужно пачками, иначе технические данные каждого HTTP запроса могут быть больше, чем сама лог запись. Есть какой-то Bulk API для решения этой проблемы. Можно сделать так, чтобы в одной пачке были данные для разных индексов.

Файловер перестает работать, так как Bulk запросы всегда возвращают HttpCode 200. Конкретные ошибки будут в теле запроса.

Если мы сами добавляем для документа айдишник, то эластик будет проверять есть ли такой айди уже в индексе. И UUID v4 снижает производительность поиска. Эластик любит UUID v1 и nanotime.