Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Существует возможность в реальном времени получать изменения значений определенных метрик, если значение превысило или опустилось ниже заданного порога. Для этого создаются тревоги, для получения которых по протоколу STOMP через Websocket необходимо подписаться на событие /alarmalarms

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

Создание тревоги

Новая тревога создается при помощи REST API запроса /api/alarm/create

APIRequestResponseResponse status
WS API
Code Block

...

themeRDark
SEND
destination:/app/api/alarm/create
content-length:174

{
 "requestId":"c71ec29d-b292-46c0-9138-a8ff434f2c3e",
 "realm":"/api/alarm/create",
 "payload":
 {
  "type":"0",
  "name":"alarm1",
  "value":"100000",
  "metric":"3",
  "node":"3",
  "time":"1000"
 }
}
Code Block
themeRDark

...

MESSAGE
destination:/

...

user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-51
content-length:84

{
 "requestId":"c71ec29d-b292-46c0-9138-a8ff434f2c3e",
 "status":200,
 "reason":"SUCCESS"
}

200 OK

400 Object not found

500 Persist exception

REST API
Code Block
themeRDark
POST: /api/alarm/create "application/json; charset=utf-8"
{

...

 "type":"0",

...

 "name":"

...

alarm2",

...

 "value":"

...

100000",

...

 "metric":"

...

3",

...

 "node":"

...

3",

...

 "time":"

...

1000"
}
Code Block
themeRDark
{
 "status":200,
 "reason":"SUCCESS"
}

200 OK

400 Object not found

500 Persist exception

Здесь:

  • type – тип тревоги:
    • 0 – значение опустилось ниже заданного порога
    • 1 – значение превысило заданный порог
  • name – имя тревоги
  • value – пороговое значение
  • metric – идентификатор метрики (в данном примере битрейт видео)
  • node – идентификатор узла
  • time – время в миллисекундах, в течение которого значение метрики должно находиться выше или ниже заданного порога.

В данном примере создана тревога, срабатывающая, если битрейт видео опубликованного на сервере потока опустится ниже 500 100 кбит/с более чем на 5 секунд1 секунду.

Если идентификатор узла не указан, тревога применяется ко всем узлам на бэкенд-сервере.

...

Параметры тревоги могут быть изменены при помощи REST API запроса /api/alarm/update

APIRequestResponseResponse status
WS API
Code Block

...

themeRDark
SEND
destination:/app/api/alarm/update
content-length:183

{
 "requestId":"a60920eb-257a-451f-937f-1226a3856610",
 "realm":"/api/alarm/update",
 "payload":
 {
  "id":"6",
  "type":"0",
  "name":"alarm1",
  "value":"100000",
  "metric":"3",
  "node":"3",
  "time":"1000"
 }
}
Code Block
themeRDark

...

MESSAGE
destination:/

...

user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-56
content-length:84

{
 "requestId":"a60920eb-257a-451f-937f-1226a3856610",
 "status":200,
 "reason":"SUCCESS"
}

200 OK

400 Object not found

500 Persist exception

REST API
Code Block
themeRDark
POST: /api/alarm/update "application/json; charset=utf-8"
{

...

 "id":

...

"

...

7",

...

 "type":"0",

...

 "name":"

...

alarm2",

...

 "value":"

...

10000",

...

 "metric":"

...

3",

...

 "node":"

...

3",

...

 "time":"

...

1000"
}
Code Block
themeRDark
{
 "status":200,
 "reason":"SUCCESS"
}

200 OK

400 Object not found

500 Persist exception

Здесь:

  • id – идентификатор тревоги
  • type – тип тревоги:
    • 0 – значение опустилось ниже заданного порога
    • 1 – значение превысило заданный порог
  • name – имя тревоги
  • value – пороговое значение
  • metric – идентификатор метрики (в данном примере битрейт видео)
  • node – идентификатор узла
  • time – время в миллисекундах, в течение которого значение метрики должно находиться выше или ниже заданного порога.

...

Тревога может быть удалена при помощи REST API запроса /api/alarm/delete

APIRequestResponseResponse status
WS API
Code Block

...

themeRDark
SEND
destination:/app/api/alarm/delete
content-length:101

{
 "requestId":"c108dbf9-35c0-42e5-814c-0eec57c4de8e",
 "realm":"/api/alarm/delete",
 "payload":
 {
  "id":"6"
 }
}
Code Block
themeRDark

...

MESSAGE
destination:/

...

user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-57
content-length:84

{
 "requestId":"c108dbf9-35c0-42e5-814c-0eec57c4de8e",
 "status":200,
 "reason":"SUCCESS"
}

200 OK

400 Object not found

500 Persist exception

REST API
Code Block
themeRDark
POST: /api/alarm/delete "application/json; charset=utf-8"
{

...

 "id":

...

"7"
}
Code Block
themeRDark
{
 "status":200,
 "reason":"SUCCESS"
}

200 OK

400 Object not found

500 Persist exception

Здесь:

  • id – идентификатор тревоги

...

Информацию о настройках тревоги можно получить при помощи REST API запроса /api/alarm/list

...

APIRequestResponseResponse status
WS API
Code Block
themeRDark
SEND
destination:/app/api/alarm/list
content-length:98

{
 "requestId":"d8e79851-85eb-4df1-bd3a-9f13090e8be5",
 "realm":"/api/alarm/list",
 "payload":
 {
  "id":""
 }
}
Code Block
themeRDark

...

MESSAGE
destination:/

...

user/service
content-type:application/json;charset=UTF-8
subscription:sub-1
message-id:3-60
content-length:177

{
 "requestId":"d8e79851-85eb-4df1-bd3a-9f13090e8be5",
 "status":200,
 "reason":"SUCCESS",
 "payload":[
  {
   "id":8,
   "name":"alarm1",
   "type":0,
   "value":100000,
   "time":1000,
   "metric":3,
   "node":3
  }
 ]
}

200 OK

400 Object not found

500 Persist exception

REST API
Code Block
themeRDark
POST: /api/alarm/list "application/json; charset=utf-8"
{

...


 "id":""
}
Code Block
themeRDark
{
    "status": 200,
    "reason": "SUCCESS",
    "payload": [
        {
            "id": 

...

8,
            "name": "alarm1",
            "type": 0,
            "value": 100000,
            "time": 1000,
            "metric": 3,
            "node": 3
        }
    ]
}

200 OK

400 Object not found

500 Persist exception

Здесь:

  • id – идентификатор тревоги

...