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. Варианты наполнения объекта при запросе информации для различных типов задач рассмотрены в примерах ниже.
Пример¶
#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 - строка, текстовое описание альтернативы медиа-данных.