Add some ivideon schemes
This commit is contained in:
parent
a34a290ae7
commit
fe1f7b31b4
4 changed files with 148 additions and 0 deletions
|
|
@ -16,11 +16,14 @@ package "api_concept.entities/maas" {
|
|||
|
||||
package "maas/api/impl/organization" {
|
||||
class MaasOrganization {
|
||||
+ {field} PERMISSIONS_COLLECTION = db.main().permission_grants
|
||||
+ share_grant(\n grantee_id,\n permission\n)
|
||||
}
|
||||
}
|
||||
|
||||
package "api_concept.backend/impl/permission_grant" {
|
||||
class PermissionGrant {
|
||||
+ {field} COLLECTION = db.main().ivideon.permission_grants
|
||||
+ find()
|
||||
}
|
||||
|
||||
|
|
|
|||
60
ivideon/puml/9179/analytics_node.puml
Normal file
60
ivideon/puml/9179/analytics_node.puml
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
@startuml
|
||||
title Узел аналитики: взаимодействие сервисов и внешних систем
|
||||
|
||||
skinparam componentStyle rectangle
|
||||
skinparam wrapWidth 200
|
||||
skinparam maxMessageSize 200
|
||||
|
||||
'=== Внешние системы ===
|
||||
cloud "Централ (API5)" as CENTRAL
|
||||
cloud "Видеоноды" as VNODE
|
||||
|
||||
'=== Узел аналитики ===
|
||||
node "Analytics Node" {
|
||||
[ivideon-analytics-controller\n(analytics-controller)] as CTRL
|
||||
[ivideon-analytics-video-proxy\n(analytics-video-proxy)] as PROXY
|
||||
[ivideon-event-saver\n(analytics-event-saver)] as SAVER
|
||||
[ivideon-cloud-vs\n(cloud-vs)] as CLVS
|
||||
[ivideon-analytics-visitor-counter\n(analytics-visitor-counter)] as VC
|
||||
|
||||
database "База данных\nMongoDB\ncollections:\n- analytics.channels\n- analytics.events" as DB
|
||||
}
|
||||
|
||||
'=== Связи с Централом (API5) ===
|
||||
CTRL -down-> CENTRAL : Периодическая синхронизация\n• Получение списка камер\n• Получение/обновление настроек облачных модулей\n• Оповещение об ошибках\n• Передача метрик
|
||||
PROXY -down-> CENTRAL : Запросы к API5 для получения\nпараметров/доступа к видеопотоку\n(со стороны видеонод)
|
||||
|
||||
'=== Поток видео ===
|
||||
PROXY --> CLVS : Проксирование видеопотока\n(FLV в формате видеонод)
|
||||
PROXY ..> VNODE : Доступ к потокам с видеонод\n(через API5 Централа)
|
||||
|
||||
'=== WebSocket-взаимодействие ===
|
||||
CTRL -left-> PROXY : WebSocket (к серверу PROXY)\nУведомления об ошибках ivideon-analytics-video-proxy
|
||||
CLVS -right-> CTRL : WebSocket (к серверу CLVS)\nСобытия облачного видеосервера
|
||||
|
||||
'=== Счётчик посетителей ===
|
||||
VC --> CTRL : События счётчика (по FLV-потоку)\nдля аналитики
|
||||
|
||||
'=== Синхронизация состояния через БД ===
|
||||
CTRL -down-> DB : Обновление состояния каналов\n(collection: analytics.channels)
|
||||
PROXY -down-> DB : Периодическая вычитка состояния каналов\n• При state=stream_awaited ⇒ выставляет state=streaming\n• Выставление acknowledgment-статусов
|
||||
PROXY -left-> CTRL : Логическая синхронизация состояния\nчерез общую БД (channels)
|
||||
|
||||
'=== Работа с событиями ===
|
||||
CTRL -down-> DB : Обработка и запись событий\n(collection: analytics.events)
|
||||
SAVER -down-> DB : Периодическая вычитка событий
|
||||
SAVER -down-> CENTRAL : Доставка событий в API5\n(тип события ⇒ соответствующий запрос)
|
||||
|
||||
'=== Легенда ===
|
||||
legend right
|
||||
Каналы связи
|
||||
● HTTP/API: сплошная стрелка
|
||||
● WebSocket: подпись "WebSocket"
|
||||
● БД-синхронизация: стрелка к DB с пояснением
|
||||
|
||||
Коллекции
|
||||
analytics.channels — состояние каналов/ACK
|
||||
analytics.events — события для отправки в облако
|
||||
endlegend
|
||||
|
||||
@enduml
|
||||
34
ivideon/puml/9179/analytics_node_stream.puml
Normal file
34
ivideon/puml/9179/analytics_node_stream.puml
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
@startuml
|
||||
title Сценарий: запуск стрима, назначение канала и переход в streaming
|
||||
|
||||
participant CENTRAL as "Централ (API5)"
|
||||
participant CTRL as "analytics-controller"
|
||||
database DB as "DB (analytics.channels)"
|
||||
participant PROXY as "analytics-video-proxy"
|
||||
participant VNODE as "Видеоноды"
|
||||
participant CLVS as "cloud-vs"
|
||||
|
||||
== Синхронизация с централом ==
|
||||
CTRL -> CENTRAL : GET /cameras (список камер на обработку)\nGET /cloud-analytics/settings
|
||||
CENTRAL --> CTRL : список камер, настройки
|
||||
|
||||
== Назначение канала ==
|
||||
CTRL -> DB : upsert channel{cameraId, state=stream_awaited,\nsettings, rev, ...} -> analytics.channels
|
||||
|
||||
== PROXY подхватывает канал ==
|
||||
PROXY -> DB : poll analytics.channels
|
||||
DB --> PROXY : channel{state=stream_awaited}
|
||||
PROXY -> DB : update channel.state=streaming,\nack={rev, ts}
|
||||
|
||||
== Получение видео и проксирование ==
|
||||
PROXY -> CENTRAL : API5 запрос параметров доступа к потоку
|
||||
CENTRAL --> PROXY : креденшелы/URL
|
||||
PROXY -> VNODE : запрос видеопотока (через выданные параметры)
|
||||
VNODE --> PROXY : FLV поток (формат видеонод)
|
||||
PROXY -> CLVS : проксирование FLV в cloud-vs (ingest)
|
||||
|
||||
note right of CLVS
|
||||
cloud-vs получает поток в формате
|
||||
видеонод (FLV) и готов генерировать события
|
||||
end note
|
||||
@enduml
|
||||
51
ivideon/puml/9179/general.puml
Normal file
51
ivideon/puml/9179/general.puml
Normal file
|
|
@ -0,0 +1,51 @@
|
|||
@startuml
|
||||
title Разбор ноды ssh ar1-misc01.extcam.com
|
||||
|
||||
|
||||
file services {
|
||||
component "zabbix-agent2"
|
||||
component "syslog-ng"
|
||||
card ivideon {
|
||||
component "ivideon-analytics-carrier" as i_analy_c #red
|
||||
component "ivideon-server-cloud-vca"
|
||||
component "ivideon-analytics-heatmaps"
|
||||
component "ivideon-sentry-proxy"
|
||||
component iavc [
|
||||
<b>ivideon-analytics-visitor-counter</b>
|
||||
====
|
||||
Обёртка для облачного счётчика посетителей,
|
||||
использует flv-поток для аналитики
|
||||
]
|
||||
component iavp [
|
||||
<b>ivideon-analytics-video-proxy</b>
|
||||
====
|
||||
сервис, проксирующий поток от видеонод в облачный видеосервер
|
||||
]
|
||||
component iaes [
|
||||
<b>ivideon-analytics-event-saver</b>
|
||||
====
|
||||
Cервис, выполняющий доставку в облако событий облачного видеосервера,
|
||||
предварительно обработанных сервисом ivideon-analytics-controller.
|
||||
]
|
||||
component iac_card [
|
||||
<b>ivideon-analytics-controller</b>
|
||||
====
|
||||
Получение от централа актуального списка камер на обработку
|
||||
....
|
||||
Получение и обновление настроек облачных модулей видеоаналитики
|
||||
....
|
||||
Обработка событий от облачного видеосервера/счётчика посетителей
|
||||
....
|
||||
Реагирование на ошибки ivideon-analytics-video-proxy
|
||||
....
|
||||
Оповещение централа о различных ошибках
|
||||
....
|
||||
Передача метрик в централ
|
||||
]
|
||||
}
|
||||
}
|
||||
note top of i_analy_c
|
||||
Данный сервис не хочет подниматься
|
||||
end note
|
||||
|
||||
@enduml
|
||||
Loading…
Reference in a new issue