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