Перейти к содержанию

Управление профилями

Управление профилями осуществляется при помощи Websocket API или REST API.

Создание профиля

Новый профиль создается при помощи запроса /api/profile/create:

API Request Response Response status
WS API
SEND
destination:/app/api/profile/create
content-length:159

{
 "requestId":"26f4895a-2001-46e0-af56-2a130544f1b7",
 "realm":"/api/profile/create",
 "payload":
 {
  "name":"profile1",
  "rate":"30",
  "metrics":["3","10"],
  "rules":["1"]
 }
}
MESSAGE
destination:/user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-10
content-length:84

{
 "requestId":"26f4895a-2001-46e0-af56-2a130544f1b7",
 "status":200,
 "reason":"SUCCESS"
}
200 OK 400 Object not found 500 Persist exception
REST API
POST: /api/profile/create "application/json; charset=utf-8"
{
 "name":"profile2",
 "rate":"30",
 "metrics":["1","2"],
 "rules":["1"]
}
{
 "status":200,
 "reason":"SUCCESS"
}
200 OK 400 Object not found 500 Persist exception

Здесь:

  • name – имя профиля
  • rate – частота опроса метрик, указанных в профиле
  • metrics – список идентификаторов метрик
  • rules – список идентификаторов правил

Изменение профиля

Профиль может быть изменен при помощи запроса /api/profile/update:

API Request Response Response status
WS API
SEND
destination:/app/api/profile/update
content-length:166

{
 "requestId":"76d35097-7948-4e58-a7ae-f4d11ed63e02",
 "realm":"/api/profile/update",
 "payload":
 {
  "id":"2",
  "name":"static",
  "rate":"30",
  "metrics":["3","10"],
  "rules":["1"]
 }
}
MESSAGE
destination:/user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-11
content-length:84

{
 "requestId":"76d35097-7948-4e58-a7ae-f4d11ed63e02",
 "status":200,
 "reason":"SUCCESS"
}
200 OK 400 Object not found 500 Persist exception
REST API
POST: /api/profile/update "application/json; charset=utf-8"
{
 "id":"3",
 "name":"profile1",
 "rate":"30",
 "metrics":["3","10"],
 "rules":["1"]
}
{
 "status":200,
 "reason":"SUCCESS"
}
200 OK 400 Object not found 500 Persist exception

Здесь:

  • id – идентификатор профиля
  • name – имя профиля
  • rate – частота опроса метрик, указанных в профиле
  • metrics – список идентификаторов метрик
  • rules – список идентификаторов правил

Удаление профиля

Профиль может быть удален при помощи запроса /api/profile/delete:

API Request Response Response status
WS API
SEND
destination:/app/api/profile/delete
content-length:103

{
 "requestId":"e2412d55-4256-4004-bb93-620af1905deb",
 "realm":"/api/profile/delete",
 "payload":
 {
  "id":"3"
 }
}
MESSAGE
destination:/user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-14
content-length:84

{
 "requestId":"e2412d55-4256-4004-bb93-620af1905deb",
 "status":200,
 "reason":"SUCCESS"
}
200 OK 400 Object not found 500 Persist exception
REST API
POST: /api/profile/delete "application/json; charset=utf-8"
{
 "id":"4"
}
{
 "status":200,
 "reason":"SUCCESS"
}
200 OK 400 Object not found 500 Persist exception

Здесь:

  • id – идентификатор профиля

Если профиль был удален, сбор метрик, который были с ним связаны, прекратится на всех узлах, для которых этот профиль был задан.

Получение информации о профиле

Информацию о профиле можно получить при помощи запроса /api/profile/list:

API Request Response Response status
WS API
SEND
destination:/app/api/profile/list
content-length:101

{
 "requestId":"2e29bebf-9773-429e-84b6-287dc4d3d479",
 "realm":"/api/profile/list",
 "payload":
 {
  "id":"2"
 }
}
MESSAGE
destination:/user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-16
content-length:160

{
 "requestId":"2e29bebf-9773-429e-84b6-287dc4d3d479",
 "status":200,
 "reason":"SUCCESS",
 "payload":[
  {
   "id":2,
   "name":"static",
   "rate":30,
   "metrics":[3,10],
   "rules":[1]
  }
 ]
}
200 OK 400 Object not found 500 Persist exception
REST API
POST: /api/profile/list "application/json; charset=utf-8"
{
 "id":"2"
}
{
    "status": 200,
    "reason": "SUCCESS",
    "payload": [
        {
            "id": 2,
            "name": "static",
            "rate": 30,
            "metrics": [
                3,
                10
            ],
            "rules": [
                1
            ]
        }
    ]
}
200 OK 400 Object not found 500 Persist exception

Здесь:

  • id – идентификатор профиля
  • name – имя профиля
  • rate – частота опроса метрик, указанных в профиле
  • metrics – список идентификаторов метрик
  • rules – список идентификаторов правил

Если указан идентификатор профиля, то ответ будет содержать информацию только об этом профиле. Если идентификатор профиля не указан, ответ будет содержать список всех профилей на бэкенд-сервере.

Состав полей для каждого профиля в ответе аналогичен составу полей запроса /api/profile/update