Skip to main content
Skip table of contents

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

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

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

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

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

Статистика

Воркер отправляет в канал статистики два типа сообщений:

  • Статистика по использованным ресурсам сервера, на котором работает воркер. Такое сообщение оправляется каждые 4 секунды. Формат сообщения имеет следующий вид:

NONE
{
    "channel": "stats", // название канала в push1st-е
    "data": {
        "cpu": {
          "cpu_count": 8,
          "cpu_loadavg_percent_15min": 12.5,
          "cpu_loadavg_percent_1min": 12.5,
          "cpu_loadavg_percent_5min": 12.5,
        }
        "memory": {
          "total_memory": 8342810624,
          "available_memory": 7360401408,
          "used_memory": 663388160,
          "used_percent_memory": 11.8
        }
        ipaddress: "192.168.205.151"
    }
}

  • Информация о состоянии кейсов, которые сейчас работают на воркере. Формат сообщения имеет следующий вид:

CODE
{
    "channel": "stats", // название канала в push1st-е
    "data": {
        "ovmsUid": "a6e862d2-c6ea-11ec-88bc-59d920260ee8", // uid воркера аналитики
        "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", // порт для API воркера аналитики
        "ovmsClientUid": "f45d2b96-9adb-11ec-8995-a3b0e5228375", // uid воркера аналитики
        "ovmsClientHostIp": "10.244.112.212" // адрес воркера, сгенерировавшего событие
        "timestampMs": 1663145196202, // время генерации события 
        "eventFrameUrl": "/store/95064324-abc5-11ee-8c4f-b5c3d514a8ed/20240122/46707ff2-6505-4fb9-bed9-05a726af12df.jpg", // ссылка на изображение события
        .... // далее могут передаваться данные, которые относятся к конкретному типу аналитики
    },
    "event": "event"
}

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

Канал управления используется для передачи кейса в работу воркеру аналитики. Название канала формируется как <название типа аналитики>.<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.