Архитектура

Данная архитектура построена на стеке технологий OpenTelemetry и Jaeger, обеспечивая полный жизненный цикл управления распределённым трассированием. Система состоит из пяти основных модулей: сбор данных, передача, хранение, запросы и визуализация.

Содержание

Основные компоненты

  1. Система OpenTelemetry

    • opentelemetry-operator
      Оператор на уровне кластера, отвечающий за развертывание и управление компонентом otel-collector, обеспечивающий возможность автоматической инъекции OTel.
    • otel-collector
      Принимает данные трассировки от приложений, фильтрует и группирует их, затем пересылает в jaeger-collector.
    • Tracing UI
      Самостоятельно разработанный интерфейс визуализации, интегрированный с API jaeger-query, поддерживающий многомерные условия запросов.
  2. Система Jaeger

    • jaeger-operator
      Разворачивает и управляет компонентами jaeger-collector и jaeger-query.
    • jaeger-collector
      Принимает данные трассировки, переданные и обработанные otel-collector, выполняет преобразование формата и записывает их в Elasticsearch.
    • jaeger-query
      Предоставляет API для запросов трассировки, поддерживающий многокритериальный поиск, включая TraceID и метки.
  3. Слой хранения

    • Elasticsearch
      Распределённый движок хранения, поддерживающий эффективную запись и извлечение большого объёма данных Span.

Поток данных

  • Процесс записи
    Application -> otel-collector -> jaeger-collector -> Elasticsearch

    Приложение генерирует данные Span через SDK или автоматическую инъекцию, которые стандартизируются otel-collector и затем сохраняются в Elasticsearch через jaeger-collector.

  • Процесс запроса
    User -> Tracing UI -> jaeger-query -> Elasticsearch

    Пользователь отправляет условия запроса через UI, jaeger-query извлекает данные из Elasticsearch; UI визуализирует результаты на основе возвращённых данных.