В 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 записям (старая запись для сервера, у которого было изменение статуса, все еще появлялась).
Как мне сказать Кибане, что я хочу, чтобы моя визуализация учитывала только мой внутренний удар? Это означает получение только последнего события состояния для каждого сервера и разделение срезов для каждого состояния на круговой диаграмме.