Разберем настройки.
Первоначально настраивается
метрика —
это значение, по которому будут агрегировать все поля. Метрики вычисляются на основе значений, извлеченных тем или иным способом из документов. Значения обычно извлекаются из полей документа, но также могут быть сгенерированы с использованием скриптов. В данном случае ставим в
Aggregation: Count (суммарное количество логов).
После этого делим таблицу по сегментам (полям), по которым будет считаться метрика. Эту функцию выполняет настройка Buckets, которая в свою очередь состоит из 2 вариантов настройки:
- Split rows — добавление колонн и в последующем деление таблицы на строки.
- Split table — деление на несколько таблиц по значениям определенного поля.
В
buckets можно добавить несколько делений для создания нескольких столбцов или таблиц, ограничения тут скорее стоят логические. В aggregation можно выбрать по какому способу будет происходить деление на сегменты: ipv4 range, date range, Terms и т.д. Наиболее занятным выбором является именно
Terms и
Significant Terms, деление на сегменты производится по значениям определенного поля индекса, разница между ними заключается в количестве возвращаемых значений, и их отображение. Так как мы хотим поделить таблицу по названию блейдов, выбираем поле —
product.keyword и задаем размер в количестве 25 возвращаемых значений.
Вместо строк в elasticsearch используется 2 типа данных —
text и
keyword. Если вы хотите выполнить полнотекстовый поиск, вы должны использовать тип text, очень удобная вещь при написании своего поискового сервиса, например, ищете упоминание слова в конкретном значении поля (тексте). Если вы хотите только точное совпадение, вы должны использовать тип keyword. Так же тип данных keyword следует использовать для полей, требующих сортировки или агрегации, то есть, в нашем случае.
В результате Elasticsearch считает количество логов за определенное время с агрегированием по значению в поле product. В
Custom Label задаем название колонны, которое будет отображаться в таблице, задаем время за которое собираем логи, запускаем прорисовку — Kibana отправляет запрос в elasticsearch, ждет ответ и после визуализирует полученные данные. Таблица готова!