Основные понятия

Содержание

Телеметрия

Телеметрия — это данные, генерируемые системами и их поведением, включая трассы, метрики и логи.

Трасса

Трасса фиксирует путь запроса (от приложения или конечного пользователя) по мере его прохождения через многосервисную архитектуру (например, микросервисы и бессерверные приложения).

Трасса состоит из одного или нескольких спанов. Первый спан называется корневым спаном и представляет собой весь жизненный цикл запроса от начала до конца. Дочерние спаны под корневым спаном предоставляют более подробную контекстную информацию о процессе запроса (или различных шагах, составляющих запрос).

Без трасс было бы довольно сложно определить первопричину проблем с производительностью в распределённых системах. Трассы упрощают отладку и понимание распределённых систем, разбивая поток запросов через них.

Спан

Спан — это базовый строительный блок распределённого трейсинга, представляющий конкретную операцию или единицу работы. Каждый спан фиксирует определённые действия в рамках запроса, помогая понять детали того, что происходило во время выполнения операции.

Спан содержит имя, временные данные, структурированные лог-сообщения и другие метаданные (атрибуты), которые вместе дают полную картину операции.

В зависимости от положения спана в трассе выделяют два специальных типа спанов:

  • Корневой спан: Корневой спан (Trace Root Span) — первый спан в трассе (расположенный сверху), который обозначает точку начала запроса.
  • Спан входа в сервис: Спан входа в сервис — первый спан, создаваемый при вызове сервиса в роли сервера, то есть когда запрос входит в сервис.

Теги спана

В распределённых системах теги спана — это пары ключ-значение, прикреплённые к каждому спану, которые содержат детали операции, идентификаторы ресурсов, метрики производительности и информацию об ошибках. Они обеспечивают необходимый контекст для понимания и анализа производительности и поведения сервиса, а также являются важным инструментом для отладки и оптимизации распределённых приложений.

OperationName

OperationName — это атрибут спана, указывающий имя конкретной операции внутри спана. Обычно это имя используется для идентификации конкретной бизнес-логики или системного вызова, представленного спаном, например, метод HTTP-запроса вместе с URL-путём, краткое описание запроса к базе данных или имя внутреннего вызова функции.

Jaeger

Jaeger — это open-source система распределённого трейсинга. Она предназначена для мониторинга и диагностики сложных распределённых систем на основе микросервисной архитектуры, помогая разработчикам визуализировать трассы запросов, анализировать узкие места производительности и устранять аномалии. Jaeger совместим со стандартом OpenTracing (теперь часть OpenTelemetry), поддерживает несколько языков программирования и хранилищ данных и является ключевым инструментом наблюдаемости в облачно-нативной среде.

OpenTelemetry Collector

OpenTelemetry Collector — это независимый от поставщика агент, который может принимать, обрабатывать и экспортировать телеметрические данные. Он поддерживает приём телеметрии в различных форматах (например, OTLP, Jaeger, Prometheus и многих коммерческих/проприетарных инструментах) и отправку этих данных в один или несколько бекендов. Также поддерживается обработка и фильтрация телеметрии перед экспортом.

Для получения дополнительной информации смотрите Collector.