2017-02-03 10 views
0

Я вставил ниже записи JSON по моему эластичному индексу. Как получить количество всех элементов, присутствующих в массиве «devices», чтобы счет можно было визуализировать на панели управления Kibana?Количество элементов на визуализации кибаны

Условие фильтра - Количество устройств должно отображаться как «4» для приложения SAMPLE и «2» для приложения SAMPLE2 на Kibana.

Без условия фильтра - количество устройств, которое должно отображаться как «6» устройств.

{ 
    "status" : "SUCCESS", 
    "request" : ["ABC"], 
    "applicationName" : "SAMPLE", 
    "endTime" : 1478772517736, 
    "devices" : ["d1","d2","d3","d4"] 
} 
, 
{ 
    "status" : "FAILED", 
    "request" : ["EDF"], 
    "applicationName" : "SAMPLE2", 
    "endTime" : 1478772517736, 
    "devices" : ["d5","d12"] 
} 

ответ

0

Вы должны создать в Kibana в scripted field для того, чтобы получить длину в качестве массива элемента. Так что ваш сценарий может выглядеть следующим образом:

doc['devices'].values.size() 

ИЛИ

doc['devices'].values.length 

И тогда вы можете иметь Таблица визуализации в данных, где наличие сосчитать массив в соответствующий к applicationName с помощью terms aggregation. Или вы могли бы применить filters поговорку:

applicationName:"SAMPLE" 
applicationName:"SAMPLE2" 

, который будет отображать количество массива для заданных критериев фильтрации. Это может быть полезно SO.