Распространение контекста 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
- Перейдите в
Settings > Collect and capture > General monitoring settings > OneAgent features. - Включите Send W3C Trace Context HTTP headers и Send W3C Trace Context gRPC headers.
Dynatrace Classic
- Перейдите в Settings > Preferences > OneAgent features.
- Включите Send W3C Trace Context HTTP headers и Send W3C Trace Context gRPC headers.
Хотя стандарт W3C формально определяет распространение по HTTP, Dynatrace и более широкая отрасль применяют эти концепции и к другим протоколам связи.