Функция, которую я пытаюсь реализовать, заключается в создании метрики в кибане, которая отображает количество «непроверенных» пользователей. Я отправляю журнал, отправленный, когда пользователь регистрируется, затем журнал, когда пользователь проверяется.
Итак, подсчет, который я хочу, - это разница между количеством зарегистрированных и подтвержденных.
В kibana я не могу выполнить такую математическую операцию, поэтому я нашел обходной путь: я добавил «скриптовое поле» с именем «unvalidated», которое равно 1, когда пользователь регистрируется, и -1, когда пользователь проверяет свою учетную запись. Сумма поля "unvalidated" должна быть количеством непроверенных пользователей.
Это сценарий, который я определил в моем поле сценария:
doc['ctxt_code'].value == 1 ? 1 : doc['ctxt_code'].value == 2 ? -1 : 0
с:
ctxt_code 1 как журнал регистрации
ctxt_code 2 как проверенный журнал
Эта настройка хорошо работает, когда все мои журналы имеют «ctxt_code», но когда журнал без этого поля отправляется, kibana выдает следующую ошибку:
Field [ctxt_code] used in expression does not exist in mappings
Я не могу понять эту ошибку, потому что кибана говорит:
If a field is sparse (only some documents contain a value), documents missing the field will have a value of 0
в чем дело.
Кто-нибудь знает?
ctxt_code
существует в сопоставлениях всех ваших индексов logstash? Я вижу в правом верхнем углу скриншота, что вы работаете за последние семь дней, можете ли вы убедиться, что индексы logstash за последние семь дней имеют это полеctxt_code
в созданном отображении? - person Val   schedule 25.05.2016