Форматы сообщений для исполняемых файлов
При запуске исполняемый файл подключается к трем каналам:
Канал статистики (stats) – для отправки своего состояния (память, цпу и т.д.)
Канал событий (raw-events) – для отправки генерируемых событий
Канал управления (название канала формируется как <название типа аналитики>.<binary uid>) - через данный канал исполняемый файл получает задания на обработку
Статистика
Сообщения в канал статистики (stats) исполняемый файл отправляет каждые 2-3 секунды. Формат сообщения имеет следующий вид:
{
"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. Формат сообщения может отличаться в зависимости от типа аналитики. В общем виде формат сообщения имеет следующий вид:
{
"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> и используется оркестратором для созднания, удаления и редактирования кейсов.
{
"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" // идентификатор кейса аналитики
.... // далее в этом блоке передаются данные, которы могут относится к конкретному типу аналитики
}
}
}