Kibana - анализ журнала - поиск уникального номера транзакции

У меня есть настройка EFK для централизованного хранения и запроса журналов всех служб приложений. Есть несколько сервисов, которые обрабатывают события из сообщений.

Я хочу запросить, сколько уникальных событий (номер транзакции: UUID) не удалось выполнить для каждой службы, учитывая, что будет повторяться сообщение об ошибке, поскольку брокер сообщений настроен на повторную доставку сообщений 5 раз при любых исключениях времени выполнения. Я отфильтровал службы по их имени, но с помощью скрипта Painless я не смог подстроку номера транзакции из сообщения из-за этой ошибки, Fielddata is disabled on text fields...Alternatively use a keyword field. Целесообразно ли устанавливать ключевое слово для поля сообщения журнала? Как запросить такие вещи в Kibana?


person Vijay Veeraraghavan    schedule 22.07.2019    source источник


Ответы (1)


Fielddata=true требуется для включения сортировки, агрегирования и сценариев в текстовом поле. Недостатком является то, что он использует много места в куче и приведет к дорогостоящим операциям.

Ваш запрос на поиск уникальных событий для каждой службы звучит для меня как агрегация. Вы хотите знать количество «документов» (строк/элементов) на службу, на UUID транзакции, которые вы подстроите из сообщения об ошибке, верно? Я бы предложил вам создать новое поле типа ключевого слова для транзакции UUID. Таким образом, вы делаете подстроку во время индекса, что повышает производительность. Затем вы можете выполнить агрегацию службы с субагрегацией в недавно созданном поле UUID транзакции, и это даст вам подсчет.

Конечно, это имеет смысл только в том случае, если вы будете регулярно использовать это поле, но я полагаю, что да.

person SylarBenes    schedule 22.07.2019