Перейти к основному содержимому
Версия: 7.9

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
}
]

Атрибуты выходной модели

АтрибутТипОписание
idlongИдентификатор шаблона SLA
typestringТип шаблона SLA. "Single" для обычного шаблона и "Multi" для мультишаблона
namestringНазвание шаблона SLA
descriptionstringОписание шаблона SLA
periodstringИнтервал расчета для шаблона по умолчанию
ownerTypestringТип владельца шаблона SLA
userIdlongИдентификатор пользователя, владеющего шаблоном SLA. Null, если шаблоном владеет рабочая группа
workGroupobjectМодель представления рабочей группы, владеющей шаблоном 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

Параметры запроса

ПараметрТипТребуетсяОписание
templateobjectдаИдентификатор шаблона отчёта Доступности, для которого заказывается расчёт
rangeobjectнетИнтервал для расчёта 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
}

Атрибуты выходной модели

АтрибутТипОписание
idstringИдентификатор заказного отчёта (Guid)
reportIdstringИдентификатор отчёта SLA
startdateTimeНачало расчётного интервала SLA
enddateTimeКонец расчётного интервала SLA
templateobjectШаблон отчёта SLA, используемый для расчёта
statusstringСтатус заказного отчёта
errorstringСообщение об ошибке, приведшей к остановке расчета
ownerTypestringТип владельца заказного отчёта
userIdlongИдентификатор пользователя, которому принадлежит отчет
workgroupobjectМодель рабочей группы, которой принадлежит шаблон

Возможные значения атрибута status:

  • "Pending" - ожидает выполнения
  • "Calculating" - происходит расчет в текущий момент времени
  • "Ok" - готов
  • "Error" - расчет SLA завершен с ошибкой (сообщение об ошибке содержится в атрибуте error)

Коды ответа

КодОписание
201Заказной отчет успешно создан
400Неверный временной интервал для расчета отчета
401Пользователь не авторизован
403Недостаточно прав для просмотра шаблонов Доступности
500Непредвиденная ошибка при обработке запроса

Получение статуса исполнения заказного отчета по идентификатору

GET /api/public/sm/v1/sla/ordered/{id}

Параметры запроса

ПараметрТипТребуетсяОписание
idstringдаИдентификатор заказного отчета

Пример выходной модели

{
"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}

Параметры запроса

ПараметрТипТребуетсяОписание
idstringдаИдентификатор заказного отчета
formatstringнетФормат файла экспорта. Доступны форматы:
- JSON (по-умолчанию)
- XLS
exportTypestringнетТип экспорта:
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

АтрибутТипОписание
idstringИдентификатор заказного отчёта
isIncludedbooleanУчитывается ли событие в расчете SLA
triggerobjectСинтетический триггер события
dateStartdateTimeДата начала события
dateEnddateTimeДата конца. Null, если событие не окончено
durationlongДлительность события
prioritystringПриоритет события
tagsobject[]Список тегов события
configItemsobject[]Список КЕ, связанных с событием
influencefloatВлияние события на общую доступность КЕ
incidentsobject[]Список инцидентов, связанных с событием

Пример экспортного файла отчета по доступности КЕ в формате 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:

АтрибутТипОписание
configItemobjectКЕ, для которой был произведён расчет доступности
eventsCountlongКоличество событий
maintenanceTimeobjectОбъект со сведениями о времени, когда КЕ находилась в сервисном режиме
maxDowntimelongВремя максимального простоя (в секундах)
okTimeobjectОбъект со сведениями о времени, которое КЕ удовлетворяла SLA
problem1EventsCountlongКоличество событий с приоритетом 1
problem2EventsCountlongКоличество событий с приоритетом 2
problem3EventsCountlongКоличество событий с приоритетом 3
problem4EventsCountlongКоличество событий с приоритетом 4
problemTimeobjectОбъект со сведениями о времени, которое КЕ не удовлетворяла SLA
serviceAvailabilityfloatДоступность КЕ (в процентах)
unattendedTimeobjectОбъект со сведениями о нерабочем времени КЕ

Пример выходной модели для мультишаблона в формате 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
}
]

Атрибуты выходной модели для мультишаблона

АтрибутТипОписание
namestringНазвание шаблона
weightfloatВес шаблона
influencefloatВлияние шаблона на конечный результат расчёта SLA мультишаблона
serviceAvailabilityfloatЗначение доступности за период в процентах
okTimelongСуммарное время, в которое КЕ удовлетворяли SLA (в миллисекундах)
problemTimePercentfloatПроцент суммарного времени, в которое КЕ находились в состоянии, не удовлетворяющим SLA
problemTimelongСуммарное время, в которое КЕ находились в состоянии, не удовлетворяющим SLA (в миллисекундах)
attendedTimelongСуммарное рабочее время КЕ (в миллисекундах)
unattendedTimelongСуммарное нерабочее время КЕ (в миллисекундах)
maintenanceTimelongСуммарное время согласованного простоя, в которое КЕ находились в сервисном режиме (в миллисекундах)
eventsCountlongКоличество событий
problem1EventsCountlongКоличество событий с приоритетом 1
problem2EventsCountlongКоличество событий с приоритетом 2
problem3EventsCountlongКоличество событий с приоритетом 3
problem4EventsCountlongКоличество событий с приоритетом 4
maxDownTimelongВремя максимального простоя (в миллисекундах)
meanTimeBetweenFailureslongMTBF (средняя наработка на отказ)
meanTimeToRestoreServicelongMTRS (среднее время восстановления сервиса)

Коды ответа

КодОписание
200Запрос успешно исполнен
400Пустое тело запроса
400Заказной отчет еще не готов
401Не удалось выполнить авторизацию пользователя
403Недостаточно прав для чтения заказного отчета
500Непредвиденная ошибка при обработке запроса