Skip to main content
Skip table of contents

Форматы сообщений для исполняемых файлов

При запуске исполняемый файл подключается к трем каналам:

  • Канал статистики (stats) – для отправки своего состояния (память, цпу и т.д.)

  • Канал событий (raw-events) – для отправки генерируемых событий

  • Канал управления (название канала формируется как <название типа аналитики>.<binary uid>) - через данный канал исполняемый файл получает задания на обработку

Статистика

Сообщения в канал статистики (stats) исполняемый файл отправляет каждые 2-3 секунды. Формат сообщения имеет следующий вид:

CODE
{
    "channel": "stats", // название канала в push1st-е
    "data": {
        "binaryUid": "a6e862d2-c6ea-11ec-88bc-59d920260ee8", // uid исполняемого файла
        "coresUsed": 12,  // количесвто ядер, которые использует исполняемый файл
        "cpuUsageAvg": 28,  // среднее потребление cpu
        "memUsageRssBytes": 343629824,  // потребление Rss памяти
        "memUsageTotalBytes": 2325626880, // общее потребление памяти (Rss + Shr + Virt)
        "netBytesInPerSec": 206342,  // входящее количество байт в секунду
        "netBytesOutPerSec": 7924,  // исходящее количество байт в секунду
        "streams": {  // блок с описанием состояний кейсов, запущенных на данном исполняемом файле
            "3d1a7e78-2458-11ed-9b5d-21123bef9093": {  // идентификатор кейса
                "frameProcessRate": 5.128205,  // количество обрабатываемых кадров в секунду
                "starttime": 1663023697,  // время запуска кейса на исполняемом файле
                "status": "up",  // текщее состояние (может быть up, down, stopped)
                "streamUid": "ebb04683-8d33-4a94-8aac-c9ea9c6b45db", // идентификатор видеопотока
                "uptime": 120344  // аптайм кейса
            },
            "streamsCount": 1  // общее колличество кейсов на исполняемом файле
        }
    },
    "event": "stats"
}

События

При фиксировании какого-либо события, исполняемый файл должен отправить соответствующее сообщение в канал raw-events. Формат сообщения может отличаться в зависимости от типа аналитики. В общем виде формат сообщения имеет следующий вид:

CODE
{
    "channel": "raw-events", // название канала в push1st-е
    "data": {
        "AnalyticsType": "motion-detect", // тип аналитики
        "CameraGroupUid": "3f3348a9-ae87-4902-947f-725fd25751e3",  // идентификатор CameraGroup 
        "JobUid": "beddb758-303e-11ed-8c49-bd223ebfa82e", // uid кейса аналитики
        "StreamUid": "470b1c5e-748f-49a4-91e5-62f7ac53b8eb",  // uid видеопотока
        "apiPort": "8086", // порт для апи исполняемого файла
        "binaryUid": "f45d2b96-9adb-11ec-8995-a3b0e5228375", // uid исполняемого файла
        "timestampMs": 1663145196202, // время генерации события 
        .... // далее могут передаваться данные, которые относятся к конкретному типу аналитики
    },
    "event": "event"
}

Канал управления

Для передачи кейса в работу исполняемому файлу используется канал управления. Его название формируется как <название типа аналитики>.<binary uid> и используется оркестратором для созднания, удаления и редактирования кейсов.

CODE
{
   "name":"stream_event",
   "channels":[
      "face-recognition.cc71f36e-14c5-11ed-9bd9-bb5c75b9991b"
   ],
   "data":{
      "type":"job_create",  // команда для исполняемого файла, может быть job_create, job_update, job_delete
      "data":{
         "CaseType":"face-recognition",  // тип аналитики
         "CameraGroupUid":"be8ba3dd-419f-4a8b-93ab-907b58a7c063", идентификатор CameraGroup
         "Source":{  // информация о видеопотоке для аналитики
            "Uid":"8d1267c7-554a-4481-856c-4efb8c518d7d",
            "Url":"rtsp://demo.<vms>.io:5554/live/8d1267c7-554a-4481-856c-4efb8c518d7d/?token=F2v53E_ZDg_zXSswjSU2GF5rfhFpWnN7V_4_vbiuryeLLm7rcR3-H6jJwtI2e-5eelwpTSaoDAQ9oncDmGeOF1N_5MVuLJcJxdrUK8TILKAam7Es1Bg7gGEezzfhCDLTIu_f5M1R6oQkfyL5i1XA_A~~",
            "Output":{
               "Encoding":"none",
               "FPS":5
            }
         },
         "JobUid":"16a7dfd4-14bc-11ed-9bd9-bb5c75b9991b"  // идентификатор кейса аналитики
         .... //  далее в этом блоке передаются данные, которы могут относится к конкретному типу аналитики
      }
   }
}

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.