5.7.3. TaskAlarms¶
Описание¶
Выгрузка записей о сработавших триггерах для определенной задачи. В интерфейсе Elecard Boro триггеры настраиваются на странице Настройки проекта ➝ Уведомления ➝ ALARMS. Сработавшие триггеры можно найти внизу страницы задачи на вкладке TASK ALARMS.
Запрос¶
{
"user_id":(number),
"methods":[
{
"method":"TaskAlarms",
"params":{
"project_id":(number),
"task_id":(number),
"task_ids":' id1 | [id1,id2] | "*" '
"kind":(string),
"active_states_only":(boolean),
"limit_value":(number),
"page":(number),
"update_token":(number),
"filter":{
"period_from":(number),
"period_to":(number),
"level":(string),
"trigger_groups":[(string)],
"trigger_names": [(string)]
}
}
}
]
}
user_id - целое число, идентификатор пользователя;
project_id - целое число, идентификатор проекта пользователя;
task_id - целое число, идентификатор задачи. Устарело, используется для совместимости. При наличии двух полей с идентификаторами задач, предпочтение отдается полю task_ids;
- task_ids - идентификаторы задач, поле может задаваться в одном из следующих форматов:
id1
- целое число, идентификатор задачи;[id1,id2]
- массив целых чисел, идентификаторы задач;"*"
- строка, символ «звездочки», запрос информации обо всех активных задачах всех запущенных зондов в проекте. kind (опциональное поле) - строка, тип оповещения, по умолчанию
alarm
. Текущая реализация поддерживает только alarm оповещения;active_states_only (опциональное поле) - логический тип, если передается значение
true
, то в ответе возвращаются только записи с активным состоянием ошибки. Только для триггеров типа Состояние;limit_value (опциональное поле) - целое число, максимальное количество записей в ответе, позволяет разбивать результат на страницы. Значение по умолчанию 25, максимальное значение 100;
page (опциональное поле) - целое число, выбор страницы с результатом. Значение по умолчанию 1. Не распространяется на запрос с update_token;
update_token (опциональное поле) - целое число, ключ запроса. Чтобы получить записи, накопленные относительно предыдущего запроса, необходимо передать ключ, полученный в последнем ответе. Применяется для получения данных только первой страницы (максимум 100 записей).
- filter (опциональное поле) - объект, позволяет осуществлять расширенные запросы с дополнительными параметрами:
period_from - целое число, время в формате Unix, отличное от 0. Задает начало периода запроса;
period_to - целое число, время в формате Unix, большее чем period_from. Задает конец периода запроса;
level - строка, один из уровней критичности ошибки. Допустимые значения:
ok
,warning
,error
,major
,fatal
;- trigger_groups - массив строк, одна или несколько групп триггеров. Допустимые значения:
eth
- триггеры Ethernet параметров;etr
- триггеры ошибок TR 101 290;qoe
- триггеры параметров качества восприятия;ott
- триггеры анализа OTT и Progressive Download сервисов;sys
- триггеры, связанные с системными ошибками в задачах;scte35
- триггеры, связанные со вставкой рекламы. trigger_names - массив строк, одно или несколько ключевых имен триггеров. Список ключевых имен, локализованные названия триггеров (в web-интерфейсе Boro) и их описание представлены в таблице Описание триггеров.
Поля trigger_groups и trigger_names в запросе объединяются логическим «И». Необходимо уделять этому внимание, т. к. если запрашиваемый триггер не входит в запрашиваемую группу, ответ всегда будет пустым.
Поля period_from и period_to задают период времени в запросе, для которого необходимо получить записи. Можно задавать как оба параметра, так и только один из них. Необходимо знать, что SQL запрос производится по полю updated_at (по нему проиндексирована БД), а не по trigger_time. Необходимо учитывать, что значение поля updated_at обновляется, когда состояние ошибки снимается. Для триггеров типа Событие и активных состояний updated_at будет эквивалентно trigger_time.
Ответ¶
{
"reply":[
{
"method":"TaskAlarms",
"result":{
"alarms":[
{
"id":(number),
"project_id":(number),
"app_id":(number),
"task_id":(number),
"profile_id":(number),
"trigger_time":(number),
"name":(string),
"level":(string),
"trigger_group":(string),
"type":(string),
"active":(boolean),
"kind":(string),
"info":{
...
"time":(number),
"time_end":(number)
}
}
],
"current_page":(number),
"limit_value":(number),
"total_pages":(number),
"update_token":(number)
}
}
]
}
alarms - массив объектов, записи о срабатывании триггеров;
id - целое число, идентификатор записи;
project_id - целое число, идентификатор проекта пользователя;
app_id - целое число, идентификатор зонда;
task_id - целое число, идентификатор задачи;
profile_id - целое число, идентификатор профиля оповещения (дополнительную информацию можно найти в разделе Методы уровня профиля);
trigger_time - целое число, время создания записи (срабатывания триггера) в формате Unix-времени. Так как триггеры реализованы на стороне сервера, время обработки триггера может существенно отличаться от времени реального события, например в результате временной потери связи зонда с сервером. При этом время события или время начала и окончания состояния будут сохранены в записи корректно;
name - строка, ключевое имя триггера. Ключевые имена используются для локализации интерфейса. Примеры локализованных названий триггеров (в web-интерфейсе Boro) и их описание представлены в таблице Описание триггеров;
level - строка, уровень критичности ошибки, заданный в настройках триггера. Допустимые значения:
ok
,warning
,error
,major
,fatal
;- trigger_group - строка, группа к которой относится запись:
eth
- триггеры Ethernet параметров;etr
- триггеры ошибок TR 101 290;qoe
- триггеры параметров качества восприятия;ott
- триггеры анализа OTT и Progressive Download сервисов;sys
- триггеры, связанные с системными ошибками в задачах;scte35
- триггеры, связанные со вставкой рекламы. - type - строка, тип триггера:
state
- триггер типа Состояние. Такие записи имеют начало состояния (срабатывание преднастроенного триггера) и конец состояния (когда ошибка исчезает). Состояние ошибки на текущий момент времени передается в поле active. Например, состояние ошибки BadSource (No signal) через установленное время вызывает срабатывание триггера и оно остается активным, пока на входе анализатора не появятся корректные данные.event
- триггер типа Событие. В записи регистрируется факт появления ошибки (срабатывание преднастроенного триггера), например когда не удается скачать определенный сегмент. - active - логический тип, текущее состояние триггера. Только для типа Состояние:
true
- ошибка, определенная зондом, вызвала срабатывание преднастроенного триггера и состояние ошибки все еще активно;false
- ошибка снята. kind - строка, тип оповещения. По умолчанию
alarm
. Текущая реализация API поддерживает только alarm оповещения;- info - объект, описание события или состояния. Для разных типов триггеров наполнение объекта будет различаться, ниже приведено частичное описание объектов и параметров:
time - вещественное число, время события или начала состояния. Время в секундах от момента старта задачи с дробной частью (для увеличения точности отсчетов);
time_end - вещественное число, время завершения состояния. Время в секундах от момента старта задачи с дробной частью (для увеличения точности отсчетов).
current_page - целое число, отображаемая страница результата;
limit_value - целое число, максимальное количество записей в ответе;
total_pages - целое число, суммарное количество страниц результата при заданном limit_value;
update_token - целое число, ключ запроса. Чтобы получить записи, накопленные относительно данного запроса, необходимо передать ключ в следующем запросе.
Частичное описание расширенной информации сработавшего триггера:
{
"info":{
"count":(number),
"pids": {
"PIDn": {
"count": (number),
"type": (number),
"detectedType": (number),
"program": (string)
}
}
"event_data": {
"diff": [
...
]
...
}
"messages": [
{
"id": (number),
"params": {
...
}
"CURL_error": {
...
}
"HTTP_error": {
...
}
}
]
"time":(number),
"time_end":(number)
}
}
count - целое число, суммарное число ошибок по всем PID;
- pids - объект, передает описание PID, также может передавать счетчик ошибок по каждому PID. Содержит объекты, где в качестве названия поля передается номер PID:
- event_data - объект, содержит детализацию ошибки. Может содержать: указание на PID, счетчики ошибок, текущее состояние метрики, HTTP или curl ошибки и пр.
diff - массив объектов, изменения в формате JSON patch. Формат расширен полем prevValue (рядом с полем value) для операций change и remove. Применяется для визуализации изменений: в описании программы (ProgramSpecificInformation), описании видеопотока (VI_changed) и описании аудиопотока (AudioInformation_changed).
- messages - массив объектов, информационные сообщения, которые могут включать отображение различных параметров:
id - целое число, идентификатор сообщения. Используются для локализации, см. таблицу Идентификаторы сообщений;
params - объект, параметры сообщения;
CURL_error - объект, код ошибки, ее описание и иные подробности, возвращаемые модулем libcurl при анализе OTT;
HTTP_error - объект, код HTTP ошибки и иные подробности при анализе OTT.
time - вещественное число, время события или начала состояния. Время в секундах от момента старта задачи с дробной частью (для увеличения точности отсчетов);
time_end - вещественное число, время завершения состояния. Время в секундах от момента старта задачи с дробной частью (для увеличения точности отсчетов).
Пример¶
curl http://172.16.11.111/ctrl_api/v1/json \
-H "Content-Type: application/json" \
--data '{"user_id":4,"methods":[{"method":"TaskAlarms","params":{"project_id":23,"task_ids":241555,"limit_value":1}}]}'
{
"reply":[
{
"method":"TaskAlarms",
"result":{
"alarms":[
{
"id":13522793,
"project_id":23,
"app_id":702,
"task_id":241555,
"profile_id":390,
"trigger_time":1590570529,
"active":true,
"kind":"alarm",
"level":"warning",
"trigger_group":"qoe",
"type":"state",
"name":"AudioTrackMissing",
"info":{
"event_data":{
"pid":7010
},
"time":2322878.0005373
}
}
],
"current_page":1,
"limit_value":1,
"total_pages":1,
"update_token":1590592944
}
}
]
}