Incident Manager API
Point In Time
Для корректной работы пагинации перед запросом инцидентов и результатов агрегаций необходимо запросить Point In Time (PIT). При переключении страниц Incident Manager PIT должен остаться прежним, в ином случае необходимо запросить новый PIT, а старый удалить при помощи запроса к API.
Количество активных PIT в системе ограничено, поэтому если PIT более не актуален, необходимо выполнить запрос на его удаление.
Запрос PIT
Для получения PIT для запроса инцидентов и результатов агрегаций необходимо выполнить следующий запрос:
GET _im/incidents/pit
Для получения PIT для запроса только инцидентов, необходимо добавить в запрос флаг is_show_aggs=false
:
GET _im/incidents/pit?is_show_aggs=false
Удаление PIT
Когда PIT становится неактуальным (например пользователь закрыл Incident Manager, обновил фильтры и т.д.), его необходимо удалить.
DELETE _im/incidents/pit
{
"id": "{pit_id}"
}
Получение инцидентов и результатов агрегаций
Общий вид запроса для получения инцидентов и результатов агрегаций:
GET _im/incidents_full_types
{
"pit": "pit_id",
"from": 0,
"size": 25,
"search_query": "{\"match_all\":{}}",
"additional_fields": [],
"end_time": "now",
"start_time": "now-1d",
"with_total_docs" : true,
"is_show_aggs" : true
}
Название | Синтаксис | Описание |
---|---|---|
pit | <string> | Point In Time, полученный при запросе PIT . |
from | <int> | Начальный индекс для поиска. |
size | <int> | Количество результатов в ответе. |
search_query | <string> | DSL query, сформированный на основе поисковой строки. |
additional_fields | <array> | см. Additional Fields . |
start_time | <string> | Начальная временная метка поиска. |
end_time | <string> | Конечная временная метка поиска. |
with_total_docs | <bool> | При значении true дополнительно возвращает поле total_docs , содержащее общее количество документов. |
is_show_aggs | <bool> | При значении true возвращает инциденты и результаты агрегаций, при значении false только инциденты. |
Если в запросе не указать PIT, в ответе всегда будут возвращаться документы из актуальной версии индекса.
Additional Fields
Параметр additional_fields
используется для передачи пользовательских фильтров. Он представляет собой массив объектов, содержащих поля name
, type
и value
.
Название | Cинтаксис | Описание |
---|---|---|
name | <string> | Название поля для фильтрации. |
type | <string> | Тип поля. Допустимы значения number , text , select , multiselect . |
value | <string> | Значение фильтра. |
При type=multiselect
поле value
должно иметь не строковый тип, а массив строк.
Пример заполнения additional_fields
[
{
"name": "select_field",
"type": "select",
"value": "test"
},
{
"name": "text_field",
"type": "text",
"value": "test*"
},
{
"name": "multiselect_field",
"type": "multiselect",
"value": ["t1", "t2"]
}
]