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}}}]}}]}'
Часть ответа на запрос из примера #2
 {
   "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
             },
               ...
           }
         }
       ]
     }
   ]
 }