5.6.1. TaskInfo¶
Описание¶
Полная информация о состоянии задач и их настройках.
Запрос¶
{
  "user_id":(number),
  "methods":[
    {
      "method":"TaskInfo",
      "params":{
        "project_id":(number),
        "task_ids":' id1 | [id1,id2] | "*" '
      }
    }
  ]
}
- user_id - целое число, идентификатор пользователя; 
- project_id - целое число, идентификатор проекта пользователя; 
- task_ids - идентификаторы задач, поле может задаваться в одном из следующих форматов:id1- целое число, идентификатор задачи;[id1,id2]- массив целых чисел, идентификаторы задач;"*"- строка, символ «звездочки», запрос информации обо всех активных задачах всех запущенных зондов в проекте.
Ответ¶
{
  "reply":[
    {
      "method":"TaskInfo",
      "result":[
        {
          "task_id":(number),
          "app_id":(number),
          "uri":(string),
          "name":(string),
          "status":(string),
          "start":(string),
          "start_f":(number),
          "service":(string),
          "tags":(string),
          "profiles":{
            "alarm":[(number)],
            "email":[(number)],
            "threshold":[(number)],
            "pagerduty":[(number)],
            "record":[(number)],
            "snmp":[(number)],
            "webhook":[(number)],
            "telegram":[(number)],
            "kpi":[(number)]
          },
          "task_config":{
            ...
          }
          "description": {
            ...
          }
        }
      ]
    }
  ]
}
- task_id - целое число, идентификатор задачи; 
- app_id - целое число, идентификатор зонда; 
- uri - строка, путь к анализируемому потоку (сервису, файлу); 
- name - строка, имя потока (например, название канала); 
- status - строка, состояние задачи:Scheduled- задача поставлена на запуск. Данное состояние назначается задачам, запускаемым через API. Далее состояние изменяется на одно из описанных ниже состояний, в зависимости от успешности запуска задачи;Started- задача запущена;Stopped- задача остановлена;Stalled- задача остановлена некорректно. Сервер перестал получать данные анализа, но команда на остановку задачи не была получена. Обычно связано с потерей связи сервера с зондом или некорректным завершением работы зонда;Rejected- запуск задачи был отклонен. Информацию о причине можно найти в web-интерфейсе в журнале событий задачи.
- start - строка, дата и время создания задачи; 
- start_f - вещественное число, дата создания задачи в формате Unix time с дробной частью (для увеличения точности отсчетов); 
- service - строка, идентификационное имя сервиса (канала) для консолидации состояний и ошибок сервиса из разных точек мониторинга. Данное поле связывает задачи проекта от разных зондов на виде MosaicView; 
- tags - строка, список тегов, разделенный запятыми. Теги применяются для фильтрации отображения на различных видах; 
- profiles - объект, перечень идентификаторов профилей настроек системы оповещения, записи и доступности сервиса:
- alarm - массив целых чисел, идентификатор профиля настроек триггеров Alarm оповещения. Текущая реализация позволяет задать только один профиль данного типа; 
- email - массив целых чисел, идентификаторы профилей настроек триггеров E-mail оповещения; 
- threshold - массив целых чисел, идентификатор профиля настроек и пороговых значений зонда. Текущая реализация позволяет задать только один профиль данного типа; 
- pagerduty - массив целых чисел, идентификаторы профилей настроек триггеров оповещения в систему PagerDuty; 
- record - массив целых чисел, идентификаторы профилей настроек записи; 
- snmp - массив целых чисел, идентификаторы профилей настроек триггеров SNMP оповещения; 
- webhook - массив целых чисел, идентификаторы профилей настроек триггеров Webhook оповещения; 
- telegram - массив целых чисел, идентификаторы профилей настроек триггеров оповещения в мессенджер Telegram; 
- kpi - массив целых чисел, идентификатор профиля настроек доступности сервиса. Текущая реализация позволяет задать только один профиль данного типа. 
 
 
- task_config - объект, настройки и дополнительная информация о задаче. Смотрите описание структуры в разделе Конфигурация задачи; 
- description - объект, описание реляционных отношений между родительской задачей и дочерними задачами. Мониторинг некоторых типов сервисов требует запуска нескольких задач, ознакомиться с подробностями можно в параграфе Иерархия сущностей системы Boro. Варианты наполнения объекта при запросе информации для различных типов задач рассмотрены в примерах ниже. 
Пример¶
cURL¶#1. Запрос информации для одной задачи зонда
  curl http://172.16.11.111/ctrl_api/v1/json \
   -H "Content-Type: application/json" \
   --data '{"user_id":4,"methods":[{"method":"TaskInfo", "params":{"project_id":23,"task_ids":238733}}]}'
#2. Запрос информации для нескольких задач зонда
  curl http://172.16.11.111/ctrl_api/v1/json \
   -H "Content-Type: application/json" \
   --data '{"user_id":4,"methods":[{"method":"TaskInfo", "params":{"project_id":23,"task_ids":[234590,234175]}}]}'
#3. Запрос информации обо всех активных задачах всех запущенных зондов в проекте.
  curl http://172.16.11.111/ctrl_api/v1/json \
   -H "Content-Type: application/json" \
   --data '{"user_id":4,"methods":[{"method":"TaskInfo", "params":{"project_id":23,"task_ids":"*"}}]}'
 {
   "reply":[
     {
       "method":"TaskInfo",
       "result":[
         {
           "task_id":234590,
           "app_id":703,
           "uri":"http://10.10.30.147:8080/subs.m3u8",
           "name":"Channel1 SportSD HLSv4",
           "status":"Started",
           "start":"2020-02-07 18:07:24 +0700",
           "start_f":1581073644.1312609,
           "service":"Channel1",
           "tags":"OTT ,HD,TV35",
           "profiles":{
             "alarm":[79],
             "threshold":[96],
             "snmp":[263],
             "webhook":[265]
           },
           "task_config":{
             ...
           },
           "description":{
             ...
           }
         }
       ]
     }
   ]
 }
Ниже представлено описание содержимого поля description для следующих типов задач:
IPTV задача¶
{
  "description":{
    "protocol":"iptv"
  }
}
Дочерняя HLS задача¶
Дочерняя HLS задачи это вкладки анализа медиа-данных на странице задачи в интерфейсе Boro.
{
  "description":{
    "protocol":"hls"
    "parentTaskId":234590
  }
}
- parentTaskId - целое число, идентификатор родительской HLS задачи; 
Родительская HLS задача¶
Родительская HLS задача это вкладка Master на странице задачи в интерфейсе Boro.
{
  "description":{
    "protocol":"hls",
    "ottMode":"allRenditionsMaster",
    "ottType":"Live",
    "hasChildTasks":true,
    "group":{
      "children":[
        241560,
        241561,
        241562,
        241563,
        241557,
        241559,
        241558
      ],
      "ottPresentation":{
        "variantStreams":[
          {
            "taskId":241563,
            "uri":"http://10.10.30.53:8080/subs/LQ_video.m3u8",
            "manifestUri":"subs/LQ_video.m3u8",
            "SUBTITLES":"subs",
            "RESOLUTION":"720x576",
            "BANDWIDTH":2000000,
            "CODECS":"avc1.4D001E,mp4a.40.2",
            "AUDIO":"audio-HQ"
          },
          {
            "taskId":241559,
            "uri":"http://10.10.30.53:8080/subs/HQ_video.m3u8",
            "manifestUri":"subs/HQ_video.m3u8",
            "SUBTITLES":"subs",
            "RESOLUTION":"1920x1088",
            "BANDWIDTH":8000000,
            "CODECS":"avc1.4D0028,mp4a.40.2",
            "AUDIO":"audio-HQ"
          }
        ],
        "renditions":[
          {
            "taskId":241560,
            "uri":"http://10.10.30.53:8080/subs/teletext_2.m3u8",
            "manifestUri":"subs/teletext_2.m3u8",
            "NAME":"teletext_2",
            "DEFAULT":"NO",
            "GROUP-ID":"subs",
            "TYPE":"SUBTITLES"
          },
          {
            "taskId":241561,
            "uri":"http://10.10.30.53:8080/subs/teletext_1.m3u8",
            "manifestUri":"subs/teletext_1.m3u8",
            "NAME":"teletext_1",
            "DEFAULT":"NO",
            "GROUP-ID":"subs",
            "TYPE":"SUBTITLES"
          },
          {
            "taskId":241562,
            "uri":"http://10.10.30.53:8080/subs/HQ_audio_3.m3u8",
            "manifestUri":"subs/HQ_audio_3.m3u8",
            "LANGUAGE":"eng",
            "NAME":"HQ_audio_3",
            "GROUP-ID":"audio-HQ",
            "TYPE":"AUDIO"
          },
          {
            "taskId":241557,
            "uri":"http://10.10.30.53:8080/subs/HQ_audio_1.m3u8",
            "manifestUri":"subs/HQ_audio_1.m3u8",
            "LANGUAGE":"nor",
            "NAME":"HQ_audio_1",
            "GROUP-ID":"audio-HQ",
            "TYPE":"AUDIO"
          },
          {
            "taskId":241558,
            "uri":"http://10.10.30.53:8080/subs/HQ_audio_2.m3u8",
            "manifestUri":"subs/HQ_audio_2.m3u8",
            "LANGUAGE":"dan",
            "NAME":"HQ_audio_2",
            "GROUP-ID":"audio-HQ",
            "TYPE":"AUDIO"
          }
        ]
      }
    }
  }
}
Важно
playerMaster ниже), когда происходит переключение варианта потока.Примечание
Ниже описаны некоторые поля, полученные зондом из Мастер-плейлиста. Подробное описание вы можете найти в спецификации HTTP Live Streaming [RFC8216]
- protocol - строка, протокол анализируемого потока (сервиса); 
- ottMode - строка, режим анализа HLS сервиса (дополнительную информацию можно найти в описании поляottAllRenditionsв разделе Конфигурация задачи):allRenditionsMaster- анализатору передан URI Мастер-плейлиста. Зонд работает в режиме анализа всех альтернатив медиа-данных всех вариантов потока. Создаются одна мастер-задача и дочерние задачи для анализа каждой альтернативы;playerMaster- анализатору передан URI Мастер-плейлиста. Зонд работает в режиме «плеера». Создаются одна мастер-задача и несколько дочерних задач, в зависимости от структуры анализируемого варианта потока;rendition- анализатору передан URI плейлиста непосредственно альтернативы медиа-данных или варианта потока. Создается только одна задача.
- ottType - строка, тип сервиса и режим его анализа:Live- сервис имеет тип Live, контент анализируется со скоростью проигрывания сегментов;VOD- сервис имеет тип VoD, контент анализируется со скоростью проигрывания сегментов;VODgreedy- сервис имеет тип VoD. Агрессивный режим скачивания, контент анализируется на максимально возможной скорости.
- hasChildTasks - логический тип, - trueозначает, что запрашиваемая задача является родительской и имеет дочерние задачи;
- group - объект, описание реляционных отношений между родительской задачей и дочерними задачами и структуры OTT сервиса; 
- children - массив целых чисел, идентификаторы дочерних задач; 
- ottPresentation - объект, детальное описание дочерних задач: 
- variantStreams - массив объектов. Описание дочерних задач, анализирующих варианты потока:
- taskId - целое число, идентификатор дочерней задачи; 
- uri - строка, абсолютный путь к плейлисту с медиа-данными, интерпретированный зондом; 
- manifestUri - строка, путь к плейлисту с медиа-данными, указанный в Мастер-плейлисте. Может совпадать с абсолютным путем; 
- SUBTITLES - строка, идентификатор группы альтернатив субтитров; указанная группа должна быть использована при проигрывании данного варианта потока; 
- AUDIO - строка, идентификатор группы альтернатив аудио; указанная группа должна быть использована при проигрывании данного варианта потока; 
- VIDEO - строка, идентификатор группы альтернатив видео; указанная группа должна быть использована при проигрывании данного варианта потока; 
- RESOLUTION - строка, оптимальное пиксельное разрешение варианта потока; 
- BANDWIDTH - строка, максимальное значение суммы пиковых битрейтов сегментов, образованной комбинацией альтернатив медиа-данных определенного варианта потока; 
- CODECS - строка, список форматов, где каждый формат описывает тип медиа-семплов, которые представлены в одной или нескольких альтернативах, принадлежащих варианту потока. 
 
 
- renditions - массив объектов. Описание дочерних задач, анализирующих альтернативы медиа-данных:
- taskId - целое число, идентификатор дочерней задачи; 
- uri - строка, абсолютный путь к плейлисту с медиа-данными, интерпретированный зондом; 
- manifestUri - строка, путь к плейлисту с медиа-данными, указанный в Мастер-плейлисте. Может совпадать с абсолютным путем; 
- DEFAULT - строка, если установлено значение YES и пользователь не выбрал иного, плеер должен начать проигрывание данной альтернативы медиа-данных по умолчанию. Стандарт описывает следующие возможные значения: - YES, NO;
- TYPE - строка, тип альтернативы медиа-данных. Стандарт описывает следующие возможные значения: - AUDIO, VIDEO, SUBTITLES, CLOSED-CAPTIONS. Если в объекте описания дочерней задачи присутствует поле- type, значит объект описывает задачу анализа альтернативы медиа-данных, в противном случае - задачу анализа варианта потока;
- GROUP-ID - строка, идентификатор группы, которой принадлежит альтернатива медиа-данных; 
- LANGUAGE - строка, стандартный тег [RFC5646] для идентификации основного языка альтернативы медиа-данных в Мастер-плейлисте; 
- NAME - строка, текстовое описание альтернативы медиа-данных.