Span

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

  1. Имя (Name): Описание операции, например, “GET /api/users”.
  2. Контекст (Context): Уникальный идентификатор Span, который позволяет различать его среди других. Включает в себя идентификатор трейса (Trace ID) и идентификатор самого Span (Span ID).
  3. Временные метки (Timestamps): Время начала и окончания операции, что позволяет измерять её продолжительность.
  4. Атрибуты (Attributes): Набор ключ-значение, который содержит дополнительную информацию о Span, например, параметры запроса или метаданные.
  5. События (Events): Хронологический список событий, которые произошли в течение выполнения Span.
  6. Статус (Status): Информация о результате выполнения операции, например, успешное завершение или ошибка.
  7. Связи (Links): Связи с другими Span’ами, которые могут быть полезны для представления сложных зависимостей между операциями.

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