Концепция распределенных трассировок
В этой статье вы узнаете о наиболее важных концепциях и терминологии распределенной трассировки в Ключ-АСТРОМ.
Распределенные трассировки
Распределённая трассировка — это последовательность интервалов, с уникальным идентификатором трассировки, которая отслеживает путь одного запроса при его прохождении через различные службы и компоненты распределённой системы. В современной микросервисной среде она обычно охватывает несколько служб, предоставляя детальное представление о маршруте запроса и его производительности. Трассировка содержит семантически различные атрибуты, которые позволяют интерпретировать и понимать собранные данные, помогая выявлять узкие места, ошибки и проблемы с задержками для эффективного устранения неполадок и оптимизации.
Варианты использования
- Понимание того, как запросы распространяются между распределенными системами и микросервисами.
- Используйте данные, генерируемые распределенными системами и микросервисами для анализа запросов.
- Быстро оцените эффективность работы каждого микросервиса.
- Следуйте детальному анализу первопричин с помощью ИИ, чтобы определить причинно-следственные связи между событиями.
Операция Span
Span представляет собой отдельную операцию в рамках распределённой трассировки, фиксируя сведения о прохождении запроса через несколько служб. Каждый Span включает такие атрибуты, как имя, метка времени начала, список событий Span (например, исключений), идентификатор родительского Span и тип Span. Эта информация — контекст Span — помогает сопоставить все Span и события друг с другом, что позволяет отслеживать и понимать производительность и поведение отдельных операций в распределённой системе.
В рамках трассы, когда родительский промежуток (Span) завершается, следующий промежуток (Span) переходит к его дочернему промежутку (Span) . Интервал без родительского промежутка называется корневым промежутком трассировки и обозначает начало трассировки.
Контекст интервала позволяет дочернему интервалу связываться с трассировкой и его родительским интервалом. Следовательно, контекст должен распространяться внутри сервиса (между разными потоками), а также за пределы служб и процессов. Обычно это происходит через HTTP-заголовки (например, контекст трассировки W3C) или через уникальные идентификаторы в системах обмена сообщениями.
Атрибуты
Атрибуты — это пары «ключ-значение», которые предоставляют информацию о диапазоне, запросе или ресурсе, такую как коды ответов, HTTP-методы и URL-адреса. С помощью атрибутов вы можете группировать, запрашивать, находить и анализировать свои трассировки и диапазоны.
Варианты использования
Ключ-АСТРОМ использует метаданные атрибутов для
- Обнаружение и присвоение имен службам.
- Сбора данных о контексте трассировки и связях с другими сущностями для топологии Smartscape.
- Подключения данных логов к трассировкам для Logs Classic.
- Понимания, как продолжительность периода зависит от времени обслуживания (например, времени ЦП, времени сети или просто ожидания других потоков), и для анализа, какой код был выполнен в контексте периода.
Лучшие практики
Если вы собираете данные трассировки через
- OpenTelemetry, определяет настройки захваченных атрибутов.
- ЕдиныйАгент, определяет настройки атрибутов запросов.
Сервисы
Сервисы обрабатываются распределенными трассировками. В масштабируемых сервисах каждый промежуток обрабатывается определенными экземплярами сервисов. Сервисы определяются и именуются на основе доступных атрибутов или свойств, которые собираются вместе с промежутками.
Варианты использования
- Сегментация запросов для улучшения снижения времени отклика.
Сбор данных и распространение контекста
Вы можете интегрировать OpenTelemetry и ЕдиныйАгент для сбора данных трассировки, таких как статус запроса, время ответа, версии, информация об инфраструктуре и другие релевантные метаданные в виде атрибутов. Контекст трассировки, включая уникальный идентификатор трассировки, затем распространяется между вашими приложениями и микросервисами.
Лучшие практики
Прежде чем приступить к работе с распределённой трассировкой, разберитесь, чем отличаются настройка и сбор данных трассировки в OpenTelemetry и ЕдиногоАгента. Ниже представлен обзор основных различий.
| OpenTelemetry | ЕдиныйАгент | |
|---|---|---|
| Настройка | Автоматический или ручной | Автоматический |
| Захват | Автоматический сбор разрешенных атрибутов span. | Автоматический сбор нескольких атрибутов запроса, включая метод HTTP, URL, коды ответов, данные топологии и сведения о базовых технологиях. |
| Контекст | Автоматически или вручную контекстуализированные записи логов в зависимости от библиотеки инструментов. | Автоматически контекстуализируется
|
Чтобы начать, см.
- Автоматическая настройка с ЕдинымАгентом
- Инструментирование с помощью OpenTelemetry
- Расширение распределенной трассировки
Технология PurePath
Компания Ключ-АСТРОМ запатентовала технологию PurePath для распределенной трассировки с 2006 года. Технология PurePath объединяет распределенную информацию трассировки с дополнительными данными, такими как информация о пользовательском опыте, логи, метрики, информация о топологии, метаданные и даже информация профилирования на уровне кода, чтобы обеспечить высочайший уровень точности и детализации данных.
Варианты использования
Анализируйте данные вплоть до уровня кода, не теряя при этом полного контекста вашей среды во время детализации, с наивысшим уровнем детализации данных и точности отслеживаемых транзакций.
