Журнал сохраняет событие, трассировка — связанные участки запроса. Контекст помогает сопоставлению, а одинаковая строка или время без него не доказывают общий запрос.
Распределённая трассировка
Определение
Распределённая трассировка — путь одного запроса через приложение, записанный как набор участков с их длительностью и вложенностью. Общий TraceId и идентификаторы участков (SpanId) позволяют сопоставить трассировку с записями журнала того же запроса.
Также ищут: Distributed trace · distributed tracing · trace запроса · трассировка запроса
Зачем это знать
Сумма длительностей родителя и детей может повторно учитывать одно время. Отсутствующий участок может означать пробел сбора, а выборочные трассировки не дают знаменателя всего трафика.
Карта понятия
Что подтверждено
OpenTelemetry определяет трассировку как путь запроса через приложение, представленный связанными участками.
Граница применимости: Инструментированный запрос; асинхронная работа и очереди сообщений требуют правильной передачи контекста и связей.
TraceId и SpanId позволяют связать участки трассировки с записями журнала одного запроса.
Граница применимости: Журналы и трассировки с корректно переданным контекстом; выборка и срок хранения могут оставить трассировку неполной.
В одном запросе родитель занимает время от 0 до 100 мс, дочерние участки — от 10 до 70 и от 20 до 90 мс. Продолжительность родителя равна 100 мс; сумма 100 + 60 + 70 повторно считает вложенное и пересекающееся время.
Граница применимости: Редакторская арифметика для известных границ участков на согласованной временной шкале. Родитель в условии совпадает с границами измеряемой операции; неизвестные внешние этапы не включены.
Если нужный компонент не инструментирован или его участки не сохранены, отсутствие участка в трассировке не доказывает отсутствие вызова. Вывод о пути запроса ограничен фактическим покрытием и переданным контекстом.
Граница применимости: Редакторское применение модели инструментированного запроса. Отсутствующий участок не восстанавливается догадкой и не объявляется измеренной нулевой задержкой.
Из 100 операций сохранены три трассировки, выбранные только из ошибок. Все три неуспешны, но доля ошибок всего трафика по ним не устанавливается: результаты остальных 97 операций в условии неизвестны.
Граница применимости: Закрытый пример заведомо смещённой выборки. Нельзя подставить число сохранённых трассировок вместо числа всех подходящих операций; алгоритм выборки продукта не предполагается.
Не путать
Задержка имеет заданные начало и конец. Трассировка раскрывает внутренние участки, но их вложенные длительности нельзя просто прибавить к длительности родителя.
Что проверить
- Проверьте идентичность запроса и связь участков.
- Укажите начало и конец измеряемой операции.
- Различайте последовательные, вложенные и параллельные участки.
- Не складывайте повторно учтённое время.
- Отметьте пробелы инструментирования и сохранения.
- Проверьте правило отбора трассировок.
- Общий процент ошибок считайте по полному подходящему составу операций.
Первоисточники
- OpenTelemetry Specification Overview
Описывает signals, raw measurements, aggregation, resources и context propagation.
Утверждения: 01
- OpenTelemetry Logs Data Model
Определяет Timestamp, severity, body, resource, attributes, TraceId и SpanId LogRecord.
Утверждения: 02
- OpenTelemetry Logging and Correlation
Описывает correlation logs, traces и metrics по time, trace context и resource context.
- Service Level Objectives
Определяет SLI, SLO и SLA и объясняет user-centric latency, error rate, throughput и percentiles.
Утверждения: 03
- Implementing SLOs
Описывает построение SLI/SLO от пользовательской цели, measurement window и error-budget policy.
Утверждения: 05