5.6.2. TaskStart¶
Описание¶
Создание и запуск задач.
При запуске задачи обязательным полем является uri, остальные настройки задачи передаются опционально.
Настройки мониторинга передаются двумя частями …
Архитектура Boro подразумевает, что некоторые настройки передаются задаче индивидуально, а другая часть настроек объединена в профиль порогов. Это позволяет назначить типовой задаче один из предустановленных профилей. Настройки порогов, описанные в методе ProfileInfo, должны быть переданы задаче путем выбора необходимого профиля, а не прямым указанием значения. Все возможные настройки описаны в главе Конфигурация задачи.
Если настройки не передаются, сервер назначит настройки задачи согласно следующим правилам:
- профили уведомлений, порогов, записи и доступности сервиса задаются согласно типу запускаемого сервиса. Значения по умолчанию задаются пользователем в web-интерфейсе, смотрите подробности в Руководстве пользователя; 
- Настройки, не попадающие в профиль порогов, устанавливаются согласно значениям по умолчанию, описанным в главе Конфигурация задачи. 
Чтобы отказаться от автоматического назначения и отключить профиль, передайте в запросе пустой массив для соответствующих типов настроек:
{
          "profiles":{
            "email":[],
            "record":[],
            "kpi":[],
            ...
          },
}
Важно
Профиль порогов зонда невозможно отключить, это обязательный профиль.
Важно
Следующие профили могут быть назначены задаче только по одному: Alarm оповещения, пороги зонда, доступность сервиса.
Запрос¶
{
  "user_id":(number),
  "methods":[
    {
      "method":"TaskStart",
      "params":{
        "project_id":(number),
        "app_id":(number),
        "tasks":[
          {
            "uri":(string),
            "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 - целое число, идентификатор проекта пользователя; 
- app_id - целое число, идентификатор зонда; 
- uri - строка, путь к анализируемому потоку (сервису, файлу); 
- 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":"TaskStart",
      "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":{
            ...
          }
        }
      ]
    }
  ]
}
- task_id - целое число, идентификатор задачи; 
- app_id - целое число, идентификатор зонда; 
- uri - строка, путь к анализируемому потоку (сервису, файлу); 
- name - строка, имя потока (например, название канала); 
- status - строка, состояние задачи: - Scheduled- задача поставлена на запуск. Данное состояние назначается задачам, запускаемым через API. Далее состояние изменяется, в зависимости от успешности запуска задачи;
- 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 - объект, настройки и дополнительная информация о задаче. Смотрите описание структуры в разделе Конфигурация задачи. 
Пример¶
cURL¶#1. Простой пример, в котором передается название и URI задачи.
  curl http://172.16.11.111/ctrl_api/v1/json \
   -H "Content-Type: application/json" \
   --data '{"user_id":4,"methods":[{"method":"TaskStart", "params":{"project_id":23,"app_id":702,"tasks":[{"uri":"udp://239.1.1.3:1234","name":"CtrlAPI test1"}]}}]}'
#2. Пример, в котором дополнительно передаются опции захвата эскизов, профили оповещений и порогов, имя сервиса и теги, а также выбирается интерфейс.
  curl http://172.16.11.111/ctrl_api/v1/json \
   -H "Content-Type: application/json" \
   --data '{"user_id":4,"methods":[{"method":"TaskStart","params":{"project_id":23,"app_id":702,"tasks":[{"uri":"udp://239.1.1.3:1234","name":"CtrlAPI test2","service":"Channel1","tags":"IPTV,HD,TV35","profiles":{"alarm":[79],"threshold":[96],"snmp":[263],"webhook":[265]},"task_config":{"iface":{"ip":"10.10.30.202"},"thumbnail":{"enable":true,"default_period":10,"scte35_period":1}}}]}}]}'
 {
   "reply":[
     {
       "method":"TaskStart",
       "result":[
         {
           "task_id":236918,
           "app_id":702,
           "uri":"udp://239.1.1.3:1234",
           "name":"CtrlAPI test2",
           "status":"Scheduled",
           "start":"2020-03-09 20:30:40 +0700",
           "start_f":1583760640.8342988,
           "service":"Channel1",
           "tags":"IPTV,HD,TV35",
           "profiles":{
             "webhook":[
               265
             ],
             "snmp":[
               263
             ],
             "threshold":[
               96
             ],
             "alarm":[
               79
             ]
           },
           "task_config":{
             "uri":"udp://239.1.1.3:1234",
             "name":"CtrlAPI test2",
             "iface":{
               "ip":"10.10.30.202"
             },
             "thumbnail":{
               "enable":true,
               "default_period":10,
               "scte35_period":1
             },
               ...
           }
         }
       ]
     }
   ]
 }