Основные концепции

Содержание

Телеметрия

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

Трасса

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

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

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

Спан

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

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

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

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

Теги спанов

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

Имя операции

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

Jaeger

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

OpenTelemetry Collector

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

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