Добавление нового пользовательского поля в kibana

#elasticsearch #kibana #elastic-stack #kibana-7

#elasticsearch #kibana #эластичный стек #kibana-7

Вопрос:

Есть ли способ добавить новое поле ко всем документам в индексе в kibana? Например, предположим, у меня есть возраст всех пользователей в моей эластичной кибане. И я хочу разделить их на две категории: ниже 50 и выше 50. Итак, если есть пользователь, которому 23 года, у него должно быть значение категории ниже 50.

Ответ №1:

Я хотел бы добавить еще один вариант к тому, который предлагает @dravit. Если вы не хотите изменять свои документы, и вам нужно только это дополнительное поле для выполнения анализа в Kibana, вы можете добавить скриптовое поле в свой шаблон индекса, чтобы category значение вычислялось во время запроса.

Ссылка: https://www.elastic.co/guide/en/kibana/current/scripted-fields.html

Сценарий для вашего скриптового поля будет таким же простым, как

 doc['age'].value > 50 ? "Above 50" : "Below 50"
 

Комментарии:

1. @dravit amp; glenacota . У меня есть данные о 10000 пользователях и панель мониторинга для просмотра сведений о работоспособности. Теперь требовалось иметь панели мониторинга, основанные на категории. Вместо создания 3 разных панелей мониторинга для 3 разных категорий я планирую добавить новое поле для всех пользователей с именем category и пометить их как ниже 50, 50-75 и выше 75. и, используя поле category , я планирую использовать визуальные элементы управления в kibana. Когда я выбираю категорию в раскрывающемся списке, визуальные эффекты на панели инструментов будут соответствующим образом меняться.

2. Вы можете создавать фильтры из скриптовых полей в Kibana. Я бы сказал, что, если ваши требования снова изменятся, поля сценариев будут наиболее гибким решением для вас, потому что они не изменят документы. BUT имейте в виду, что они сопряжены с вычислительными затратами, поскольку их необходимо вычислять во время запроса. Если время загрузки ваших панелей мониторинга со скриптовыми полями вас устраивает, то я бы пошел на это.

3. был ли дан ответ на ваш вопрос, @UMAMAHESWAR?

4. Я добавил скриптовое поле, и теперь оно работает хорошо. Danke 🙂

Ответ №2:

Да, вы можете. То, что вам нужно, — это обновление по запросу и безболезненные сценарии.

Они дадут вам гибкость, чтобы сделать что-то в этом роде

 POST /users/string/_update_by_query
{
"script": "ctx._source.category = ctx._source.age > 50 ? "Above 50" : "Below 50"
}
 

Комментарии:

1. как это работает? если (категория >50) , то выше , остальное ниже 50 ) . Верно ? Что делать, если мне нужно иметь 3 значения — ниже 50, от 50-75, выше 75.

2. да, это примерно так. как следует из названия, «безболезненные сценарии» (каламбур), вы также можете использовать операторы if-else в сценариях.