Кибана: схлопывание поля и внутренние удары не работают для визуализации

В Kibana я создал поиск, который возвращает последний статус для каждого сервера, используя свертывание полей и внутренние попадания.

{
  "query": {
    "match": {
      "event_name": "server_status"
    }
  },
  "collapse": {
    "field": "server_id",
    "inner_hits": {
      "name": "last_status",
      "size": 1,
      "sort": [
        {
          "@timestamp": "asc"
        }
      ]
    },
    "max_concurrent_group_searches": 4
  }
}

У меня 13 серверов. При просмотре результатов в разделе Обнаружение я вижу 13 записей, как и хотел (я создал новое событие для одного сервера и не должен возвращать 14 записей).

Количество попаданий, указанное Kibana в левом верхнем углу, равно 14, но это нормально, как указано в docs, то есть общее количество обращений, а не внутреннее обращение.

Проблема в том, что при создании визуализаций, таких как, например, Круговая диаграмма, учитывается общее количество записей (14), а не мое внутреннее попадание, которое должно быть 13.

Таким образом, я изменил метрику Slice Size на Unique Count для server_id и получил 13, как и хотел.

Но как только я настроил параметр Split Slices в термине статуса, я вернулся к 14 записям (старая запись для сервера, у которого было изменение статуса, все еще появлялась).

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


person Samy Kacimi    schedule 20.03.2018    source источник


Ответы (1)


Ответ с форума Elastic

Извините, но то, о чем вы просите, невозможно. Что вам нужно, так это выполнить агрегацию поверх свернутых документов, чего Elasticsearch и Kibana не могут сделать.

Я думаю, что лучший обходной путь, который у вас был бы на данный момент, это наличие рядом с фактическим индексом со всеми данными, которые вы в настоящее время храните, еще один индекс, который имеет только самый последний статус каждого сервера, поэтому в основном ваша система доставки данных будет обновлять документы с последним статусом после получения нового статуса, а не просто добавлять их туда. Таким образом, вы можете использовать этот индекс для визуализации текущего состояния вашей инфраструктуры, а другой — для визуализации исторических данных.

person Samy Kacimi    schedule 20.03.2018