Компоненты Proto Observability Platform
На данной странице представлено описание компонентов Proto Observability Platform.
Схема архитектуры платформы
graph TB
%% External Data Sources - TOP
subgraph External["🌐 ИСТОЧНИКИ ДАННЫХ"]
direction LR
Agent["protoobp-agent"]
LogShippers["Сторонние лог-шипперы"]
ThirdParty["Сторонние агенты"]
OtelExt["OpenTelemetry Collector"]
Tracers["Трейсеры"]
RUMWeb["Веб-приложения<br/>(Real User Monitoring)"]
RUMMobile["Мобильные приложения<br/>(Real User Monitoring)"]
Agent ~~~ LogShippers ~~~ ThirdParty ~~~ OtelExt ~~~ Tracers ~~~ RUMWeb ~~~ RUMMobile
end
%% Data Ingestion - Below External
subgraph DataIngestion["📥 ПРИЁМ ДАННЫХ"]
direction LR
subgraph Routing["Роутинг и обработка"]
direction TB
Nginx["proto-nginx"]
TraceProc["proto-trace-processor"]
MetricAdapter["proto-metric-adapter"]
end
subgraph Buffer["Буфер данных"]
direction TB
Kafka["proto-kafka"]
end
subgraph Receivers["Приёмники данных"]
direction TB
OtelCollector["proto-otel-collector"]
TraceReceiver["proto-trace-receiver"]
MetricReceiver["proto-metric-receiver"]
end
%% Invisible edges to enforce left-to-right ordering
Routing ~~~ Buffer
Buffer ~~~ Receivers
end
subgraph OrchestrationLayer["⚙️ ОРКЕСТРАЦИЯ И API"]
direction LR
Zookeeper["proto-zookeeper"]
ApiManager["proto-api-manager"]
DataAnalyzerAPI["proto-data-analyzer-api"]
DataAggregator["proto-data-aggregator"]
Zookeeper ~~~ ApiManager
ApiManager ~~~ DataAnalyzerAPI
DataAnalyzerAPI ~~~ DataAggregator
end
subgraph StorageLayer["💾 ХРАНЕНИЕ ДАННЫХ"]
direction TB
ProtoStorage["proto-storage<br/>"]
MetricStorage["proto-metric-storage<br/>(хранение метрик)"]
LogStorage["proto-log-storage<br/>(хранение логов)"]
Database["proto-database<br/>(хранение трейсов, <br/>событий, алертов, конфигурации)"]
end
%% Alerting
subgraph AlertingLayer["🚨 АЛЕРТИНГ"]
direction LR
AlertRuleMgr["proto-alert-rule-manager"]
AlertProcessor["proto-alert-processor"]
Alertmanager["proto-alertmanager"]
AlertRuleMgr ~~~ AlertProcessor ~~~ Alertmanager
end
%% Analytics
subgraph AnalyticsLayer["📊 АНАЛИТИКА"]
direction LR
MetricExporter["proto-metric-exporter"]
MetricAnalyzer["proto-metric-analyzer"]
DataAnalyzerRefresh["proto-data-analyzer-refresh"]
DataAnalyzerRouter["proto-data-analyzer-router"]
DataAnalyzerW1["proto-data-analyzer-worker-1"]
DataAnalyzerW2["proto-data-analyzer-worker-2"]
JobRunner["proto-job-runner"]
GraphBuilder["proto-graph-builder"]
MetricExporter ~~~ MetricAnalyzer
MetricAnalyzer ~~~ DataAnalyzerRefresh
DataAnalyzerRefresh ~~~ DataAnalyzerRouter
DataAnalyzerRouter ~~~ DataAnalyzerW1
DataAnalyzerW1 ~~~ DataAnalyzerW2
DataAnalyzerW2 ~~~ JobRunner
JobRunner ~~~ GraphBuilder
end
%% Authentication
subgraph AuthLayer["🔐 АУТЕНТИФИКАЦИЯ"]
direction LR
Auth["proto-auth"]
Postgres["proto-postgres"]
Auth ~~~ Postgres
end
%% UI
subgraph UILayer["🖥️ ВЕБ-ИНТЕРФЕЙС"]
direction LR
ProtoUI["proto-ui"]
LogsViewer["proto-backend-logs-viewer"]
AlertMonitor["proto-alert-monitor"]
ProtoUI ~~~ LogsViewer ~~~ AlertMonitor
end
%% Identity Providers
subgraph IdPLayer["🔑 ПОСТАВЩИКИ УЗ"]
direction LR
SAML["SAML"]
OIDC["OIDC"]
LDAP["LDAP"]
AD["Active Directory"]
SAML ~~~ OIDC ~~~ LDAP ~~~ AD
end
%% External Alert Receivers
subgraph AlertReceiversLayer["📤 ПОЛУЧАТЕЛИ АЛЕРТОВ"]
direction LR
ServiceDesk["Service Desk / ITSM"]
ExtAlertmanager["Внешний AlertManager"]
TelegramBot["Telegram"]
ChatSystem["Чат системы"]
ServiceDesk ~~~ ExtAlertmanager ~~~ TelegramBot ~~~ ChatSystem
end
%% Layout ordering
External --> DataIngestion
DataIngestion --> StorageLayer
StorageLayer <--> AnalyticsLayer
AnalyticsLayer <--> OrchestrationLayer
OrchestrationLayer <--> UILayer
UILayer <--> AuthLayer
UILayer <--> AlertingLayer
AuthLayer --> IdPLayer
AlertingLayer --> AlertReceiversLayer
%% Styling
classDef external fill:#f5f5f5,stroke:#616161,stroke-width:2px
classDef ingestion fill:#fff9c4,stroke:#f57f17,stroke-width:2px
classDef transform fill:#f3e5f5,stroke:#4a148c,stroke-width:2px
classDef storage fill:#e1f5ff,stroke:#01579b,stroke-width:2px
classDef orchestration fill:#fce4ec,stroke:#880e4f,stroke-width:2px
classDef alert fill:#ffebee,stroke:#b71c1c,stroke-width:2px
classDef analytics fill:#fff3e0,stroke:#e65100,stroke-width:2px
classDef auth fill:#e8f5e9,stroke:#1b5e20,stroke-width:2px
classDef ui fill:#e0f2f1,stroke:#004d40,stroke-width:2px
classDef alertReceivers fill:#f5f5f5,stroke:#616161,stroke-width:2px
classDef idp fill:#e8eaf6,stroke:#283593,stroke-width:2px
classDef innerBlock fill:#fff,stroke:#888,stroke-width:1px
class Agent,LogShippers,ThirdParty,OtelExt,Tracers,RUMWeb,RUMMobile external
class Nginx,TraceProc,Kafka,OtelCollector,MetricAdapter ingestion
class TraceReceiver,MetricReceiver ingestion
class Routing,Buffer,Receivers innerBlock
class MetricStorage,LogStorage,Database,ProtoStorage storage
class ApiManager,DataAnalyzerAPI,DataAggregator orchestration
class Zookeeper orchestration
class AlertRuleMgr,AlertProcessor,Alertmanager alert
class MetricExporter,MetricAnalyzer,DataAnalyzerRefresh,DataAnalyzerRouter,DataAnalyzerW1,DataAnalyzerW2,JobRunner,GraphBuilder analytics
class SAML,OIDC,LDAP,AD idp
class Auth,Postgres auth
class ProtoUI,LogsViewer,AlertMonitor ui
class ServiceDesk,ExtAlertmanager,TelegramBot,ChatSystem alertReceivers
ProtoOBP Backend
Набор преднастроенных компонентов платформы для сбора и анализа данных. Включает основные компоненты:
proto-alert-monitor: Отображение алертов в реальном времени — получает алерты через API изproto-alertmanagerи визуализирует их.proto-alert-processor: Вычисление правил алертинга.proto-alertmanager: Маршрутизация алертов по каналам оповещения и агрегация алертов.proto-alert-rule-manager: API для управления правилами алертинга, каналами оповещения и политиками алертинга.proto-auth: Аутентификация пользователейproto-ui, управление подключениями SAML/IDP/LDAP для внешних провайдеров аутентификации.proto-backend-log-viewer: API и интерфейс для просмотра логов всех компонентов, работающих в контейнерахdocker compose.proto-data-analyzer: Семантический слой для анализа данных. Хранит модели данных в виде схем и предоставляет API доступа к данным дляproto-ui.proto-database: Хранилище данных для трейсов (спанов), событий, алертов и конфигурации.proto-kafka: Буфер для входящих данных.proto-log-storage: Хранилище логов.proto-metric-adapter: Компонент, использующийся для преобразования данных логов и алертов и отправки в другие компоненты.proto-metric-analyzer: Чтение метрик изproto-metric-storage, расчёт базовых линий метрик и обнаружение аномалий.proto-metric-exporter: Преобразование метрик.proto-metric-storage: Хранилище метрик, API для запросов и записи метрик.proto-nginx: Маршрутизация запросов между компонентами системы.proto-data-aggregator: GraphQL API, используемыйproto-uiдля получения данных.proto-trace-receiver: Потребление данных трейсов изproto-kafkaи их обработка.proto-metric-receiver: Обработка метрик.proto-ui: основной веб-интерфейс системы. Визуализация всех собранных данных в едином интерфейсе.proto-otel-collector: OpenTelemetry-интерфейсы для приёма телеметрии.proto-postgresql: База данных, используемая только компонентомproto-authдля хранения данных аутентификации.proto-storage: Хранилище данных.proto-trace-processor: Пайплайны обработки данных.proto-zookeeper: Синхронизация данных между компонентами.
Перейти к документации по установке ProtoOBP Backend.
ProtoOBP UI
Интерфейс платформы для визуализации данных и работы с системой посредством браузера.
ProtoOBP Агент
Единый агент для сбора трейсов, логов, метрик с инфраструктурных компонентов - приложения, ОС серверов, Kubernetes, СУБД, прокси-серверов, Redis, Elasticsearch и других.