API - Отчеты
Для выполнения запроса к API необходима дополнительная авторизация.
Используйте в запросе заголовок Authorization: Bearer <персональный токен>.
Шаблоны отчетов
Получение списка доступных пользователю шаблонов
GET /api/public/sm/v2/reports/templates
Параметры запроса
| Название параметра | Тип параметра | Обязательный параметр | Значение по умолчанию | Описание параметра |
|---|---|---|---|---|
| page | integer | нет | null | Номер страницы |
| perPage | integer | нет | null | Количество записей на одну страницу. Если -1 - будут возвращены все КЕ |
| search | string | нет | null | Строка поиска |
| sortCol | string | нет | null | Название поля, по которому выполняется сортировка |
| sortDir | string | нет | null | Направление сортировки (asc/desc) |
| skip | integer | нет | null | Количество записей, которое требуется пропустить |
Пример выходной модели
[
{
"id": 744,
"name": "TestReportMulti",
"description": null,
"type": "availability-multi",
"workGroup": {
"id": 490,
"name": "DIAD"
},
"reportCount": 1,
"lastReport": {
"id": "5dd2c63e-60c0-49af-8fde-dfac8d7784b7",
"name": "12.03.2024 17:16 TestReportMulti",
"description": "11.03.2024 00:00 - 12.03.2024 00:00",
"error": null,
"status": "Ok",
"entityInfo": {
"createdAt": "2024-03-12T14:16:41.193456+00:00",
"createdBy": 90206,
"createdByName": "Getmanov Andrey",
"updatedAt": null,
"updatedBy": -1,
"updatedByName": null
}
}
},
{
"id": 40,
"name": "DIAD-1",
"description": null,
"type": "availability-single",
"workGroup": {
"id": 490,
"name": "DIAD"
},
"reportCount": 2,
"lastReport": {
"id": "b9cd13db-e51f-45f1-965d-c61208bfb881",
"name": "12.03.2024 17:16 DIAD-1",
"description": "12.03.2024 00:00 - 12.03.2024 17:16",
"error": null,
"status": "Ok",
"entityInfo": {
"createdAt": "2024-03-12T14:16:14.280912+00:00",
"createdBy": 90206,
"createdByName": "Getmanov Andrey",
"updatedAt": null,
"updatedBy": -1,
"updatedByName": null
}
}
}
]
Атрибуты выходной модели шаблона
| Атрибут | Тип | Описание |
|---|---|---|
| id | integer | Идентификатор шаблона |
| name | string | Название шаблона |
| description | string | Описание шаблона |
| type | string | Тип шаблона |
| workGroup | object | Модель рабочей группы, которой принадлежит шаблон |
| reportCount | integer | Количество отчетов |
| lastReport | object | Модель с информацией по последнему рассчитанному шаблону |
Коды ответа
| Код | Описание |
|---|---|
| 200 | Запрос успешно исполнен |
| 401 | Пользователь не авторизован |
| 500 | Непредвиденная ошибка при обработке запроса |
Получение статуса отчета по идентификатору
GET /api/public/sm/v2/reports/{reportId}
Параметры запроса
| Параметр | Тип | Обязательный параметр | Значение по умолчанию | Описание |
|---|---|---|---|---|
| reportId | string | да | нет | Идентификатор отчета |
Пример выходной модели
{
"id": "71a45161-97af-4c0f-a59f-ae0146f3a46c",
"name": "13.03.2024 11:09 DIAD TestReportMulti",
"description": "12.03.2024 00:00 - 13.03.2024 00:00",
"error": null,
"status": "Ok",
"entityInfo": {
"createdAt": "2024-03-13T08:09:46.115926+00:00",
"createdBy": 90206,
"createdByName": "Getmanov Andrey",
"updatedAt": null,
"updatedBy": -1,
"updatedByName": null
}
}
Атрибуты выходной модели шаблона
| Атрибут | Тип | Описание |
|---|---|---|
| id | string | Идентификатор отчета |
| name | string | Название отчета |
| description | string | Описание отчета |
| error | string | Текст ошибки, если статус расчета не равен Ok |
| status | string | Статус расчета отчета |
| entityInfo | object | Информация о том, кто запустил расчет отчета |
Дополнительная информация по атрибутам
Возможные значения атрибута status:
Unspecified- не определенPending- в ожидании расчетаOk- рассчитан успешноError- ошибка расчетаCalculating- рассчитывается в текущий момент
Коды ответа
| Код | Описание |
|---|---|
| 200 | Запрос успешно исполнен |
| 400 | Неверный идентификатор отчета |
| 401 | Пользователь не авторизован |
| 404 | Отчет не найден |
| 500 | Непредвиденная ошибка при обработке запроса |
Отчеты о доступности системы
Запустить расчёт отчета о доступности
Отчёт может быть создан только по шаблону. У пользователей, запускающих расчет отчёта, должно быть право на чтение указанного шаблона.
Срок хранения отчета – одни сутки.
По истечению этого срока экспорт результатов расчета невозможен.
POST /api/public/plugins/availability-reports/v1/reports/single
Параметры запроса
Отсутствуют
Пример входной модели
{
"params": {
"rsmMapId": 0,
"configItemIds": [
0
],
"activityTimes": [
{
"days": [
"Su"
],
"from": "string",
"to": "string",
"applyHolidays": true,
"applyWorkingDays": true
}
],
"filters": [
{
"type": "Including",
"severities": [
0
],
"tagIds": [
0
],
"duration": {
"type": "GreaterThan",
"value": 0
}
}
],
"withMaintenance": true,
"recoveryTimeObjective": 0,
"meanTimeBetweenFailures": true,
"meanTimeToRestoreService": true,
"maxDowntime": true
},
"name": "string",
"description": "string",
"templateId": 0,
"range": {
"start": "2024-03-13T08:36:36.314Z",
"end": "2024-03-13T08:36:36.314Z"
},
"expirationTime": 0
}
Поля тела запроса
| Название поля | Обязательное поле | Тип поля | Значение по умолчанию | Описание |
|---|---|---|---|---|
| params | нет | object | null | Параметры отчета. Если null, то берется из шаблона. |
| name | нет | string | null | Название отчета. Если null, то берется из шаблона. |
| description | нет | string | null | Описание отчета. Если null, то берется из шаблона. |
| templateId | да | integer | нет | Идентификатор шаблона |
| range | нет | object | null | Период расчета. Если null, то берется из шаблона. |
| expirationTime | нет | integer | null | Время хранения отчёта в часах |
Поля объекта params:
| Название поля | Тип поля | Значение по умолчанию | Описание |
|---|---|---|---|
| rsmMapId | integer | null | Идентификатор карты РСМ. Если null, то берется из шаблона. |
| configItemIds | integer[] | null | Список идентификаторов КЕ. Если null, то берется из шаблона. |
| activityTimes | object | null | Список периодов активности. Если null, то берется из шаблона. |
| filters | object | null | Фильтры сигналов. Если null, то берется из шаблона. |
| withMaintenance | boolean | null | Учитывать сервисный режим. Если null, то берется из шаблона. |
| recoveryTimeObjective | integer | null | RTO (максимальное время нахождения КЕ в проблемном статусе). Если null, то берется из шаблона. |
| meanTimeBetweenFailures | boolean | null | Среднее время наработки на отказ. Если null, то берется из шаблона. |
| meanTimeToRestoreService | boolean | null | Среднее время восстановления службы. Если null, то берется из шаблона. |
| maxDowntime | boolean | null | Длительность периода максимального простоя. Если null, то берется из шаблона. |
Поля объекта activityTimes:
| Название поля | Тип поля | Значение по умолчанию | Описание |
|---|---|---|---|
| days | string[] | null | Дни недели [ Su, Mo, Tu, We, Th, Fr, Sa ] |
| from | string | null | Дата начала периода |
| to | string | null | Дата завершения периода |
| applyHolidays | boolean | null | Включить праздники |
| applyWorkingDays | boolean | null | Включить рабочие дни |
Поля объекта filters:
| Название поля | Тип поля | Значение по умолчанию | Описание |
|---|---|---|---|
| type | string[] | null | Тип фильтра Including или Excluding |
| severities | integer[] | null | Критичность сигнала |
| tagIds | integer[] | null | Идентификаторы тегов |
| duration | object | null | Длительность сигнала |
Поля объекта duration:
| Название поля | Тип поля | Значение по умолчанию | Описание |
|---|---|---|---|
| type | string[] | null | Условие GreaterThan или LessThan |
| value | integer[] | null | Длительность сигнала в секундах |
Пример выходной модели
При успешном исполнении запроса возвращается идентификатор отчета
{
"id": "8df89b87-50cb-4518-bd18-bef4c5aa672c"
}
Атрибуты выходной модели
| Атрибут | Тип | Описание |
|---|---|---|
| id | string | Идентификатор заказного отчёта |
Коды ответа
| Код | Описание |
|---|---|
| 200 | Запрос успешно выполнен |
| 400 | Неверная модель данных в теле запроса. Не найден шаблон с указанным идентификатором. Не удалось выполнить расчёт с указанным шаблоном или настройками. |
| 401 | Пользователь не авторизован |
| 403 | Недостаточно прав для выполнения действия |
| 500 | Непредвиденная ошибка при обработке запроса |
Запустить расчёт мультиотчета о доступности
Мультиотчёт может быть создан только по шаблону. У пользователей, запускающих расчет мультиотчёта, должно быть право на чтение указанного шаблона.
Срок хранения мультиотчёта – одни сутки.
По истечению этого срока экспорт результатов расчета невозможен.
POST /api/public/plugins/availability-reports/v1/reports/multi
Параметры запроса
Отсутствуют
Пример входной модели
{
"params": {
"templates": [
{
"id": 0,
"params": {
"rsmMapId": 0,
"configItemIds": [
0
],
"activityTimes": [
{
"days": [
"Su"
],
"from": "string",
"to": "string",
"applyHolidays": true,
"applyWorkingDays": true
}
],
"filters": [
{
"type": "Including",
"severities": [
0
],
"tagIds": [
0
],
"duration": {
"type": "GreaterThan",
"value": 0
}
}
],
"withMaintenance": true,
"recoveryTimeObjective": 0,
"meanTimeBetweenFailures": true,
"meanTimeToRestoreService": true,
"maxDowntime": true
},
"weight": 0
}
]
},
"name": "string",
"description": "string",
"templateId": 0,
"range": {
"start": "2024-03-13T09:59:34.612Z",
"end": "2024-03-13T09:59:34.612Z"
},
"expirationTime": 0
}
Поля тела запроса
| Название поля | Обязательное поле | Тип поля | Значение по умолчанию | Описание |
|---|---|---|---|---|
| params | нет | object | null | Параметры мультиотчета. Если null, то берется из шаблона. |
| name | нет | string | null | Название мультиотчета. Если null, то берется из шаблона. |
| description | нет | string | null | Описание мультиотчета. Если null, то берется из шаблона. |
| templateId | да | integer | Идентификатор шаблона | |
| range | нет | object | null | Период расчета. Если null, то берется из шаблона. |
| expirationTime | нет | integer | null | Время хранения мультиотчета в часах |
Поля объекта params:
| Название поля | Тип поля | Значение по умолчанию | Описание |
|---|---|---|---|
| templates | object[] | null | Список параметры отчетов, входящих в мультиотчет . Если null, то берется из шаблона. |
Поля объекта из массива templates:
| Название поля | Тип поля | Значение по умолчанию | Описание |
|---|---|---|---|
| rsmMapId | integer | null | Идентификатор карты РСМ. Если null, то берется из шаблона. |
| configItemIds | integer[] | null | Список идентификаторов КЕ. Если null, то берется из шаблона. |
| activityTimes | object | null | Список периодов активности. Если null, то берется из шаблона. |
| filters | object | null | Фильтры сигналов. Если null, то берется из шаблона. |
| withMaintenance | boolean | null | Учитывать сервисный режим. Если null, то берется из шаблона. |
| recoveryTimeObjective | integer | null | RTO (максимальное время нахождения КЕ в проблемном статусе). Если null, то берется из шаблона. |
| meanTimeBetweenFailures | boolean | null | Среднее время наработки на отказ. Если null, то берется из шаблона. |
| meanTimeToRestoreService | boolean | null | Среднее время восстановления службы. Если null, то берется из шаблона. |
| maxDowntime | boolean | null | Длительность периода максимального простоя. Если null, то берется из шаблона. |
Поля объекта activityTimes:
| Название поля | Тип поля | Значение по умолчанию | Описание |
|---|---|---|---|
| days | string[] | null | Дни недели [ Su, Mo, Tu, We, Th, Fr, Sa ] |
| from | string | null | Дата начала периода |
| to | string | null | Дата завершения периода |
| applyHolidays | boolean | null | Включить праздники |
| applyWorkingDays | boolean | null | Включить рабочие дни |
Поля объекта filters:
| Название поля | Тип поля | Значение по умолчанию | Описание |
|---|---|---|---|
| type | string[] | null | Тип фильтра Including или Excluding |
| severities | integer[] | null | Критичность сигнала |
| tagIds | integer[] | null | Идентификаторы тегов |
| duration | object | null | Длительность сигнала |
Поля объекта duration:
| Название поля | Тип поля | Значение по умолчанию | Описание |
|---|---|---|---|
| type | string[] | null | Условие GreaterThan или LessThan |
| value | integer[] | null | Длительность сигнала в секундах |
Пример выходной модели
При успешном исполнении запроса возвращается идентификатор мультиотчёта
{
"id": "be6a6b26-0799-49ca-a9e6-91e2c1c75565"
}
Атрибуты выходной модели
| Атрибут | Тип | Описание |
|---|---|---|
| id | string | Идентификатор мультиотчёта |
Коды ответа
| Код | Описание |
|---|---|
| 200 | Запрос успешно выполнен |
| 400 | Неверная модель данных в теле запроса. Не найден шаблон с указанным идентификатором. Не удалось выполнить расчёт с указанным шаблоном или настройками. |
| 401 | Пользователь не авторизован |
| 403 | Недостаточно прав для выполнения действия |
| 500 | Непредвиденная ошибка при обработке запроса |
Экспорт файла отчета доступности
GET /api/public/plugins/availability-reports/v1/reports/{reportId}/export/availability
Параметры запроса
| Параметр | Тип | Обязательный параметр | Значение по умолчанию | Описание |
|---|---|---|---|---|
| reportId | string | да | нет | Идентификатор отчета |
| format | string | нет | Json | Тип файла экспорта. Доступны форматы: Json и Xls |
| timeZone | string | нет | нет | Временная зона. Примеры значений: Europe/Moscow, Europe/Berlin, Asia/Shanghai |
Экспорт файла мультиотчета доступности
GET /api/public/plugins/availability-reports/v1/reports/{reportId}/export/multi/availability
Параметры запроса
| Параметр | Тип | Обязательный параметр | Значение по умолчанию | Описание |
|---|---|---|---|---|
| reportId | string | да | нет | Идентификатор отчета |
| format | string | нет | Json | Тип файла экспорта. Доступны форматы: Json и Xls |
| timeZone | string | нет | нет | Временная зона. Примеры значений: Europe/Moscow, Europe/Berlin, Asia/Shanghai |
Экспорт файла отчета о доступности КЕ
GET /api/public/plugins/availability-reports/v1/reports/{reportId}/export/config-items-availability/{configItemId}
Параметры запроса
| Параметр | Тип | Обязательный параметр | Значение по умолчанию | Описание |
|---|---|---|---|---|
| reportId | string | да | нет | Идентификатор отчета |
| configItemId | string | да | нет | Идентификатор КЕ |
| format | string | нет | Json | Тип файла экспорта. Доступны форматы: Json и Xls |
| timeZone | string | нет | нет | Временная зона. Примеры значений: Europe/Moscow, Europe/Berlin, Asia/Shanghai |