Компоненты 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 и других.

Трейсеры Proto OBP для автоматической инструментации приложений

ProtoOBP Java трейсер

ProtoOBP PHP трейсер

ProtoOBP Node JS трейсер

ProtoOBP Go трейсер

ProtoOBP Python трейсер

ProtoOBP .NET трейсер

ProtoOBP End User Monitoring Browser агент

ProtoOBP End User Monitoring Android агент

ProtoOBP End User Monitoring iOS агент