Хотя прокси Istio могут автоматически отправлять спаны, для объединения этих спанов в единую трассу требуется дополнительная информация. Приложения должны передавать эту информацию в HTTP-заголовках, чтобы при отправке спанов прокси бэкенд мог объединить их в одну трассу.
Для этого каждое приложение должно собирать заголовки из каждого входящего запроса и пересылать их во все исходящие запросы, вызванные этим входящим запросом. Выбор заголовков для пересылки зависит от настроенного бэкенда трассировки. Ниже приведено краткое описание:
Все приложения должны пересылать следующие заголовки:
x-request-id
: заголовок, специфичный для Envoy, который используется для последовательного выборочного логирования и трассировки.traceparent
и tracestate
: стандартные заголовки W3CДля других инструментов наблюдаемости обращайтесь к их документации.
Alauda Service Mesh поддерживает распределённое трассирование через интеграцию со следующими компонентами:
Alauda Build of Jaeger: кастомизированное дистрибутивное решение на базе open source проекта Jaeger. Обеспечивает сквозную видимость запросов в сложных распределённых системах.
Alauda Build of OpenTelemetry: основан на проекте OpenTelemetry, этот компонент упрощает сбор телеметрических данных по метрикам, логам и трассам, управляя OpenTelemetry Collector и инструментированием рабочих нагрузок.
OpenTelemetry Collector выступает в роли посредника для телеметрических сигналов. Он поддерживает несколько форматов данных и предоставляет стандартизированный конвейер для обработки и экспорта телеметрии в бэкенды, такие как Jaeger.
Вы можете интегрировать Alauda Service Mesh с OpenTelemetry для инструментирования, генерации, сбора и экспорта трасс, метрик и логов OpenTelemetry с целью анализа и понимания производительности и поведения вашего ПО.
Требования
Процедура
Jaeger
в namespace istio-system
.Обратитесь к скрипту установки в и используйте пример команды ниже для развертывания выделенного для Istio Jaeger
:
Параметр --jaeger-es-index-prefix
задаёт префикс индекса в Elasticsearch, где хранятся данные трассировки.
istio-tracing-cluster-1
.istio-tracing-mesh-1
.После успешной установки вы можете получить доступ к UI Jaeger для запроса трасс по адресу <platform-url>/clusters/<cluster>/istio/jaeger
.
OpenTelemetryCollector
в namespace istio-system
.Пример OpenTelemetry Collector в namespace istio-system
endpoint
— это сервис коллектора Jaeger
в namespace istio-system
.Istio
, чтобы включить трассировку и определить провайдера трассировки OpenTelemetry:Пример: Включение трассировки через meshConfig
service
— это сервис коллектора OpenTelemetry
в namespace istio-system
.Telemetry
, чтобы включить провайдера трассировки, определённого в meshConfig
:Пример ресурса Istio Telemetry
После того как вы убедитесь, что трассы видны, уменьшите значение randomSamplingPercentage
, чтобы сократить количество запросов.