Управление тревогами¶
Существует возможность в реальном времени получать изменения значений определенных метрик, если значение превысило или опустилось ниже заданного порога. Для этого создаются тревоги, для получения которых по протоколу STOMP через Websocket необходимо подписаться на событие /alarms
Управление тревогами осуществляется при помощи Websocket API или REST API.
Создание тревоги¶
Новая тревога создается при помощи запроса /api/alarm/create
:
API | Request | Response | Response status |
---|---|---|---|
WS API | 200 OK 400 Object not found 500 Persist exception | ||
REST API | 200 OK 400 Object not found 500 Persist exception |
Здесь:
type
– тип тревоги:0
– значение опустилось ниже заданного порога1
– значение превысило заданный порог2
- значение равно заданной величине4
- значение, монотонно возрастающее, опустилось5
- значение, монотонно снижающееся, возросло
name
– имя тревогиvalue
– пороговое значениеmetric
– идентификатор метрики (в данном примере битрейт видео)node
– идентификатор узлаtime
– время в миллисекундах, в течение которого условие срабатывания тревоги выполняется.
В данном примере создана тревога, срабатывающая, если битрейт видеоопубликованного на сервере потока опустится ниже 100 кбит/с более чем на 1 секунду.
Если идентификатор узла не указан, тревога применяется ко всем узлам на бэкенд-сервере.
На одну метрику может быть назначено несколько тревог, например, ограничивая нижний и верхний пределы битрейта видео.
Изменение тревоги¶
Параметры тревоги могут быть изменены при помощи запроса /api/alarm/update
:
API | Request | Response | Response status |
---|---|---|---|
WS API | 200 OK 400 Object not found 500 Persist exception | ||
REST API | 200 OK 400 Object not found 500 Persist exception |
Здесь:
id
– идентификатор тревогиtype
– тип тревоги:0
– значение опустилось ниже заданного порога1
– значение превысило заданный порог2
- значение равно заданной величине4
- значение, монотонно возрастающее, опустилось5
- значение, монотонно снижающееся, возросло
name
– имя тревогиvalue
– пороговое значениеmetric
– идентификатор метрики (в данном примере битрейт видео)node
– идентификатор узлаtime
– время в миллисекундах, в течение которого условие срабатывания тревоги выполняется.
Удаление тревоги¶
Тревога может быть удалена при помощи запроса /api/alarm/delete
:
API | Request | Response | Response status |
---|---|---|---|
WS API | 200 OK 400 Object not found 500 Persist exception | ||
REST API | 200 OK 400 Object not found 500 Persist exception |
Здесь:
id
– идентификатор тревоги
Сообщения о выходе метрики за допустимый предел больше не будут приходить.
Получение информации о настройках тревоги¶
Информацию о настройках тревоги можно получить при помощи запроса /api/alarm/list
:
Здесь:
id
– идентификатор тревогиtype
– тип тревоги:0
– значение опустилось ниже заданного порога1
– значение превысило заданный порог2
- значение равно заданной величине4
- значение, монотонно возрастающее, опустилось5
- значение, монотонно снижающееся, возросло
name
– имя тревогиvalue
– пороговое значениеmetric
– идентификатор метрики (в данном примере битрейт видео)node
– идентификатор узлаtime
– время в миллисекундах, в течение которого условие срабатывания тревоги выполняется.
Если указан идентификатор тревоги, то ответ будет содержать информацию только об этой тревоге. Если идентификатор не указан, ответ будет содержать информацию обо всех тревогах на бэкенд-сервере.
Состав полей ответа аналогичен составу полей запроса /api/alarm/update
.
Получение сообщения о срабатывании тревоги¶
Сообщения о срабатываниях и возвратах тревог приходят, если клиент подписан на очередь /alarms
. Сообщения выглядят следующим образом:
MESSAGE
destination:/alarms
content-type:application/json;charset=UTF-8
subscription:sub-0
message-id:4-187
content-length:242
{
"timestamp":1561101716609,
"status":"RAISED",
"alarmType":"LESS",
"alarmValue":700000,
"alarmName":"alarm1",
"mediaId":"617691c0-93f2-11e9-8808-938c74814152",
"metricEnumName":"VIDEO_RATE",
"metricValue":400232,
"nodeHostName":"test.flashphoner.com"
}
Здесь:
timestamp
- время срабатывания или возврата тревогиstatus
- состояние тревоги:RAISED
- срабатываниеCLEARED
- возврат
alarmType
- тип тревоги:LESS
– значение опустилось ниже заданного порогаMORE
– значение превысило заданный порогEQUAL
- значение равно заданной величинеMONOTONIC_UP
- значение, монотонно возрастающее, опустилосьMONOTONIC_DOWN
- значение, монотонно снижающееся, возросло
alarmValue
- пороговое значениеalarmName
- имя тревогиmediaId
- идентификатор медиасессии потока, для которого зафиксировано событиеmetricEnumName
- наименование метрикиmetricValue
- значение метрики, по которому сработала или вернулась тревогаnodeHostName
- имя узла, на котором находится наблюдаемый поток