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

Содержание

Телеметрия

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

Трассировка

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

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

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

Спан

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

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

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

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

Теги спана

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

OperationName

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

Jaeger

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

OpenTelemetry Collector

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

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