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) и их описание представлены в таблице Описание триггеров.

  1. Поля trigger_groups и trigger_names в запросе объединяются логическим «И». Необходимо уделять этому внимание, т. к. если запрашиваемый триггер не входит в запрашиваемую группу, ответ всегда будет пустым.

  2. Поля 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:
    • count - целое число, число ошибок по данному PID;

    • type - целое число, заявленный тип потока;

    • detectedType - целое число, тип потока, который определил зонд. Идентификатор уточненного типа потока не является стандартным, см. таблицу для информации;

    • program - строка, имя программы.

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