API - Заказные отчеты SLA
Для выполнения запроса к API необходима дополнительная авторизация.
Используйте в запросе заголовок Authorization: Bearer <персональный токен>.
Получение списка доступных пользователю шаблонов Доступности
GET /api/public/sm/v1/sla/templates
Параметры запроса
Запрос без параметров
Пример выходной модели
[
{
"id": 1,
"type": "Single",
"name": "SLA template",
"description": "sample SLA template",
"period": "Today",
"ownerType": "User",
"userId": 1268,
"workGroup": null
},
{
"id": 2,
"type": "Multi",
"name": "SLA multitemplate",
"description": "sample SLA multitemplate",
"period": "ThisMonth",
"ownerType": "WorkGroup",
"userId": null,
"workGroup": {
"id": 1,
"userspaceId": 1,
"name": "Sample WorkGroup",
"managerId": 1268
}
]
Атрибуты выходной модели
| Атрибут | Тип | Описание |
|---|---|---|
| id | long | Идентификатор шаблона SLA |
| type | string | Тип шаблона SLA. "Single" для обычного шаблона и "Multi" для мультишаблона |
| name | string | Название шаблона SLA |
| description | string | Описание шаблона SLA |
| period | string | Интервал расчета для шаблона по умолчанию |
| ownerType | string | Тип владельца шаблона SLA |
| userId | long | Идентификатор пользователя, владеющего шаблоном SLA. Null, если шаблоном владеет рабочая группа |
| workGroup | object | Модель представления рабочей группы, владеющей шаблоном SLA. Null, если шаблоном владеет пользователь |
Возможные значения атрибута period:
"ThisYear"– текущий год"ThisQuarter"– текущий квартал"ThisMonth"– текущий месяц"ThisWeek"– текущая неделя"Today"– текущий день"PreviousYear"– предыдущий год"PreviousQuarter"– предыдущий квартал"PreviousMonth"– предыдущий месяц"PreviousWeek"– предыдущая неделя"Yesterday"– предыдущий день
Возможные значения атрибута ownerType:
"User"– пользователь"WorkGroup"– рабочая группа
Коды ответа
| Код | Описание |
|---|---|
| 200 | Запрос успешно исполнен |
| 401 | Пользователь не авторизован |
| 403 | Недостаточно прав для просмотра шаблонов Доступности |
| 500 | Непредвиденная ошибка при обработке запроса |
Создание заказного отчета
Заказной отчёт может быть создан только для существующего шаблона Доступности. У пользователей, создающих заказные отчёты, должно быть право на чтение указанного шаблона Доступности.
Срок хранения заказного отчета – одни сутки.
По истечению этого срока экспорт результатов расчета невозможен.
POST /api/public/sm/v1/sla/ordered
Параметры запроса
| Параметр | Тип | Требуется | Описание |
|---|---|---|---|
| template | object | да | Идентификатор шаблона отчёта Доступности, для которого заказывается расчёт |
| range | object | нет | Интервал для расчёта SLA. Если не указан, берётся из модели шаблона |
Пример входной модели
{
"template": { "id": 1 },
"range": {
"start": "2021-10-10T00:00:00+03:00",
"end": "2021-10-11T00:00:00+03:00"
}
}
Пример выходной модели
При успешном исполнении запроса возвращается модель заказного отчета:
{
"id": "1b42209c-e239-44fe-94b1-a2072c8f70c2",
"reportId": null,
"start": "2021-10-10T00:00:00+03:00",
"end": "2021-10-11T00:00:00+03:00",
"template": {
"id": 1,
"name": "Sample template",
"type": "Single",
"period": "ThisWeek",
"ownerType": "User",
"userId": 1268,
"workGroup": null
},
"status": "Pending",
"error": null,
"ownerType": "User",
"userId": 1268,
"workGroup": null
}
Атрибуты выходной модели
| Атрибут | Тип | Описание |
|---|---|---|
| id | string | Идентификатор заказного отчёта (Guid) |
| reportId | string | Идентификатор отчёта SLA |
| start | dateTime | Начало расчётного интервала SLA |
| end | dateTime | Конец расчётного интервала SLA |
| template | object | Шаблон отчёта SLA, используемый для расчёта |
| status | string | Статус заказного отчёта |
| error | string | Сообщение об ошибке, приведшей к остановке расчета |
| ownerType | string | Тип владельца заказного отчёта |
| userId | long | Идентификатор пользователя, которому принадлежит отчет |
| workgroup | object | Модель рабочей группы, которой принадлежит шаблон |
Возможные значения атрибута status:
"Pending"- ожидает выполнения"Calculating"- происходит расчет в текущий момент времени"Ok"- готов"Error"- расчет SLA завершен с ошибкой (сообщение об ошибке содержится в атрибутеerror)
Коды ответа
| Код | Описание |
|---|---|
| 201 | Заказной отчет успешно создан |
| 400 | Неверный временной интервал для расчета отчета |
| 401 | Пользователь не авторизован |
| 403 | Недостаточно прав для просмотра шаблонов Доступности |
| 500 | Непредвиденная ошибка при обработке запроса |
Получение статуса исполнения заказного отчета по идентификатору
GET /api/public/sm/v1/sla/ordered/{id}
Параметры запроса
| Параметр | Тип | Требуется | Описание |
|---|---|---|---|
| id | string | да | Идентификатор заказного отчета |
Пример выходной модели
{
"id": "1b42209c-e239-44fe-94b1-a2072c8f70c2",
"reportId": "c7404180a98c6a7ea7fe593f95e52e1991a1eeb0",
"start": "2021-10-10T00:00:00+03:00",
"end": "2021-10-11T00:00:00+03:00",
"template": {
"id": 1,
"name": "Sample template",
"type": "Single",
"period": "ThisWeek",
"ownerType": "User",
"userId": 1268,
"workGroup": null
},
"status": "Ok",
"error": null,
"ownerType": "User",
"userId": 1268,
"workGroup": null
}
Коды ответа
| Код | Описание |
|---|---|
| 200 | Запрос успешно исполнен |
| 400 | Недопустимое значение идентификатора заказного отчета |
| 401 | Пользователь не авторизован |
| 403 | Недостаточно прав для просмотра данного заказного отчета |
| 404 | Заказной отчет с указанным идентификатором не найден |
| 500 | Непредвиденная ошибка при обработке запроса |
На одном экземпляре микросервиса sm-sla-service-ordered расчеты выполняются последовательно. Для параллельного исполнения расчетов необходимо
в Kubernetes добавить количество реплик микросервиса sm-sla-service-ordered.
Экспорт файла заказного отчета
GET /api/public/sm/v1/sla/ordered/{id}/export?format={format}&exportType={exportType}
Параметры запроса
| Параметр | Тип | Требуется | Описание |
|---|---|---|---|
| id | string | да | Идентификатор заказного отчета |
| format | string | нет | Формат файла экспорта. Доступны форматы: - JSON (по-умолчанию)- XLS |
| exportType | string | нет | Тип экспорта:events- экспорт по событиям (по-умолчанию)configItems- экспорт по КЕ |
Пример экспортного файла отчета по событиям в формате JSON для одиночного шаблона SLA
[
{
"id": "f3d29998-56c4-4075-b53f-8d0120923cb3",
"isIncluded": true,
"trigger": {
"id": 74198,
"name": "Test Smirnov"
},
"dateStart": "2020-02-19T17:00:46+00:00",
"dateEnd": "2020-10-28T07:10:32.013+00:00",
"duration": 21737386000,
"priority": "Problem2",
"tags": [
{
"id": 50,
"name": "yellow",
"colorName": "pink"
}
],
"configItems": [
{
"id": 7884247,
"name": "Свежая КЕ",
"configItemType": {
"id": 10,
"name": "Виртуальный сервер",
"description": null,
"icon": {
"id": 9,
"name": "settings_system_daydream",
"fileName": null,
"userspaceId": 1,
"iconUrl": "/api/sm/rsm/icons/9/icon"
},
"userspaceId": 17
},
"withMaintenance": true,
"influence": {
"value": 7.874981367858503,
"maxInfluence": false
},
"isIncluded": true
}
],
"influence": {
"value": 7.874981367858503,
"maxInfluence": false
},
"incidents": [
{
"connector": {
"id": 1,
"name": "HPSM Service Desk"
},
"incidents": [
{
"id": "IM88753",
"type": "hpsm"
}
]
}
]
}
]
Атрибуты экспортного файла отчета по событиям в формате JSON для одиночного шаблона SLA
| Атрибут | Тип | Описание |
|---|---|---|
| id | string | Идентификатор заказного отчёта |
| isIncluded | boolean | Учитывается ли событие в расчете SLA |
| trigger | object | Синтетический триггер события |
| dateStart | dateTime | Дата начала события |
| dateEnd | dateTime | Дата конца. Null, если событие не окончено |
| duration | long | Длительность события |
| priority | string | Приоритет события |
| tags | object[] | Список тегов события |
| configItems | object[] | Список КЕ, связанных с событием |
| influence | float | Влияние события на общую доступность КЕ |
| incidents | object[] | Список инцидентов, связанных с событием |
Пример экспортного файла отчета по доступности КЕ в формате JSON для одиночного шаблона SLA
[
{
"configItem": {
"id": 2444,
"name": "Sample CI",
"configItemType": {
"id": -1,
"name": "По умолчанию",
"description": "Тип используется по умолчанию.",
"icon": {
"id": -1,
"name": "layers",
"fileName": "layers.svg",
"userspaceId": 0,
"iconUrl": "/api/sm/rsm/icons/-1/icon"
},
"userspaceId": 0
},
"isIncluded": true,
"withMaintenance": false,
"influence": {
"value": 0.0,
"maxInfluence": false
},
"serviceAvailability": 100.0
},
"okTime": {
"percent": 100.0,
"value": 86400000
},
"problemTime": {
"percent": 0.0,
"value": 0
},
"unattendedTime": {
"percent": 0.0,
"value": 0
},
"maintenanceTime": {
"percent": 0.0,
"value": 0
},
"serviceAvailability": 100.0,
"maxDowntime": 0,
"problem1EventsCount": 0,
"problem2EventsCount": 0,
"problem3EventsCount": 0,
"problem4EventsCount": 0,
"eventsCount": 0
}
]
Атрибуты экспортного файла отчета по доступности КЕ в формате JSON для одиночного шаблона SLA:
| Атрибут | Тип | Описание |
|---|---|---|
| configItem | object | КЕ, для которой был произведён расчет доступности |
| eventsCount | long | Количество событий |
| maintenanceTime | object | Объект со сведениями о времени, когда КЕ находилась в сервисном режиме |
| maxDowntime | long | Время максимального простоя (в секундах) |
| okTime | object | Объект со сведениями о времени, которое КЕ удовлетворяла SLA |
| problem1EventsCount | long | Количество событий с приоритетом 1 |
| problem2EventsCount | long | Количество событий с приоритетом 2 |
| problem3EventsCount | long | Количество событий с приоритетом 3 |
| problem4EventsCount | long | Количество событий с приоритетом 4 |
| problemTime | object | Объект со сведениями о времени, которое КЕ не удовлетворяла SLA |
| serviceAvailability | float | Доступность КЕ (в процентах) |
| unattendedTime | object | Объект со сведениями о нерабочем времени КЕ |
Пример выходной модели для мультишаблона в формате JSON
[
{
"name": "Template 1",
"weight": 0.5,
"influence": 50.0,
"serviceAvailability": 0.0,
"okTime": 0,
"problemTimePercent": 100.0,
"problemTime": 2647832326,
"attendedTime": 2647832326,
"unattendedTime": 0,
"maintenanceTime": 0,
"eventsCount": 10,
"problem1EventsCount": 3,
"problem2EventsCount": 3,
"problem3EventsCount": 1,
"problem4EventsCount": 3,
"maxDownTime": 2647832326,
"meanTimeBetweenFailures": 0,
"meanTimeToRestoreService": 65643077
},
{
"name": "Template 2",
"weight": 0.5,
"influence": 50.0,
"serviceAvailability": 0.0,
"okTime": 0,
"problemTimePercent": 100.0,
"problemTime": 2647832326,
"attendedTime": 2647832326,
"unattendedTime": 0,
"maintenanceTime": 0,
"eventsCount": 1,
"problem1EventsCount": 0,
"problem2EventsCount": 0,
"problem3EventsCount": 0,
"problem4EventsCount": 1,
"maxDownTime": 2647832326,
"meanTimeBetweenFailures": 0,
"meanTimeToRestoreService": 65643077
}
]
Атрибуты выходной модели для мультишаблона
| Атрибут | Тип | Описание |
|---|---|---|
| name | string | Название шаблона |
| weight | float | Вес шаблона |
| influence | float | Влияние шаблона на конечный результат расчёта SLA мультишаблона |
| serviceAvailability | float | Значение доступности за период в процентах |
| okTime | long | Суммарное время, в которое КЕ удовлетворяли SLA (в миллисекундах) |
| problemTimePercent | float | Процент суммарного времени, в которое КЕ находились в состоянии, не удовлетворяющим SLA |
| problemTime | long | Суммарное время, в которое КЕ находились в состоянии, не удовлетворяющим SLA (в миллисекундах) |
| attendedTime | long | Суммарное рабочее время КЕ (в миллисекундах) |
| unattendedTime | long | Суммарное нерабочее время КЕ (в миллисекундах) |
| maintenanceTime | long | Суммарное время согласованного простоя, в которое КЕ находились в сервисном режиме (в миллисекундах) |
| eventsCount | long | Количество событий |
| problem1EventsCount | long | Количество событий с приоритетом 1 |
| problem2EventsCount | long | Количество событий с приоритетом 2 |
| problem3EventsCount | long | Количество событий с приоритетом 3 |
| problem4EventsCount | long | Количество событий с приоритетом 4 |
| maxDownTime | long | Время максимального простоя (в миллисекундах) |
| meanTimeBetweenFailures | long | MTBF (средняя наработка на отказ) |
| meanTimeToRestoreService | long | MTRS (среднее время восстановления сервиса) |
Коды ответа
| Код | Описание |
|---|---|
| 200 | Запрос успешно исполнен |
| 400 | Пустое тело запроса |
| 400 | Заказной отчет еще не готов |
| 401 | Не удалось выполнить авторизацию пользователя |
| 403 | Недостаточно прав для чтения заказного отчета |
| 500 | Непредвиденная ошибка при обработке запроса |