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 | Непредвиденная ошибка при обработке запроса |