• Русский
  • О Alauda Distributed Tracing

    Alauda Distributed Tracing записывает, как один запрос проходит через сервисы в распределённом приложении. Это помогает командам отслеживать путь запросов от начала до конца, понимать задержки на границах сервисов и устранять сбои в облачных средах микросервисов.

    Основные понятия в распределённом трассировании

    В современном приложении одно действие пользователя часто инициирует работу во множестве сервисов. Распределённое трассирование сопоставляет эти единицы работы, чтобы полный путь выполнения можно было анализировать как одну транзакцию.

    Trace представляет путь запроса через систему от начала до конца. Каждый trace содержит один или несколько span.

    Span представляет логическую единицу работы. В нём записываются имя операции, время начала, длительность и необязательные метаданные, такие как теги и логи. Span можно вкладывать друг в друга, чтобы показать причинно-следственные связи между upstream- и downstream-операциями.

    Как владелец сервиса, вы можете использовать Alauda Distributed Tracing для инструментирования приложений, анализа зависимостей между сервисами, профилирования задержек и расследования сбоев.

    С помощью Alauda Distributed Tracing вы можете:

    • Отслеживать распределённые транзакции
    • Оптимизировать производительность и задержки
    • Выполнять анализ первопричин

    Alauda Distributed Tracing может работать вместе с другими компонентами observability:

    Возможности

    Alauda Distributed Tracing предоставляет следующие возможности:

    • Интеграция с Kiali. При настройке с Alauda Service Mesh вы можете открывать данные distributed tracing напрямую из консоли Kiali.
    • Высокая масштабируемость. Backend Jaeger спроектирован для горизонтального масштабирования вместе с ростом трафика приложений и операционной нагрузки.
    • Распространение distributed context. Trace context может передаваться через границы сервисов, чтобы связанные span объединялись в полный trace от начала до конца.
    • Совместимость с Zipkin. Jaeger может принимать данные трассировки в формате Zipkin, что помогает командам переходить с существующего инструментирования Zipkin с минимальными изменениями.

    Для более общего обзора возможностей см. Features.

    Архитектура

    Alauda Distributed Tracing объединяет Jaeger v2, Alauda Build of OpenTelemetry v2 и Elasticsearch для сбора, хранения и визуализации данных trace в Kubernetes.

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

    • Alauda Distributed Tracing (Jaeger): Этот компонент основан на Jaeger v2 и предоставляет backend для трассировки.
      • Jaeger Binary. Основная среда выполнения построена на фреймворке OpenTelemetry Collector и может запускать развертывания с назначенными ролями, такие как collector и query, для получения, хранения, поиска и визуализации данных trace.
      • Jaeger ES Rollover: Этот компонент управляет ресурсами rollover в Elasticsearch, такими как шаблоны, псевдонимы и ротация индексов, чтобы длительно работающие кластеры могли эффективно сохранять данные трассировки.
    • Alauda Build of OpenTelemetry v2: Этот компонент основан на проекте Open Source OpenTelemetry и предоставляет поддерживаемую дистрибуцию для приёма, обработки и экспорта telemetry data.
      • OpenTelemetry Operator: Operator разворачивает и управляет экземплярами Jaeger в кластере и выполняет согласование ресурсов, необходимых для трассировочных pipeline.
      • OpenTelemetry Collector: Collector — это независимый от поставщика компонент, который можно разместить перед Jaeger для приёма telemetry, его обогащения или преобразования, а затем пересылать в один или несколько backend. Это также распространённая точка назначения для библиотек instrumenting, которые экспортируют telemetry data с использованием открытых стандартов, таких как OTLP.
    • Elasticsearch: Elasticsearch хранит данные trace для поиска и анализа и служит backend-хранилищем для Alauda Distributed Tracing.

    Для более общего обзора архитектуры см. Architecture.