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

Пример

Запрос утилитой cURL
#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}}}}}]}'
Ответ на запрос из примера #2
 {
   "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
             }
           }
         }
       }
     }
   ]
 }