5.6.5. TaskChangeConfig¶
Описание¶
Настройка запущенных задач.
Настройки мониторинга передаются двумя частями …
Архитектура Boro подразумевает, что некоторые настройки передаются задаче индивидуально, а другая часть настроек объединена в профиль порогов. Это позволяет назначить типовой задаче один из предустановленных профилей. Настройки порогов, описанные в методе ProfileInfo, должны быть переданы задаче путем выбора необходимого профиля, а не прямым указанием значения. Все возможные настройки описаны в главе Конфигурация задачи.
В задаче изменяются только те настройки, которые были переданы в методе, остальные настройки остаются без изменений.
Важно
task_id
- идентификатор задачи;uri
или addr
- путь к анализируемому потоку (сервису, файлу);ottAllRenditions
- режим анализа OTT сервиса (Player|AllRenditions).Важно
Для задач анализа OTT сервисов изменение настроек возможно только в родительской задаче (вкладка Master на странице задачи в интерфейсе Boro). Настройки дочерних задач обновятся автоматически.
Запрос¶
{
"user_id":(number),
"methods":[
{
"method":"TaskChangeConfig",
"params":{
"project_id":(number),
"task_ids":[(number)],
"changes":{
"name":(string),
"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":{
...
}
}
}
}
]
}
user_id - целое число, идентификатор пользователя;
project_id - целое число, идентификатор проекта пользователя;
- task_ids - идентификаторы задач, поле может задаваться в одном из следующих форматов:
id1
- целое число, идентификатор задачи;[id1,id2]
- массив целых чисел, идентификаторы задач. changes - объект, перечень новых настроек. В задаче изменяются только те настройки, которые были переданы в данном объекте, остальные настройки остаются без изменений;
name - строка, имя потока (например, название канала);
service - строка, идентификационное имя сервиса (канала) для консолидации состояний и ошибок сервиса из разных точек мониторинга. Данное поле связывает задачи проекта от разных зондов на виде MosaicView;
tags - строка, список тегов, разделенный запятыми. Теги применяются для фильтрации отображения на различных видах;
- profiles - объект, перечень идентификаторов профилей настроек системы оповещения, записи и доступности сервиса:
alarm - массив целых чисел, идентификатор профиля настроек триггеров Alarm оповещения. Текущая реализация позволяет задать только один профиль данного типа;
email - массив целых чисел, идентификаторы профилей настроек триггеров E-mail оповещения;
threshold - массив целых чисел, идентификатор профиля настроек и пороговых значений зонда. Текущая реализация позволяет задать только один профиль данного типа;
pagerduty - массив целых чисел, идентификаторы профилей настроек триггеров оповещения в систему PagerDuty;
record - массив целых чисел, идентификаторы профилей настроек записи;
snmp - массив целых чисел, идентификаторы профилей настроек триггеров SNMP оповещения;
webhook - массив целых чисел, идентификаторы профилей настроек триггеров Webhook оповещения;
telegram - массив целых чисел, идентификаторы профилей настроек триггеров оповещения в мессенджер Telegram;
kpi - массив целых чисел, идентификатор профиля настроек доступности сервиса. Текущая реализация позволяет задать только один профиль данного типа.
task_config - объект, настройки и дополнительная информация о задаче. Смотрите описание структуры в разделе Конфигурация задачи. Некоторые настройки необходимо передавать через профиль thresholds, см. описание метода ProfileInfo.
Ответ¶
{
"reply":[
{
"method":"TaskChangeConfig",
"result":{
"task_ids":[(number)],
"description":"Config change request was sent to probe",
"changes":{
...
}
}
}
]
}
task_ids - массив целых чисел, идентификаторы задач;
changes - объект, перечень новых настроек, которые прошли проверку на корректность на сервере и были отправлены зонду. Описание содержимого объекта аналогично описанию объекта
changes
в Запросе.
Ошибки¶
{
"reply":[
{
"method":"TaskChangeConfig",
"errors":{
...
}
}
]
}
Объект errors
может содержать следующие ошибки:
immutable_fields - массив строк, список настроек, которые не могут быть изменены
['taskId', 'addr', 'addr', 'ottAllRenditions']
. Остановите текущую задачу и запустите новую с корректными настройками;change_with_threshold - массив строк, список настроек, которые принадлежат профилю порогов. Такие настройки можно установить только выбором одного из преднастроенных профилей thresholds;
incorrect_value - массив строк, список настроек, которые имеют некорректное значение;
unable_change_tasks - массив целых чисел, список идентификаторов задач, для которых невозможно выполнить метод (задача с таким id не существует, не запущена или принадлежит другому проекту);
unable_change_subtasks - массив целых чисел, список идентификаторов задач, которые являются дочерними задачами. Для задач анализа OTT сервисов изменение настроек возможно только в родительской задаче;
no_changes_for_tasks - массив целых чисел, список идентификаторов задач. В методе не передается ни одного корректного изменения настроек.
Пример¶
#1. Настройка одной задачи: изменяется название задачи и список тегов
curl http://172.16.11.111/ctrl_api/v1/json \
-H "Content-Type: application/json" \
--data '{"user_id":4,"methods":[{"method":"TaskChangeConfig","params":{"project_id":23,"task_ids":241555,"changes":{"tags":"HD,IPTV","name":"NewTask"}}}]}'
#2. Настройка нескольких задач: изменяется список тегов, включается захват эскизов и контроль замирания
curl http://172.16.11.111/ctrl_api/v1/json \
-H "Content-Type: application/json" \
--data '{"user_id":4,"methods":[{"method":"TaskChangeConfig","params":{"project_id":23,"task_ids":[241555,241630],"changes":{"tags":"HD, IPTV","profiles":{"alarm":390},"task_config":{"thumbnail":{"enable":true,"default_period":5},"freeze":{"enable":true}}}}}]}'
{
"reply":[
{
"method":"TaskChangeConfig",
"result":{
"task_ids":[
241555,
241630
],
"description":"Config change request was sent to probe",
"changes":{
"tags":"HD, IPTV",
"profiles":{
"alarm":390
},
"task_config":{
"thumbnail":{
"enable":true,
"default_period":5
},
"freeze":{
"enable":true
}
}
}
}
}
]
}