Перейти к содержанию

Распространение контекста span и трассировки

Контекст трассировки между сервисами

Dynatrace обеспечивает непрерывную видимость потоков сервисов путём распространения контекста трассировки по мере перемещения транзакций между сервисами и компонентами. Это распространение необходимо для сквозного мониторинга распределённых приложений.

Автоматическое распространение с помощью OneAgent

При установке OneAgent он автоматически:

  • Внедряет контекст трассировки в исходящие запросы.
  • Считывает контекст трассировки из входящих запросов.
  • Поддерживает контекст транзакций через границы сервисов.
  • Использует различные механизмы для корреляции распределённых трассировок, позволяя Dynatrace отображать полный поток транзакций через ваше приложение.

Механизмы распространения

Dynatrace использует несколько механизмов для поддержания контекста трассировки:

  • x-dynatrace — для различных протоколов связи. Этот формат является проприетарным для Dynatrace.
  • traceparent и tracestate — стандартный формат W3C, используемый как OneAgent, так и OpenTelemetry.
  • dtdTraceTagInfo — пользовательское свойство для различных систем обмена сообщениями.

Конкретная реализация варьируется в зависимости от технологии: иногда используются заголовки HTTPS, свойства сообщений SQS или внедрение payload AWS EventBridge.

Смешанные среды с OpenTelemetry

В смешанных средах с инструментацией как OneAgent, так и OpenTelemetry распространение контекста трассировки устраняет разрыв:

  • И OneAgent, и OpenTelemetry используют формат W3C Trace Context.
  • Контекст должен распространяться согласованно по всему каналу связи.
  • Для HTTP это стандартизировано в заголовках.
  • Для других протоколов, таких как обмен сообщениями и события, необходимо соблюдать согласованность размещения между OneAgent и OpenTelemetry.

Включение W3C trace context

Существует несколько причин для включения W3C trace context в Dynatrace:

  • Совместимость с отраслевым стандартом — соответствие спецификации W3C.
  • Независимая от поставщика трассировка — работает в гетерогенных средах с несколькими решениями для мониторинга.
  • Ориентация на будущее — соответствие отраслевому направлению для распределённой трассировки.

Соображения при использовании W3C trace context

  • Проблемы совместимости — несмотря на то что это стандарт, реальные реализации могут различаться.
  • Поведение браузеров и приложений — некоторые клиенты могут многократно отправлять одинаковый traceId, что влияет на качество трассировки.
  • Конфликты инструментов — несколько APM-инструментов в одном процессе могут перезаписывать контекст друг друга.

Настройка W3C trace context

Для включения W3C trace context

Последняя версия Dynatrace

  1. Перейдите в Settings Settings > Collect and capture > General monitoring settings > OneAgent features.
  2. Включите Send W3C Trace Context HTTP headers и Send W3C Trace Context gRPC headers.

Dynatrace Classic

  1. Перейдите в Settings > Preferences > OneAgent features.
  2. Включите Send W3C Trace Context HTTP headers и Send W3C Trace Context gRPC headers.

Хотя стандарт W3C формально определяет распространение по HTTP, Dynatrace и более широкая отрасль применяют эти концепции и к другим протоколам связи.