Москва: проверенные б/у ноутбуки с гарантией и проверкой перед оплатой
+7 906 722-94-45

Главная → Статьи → Хранение трейсов и запросов

Хранение трейсов: срок, индекс и объём

Хранение трейсов: срок хранения, индексация по признакам, объём данных, отбор для хранения и проверка доступности.

Прямой ответ

Хранение трейсов определяется сроком, индексацией и объёмом, поэтому доступность данных для анализа балансируется с затратами на хранение.

Параметр Что задаёт
Срок хранения Период доступности трейсов
Индексация Возможность поиска по признакам
Объём Требования к хранилищу
Отбор Доля сохраняемых трейсов
# Tempo: срок хранения
storage:
  trace:
    block_retention: 336h
    wal:
      path: /var/tempo/wal

Срок хранения определяет период доступности трейсов для анализа, поэтому выбор срока балансирует пользу и затраты. Об основах трассировки — в статье про распределённую трассировку.

Индексация, объём и отбор для хранения

Индексация по признакам позволяет найти трейс по сервису либо длительности, а объём данных определяет требования к хранилищу.

Индексация. Трейсы индексируются по признакам, поэтому поиск по сервису либо длительности выполняется без полного перебора.

Объём данных. Каждый трейс содержит спаны с атрибутами, поэтому объём растёт с числом обращений и детализацией спанов.

Отбор для хранения. Доля сохраняемых трейсов ограничивается, поэтому объём хранения остаётся в допустимых пределах.

Практическое следствие: хранение всех трейсов при высокой нагрузке приводит к росту объёма, поэтому отбор ограничивает затраты.

Отдельный аспект — доступность данных. Трейс, не сохранённый либо удалённый по сроку, не доступен для анализа, поэтому период анализа ограничен сроком хранения.

Три признака некорректной настройки хранения.

Срок хранения короче периода анализа. Трейсы удалены до завершения анализа, поэтому данные недоступны.

Отсутствие индексации по признакам. Поиск выполняется полным перебором, поэтому время поиска растёт.

Отбор без учёта значимости. Значимые трейсы не сохраняются, поэтому анализ по ним невозможен.

О различии сигналов — в статье про три сигнала; о поиске узких мест — в статье про диагностику по трейсам.

Отбор значимых трейсов и стоимость

Отбор трейсов для хранения балансирует полноту анализа и затраты, поэтому значимые трейсы сохраняются полностью.

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

Доля отбора. Доля сохраняемых трейсов ограничивается, поэтому объём хранения остаётся в допустимых пределах.

Стоимость хранения. Объём трейсов растёт с числом обращений, поэтому стоимость хранения определяется отбором и сроком.

Практическое следствие: хранение всех трейсов при высокой нагрузке приводит к росту затрат без пропорциональной пользы, поэтому отбор ограничивает объём.

Практика: настройка хранения трейсов

1. Устанавливайте срок хранения по периоду анализа. Трейсы доступны в течение периода, требуемого для анализа.

2. Индексируйте по значимым признакам. Поиск по сервису и длительности выполняется без полного перебора.

3. Ограничивайте объём сохраняемых трейсов. Отбор ограничивает затраты на хранение.

4. Сохраняйте значимые трейсы полностью. Трейсы с ошибкой либо высокой длительностью сохраняются для анализа.

5. Проверяйте доступность трейсов по признакам. Поиск по признаку подтверждает корректность индексации.

6. Фиксируйте метрики объёма хранения. Объём позволяет определить рост и необходимость изменения отбора.

7. Ограничивайте детализацию спанов. Избыточные атрибуты увеличивают объём без пользы.

Рекомендации:

  1. Не храните все трейсы при высокой нагрузке. Объём растёт без пропорциональной пользы, поэтому отбор ограничивает затраты.
  2. Учитывайте период анализа при выборе срока. Срок короче периода анализа делает данные недоступными.
  3. Сопоставляйте отбор со значимостью. Значимые трейсы сохраняются полностью, поэтому анализ по ним возможен.
  4. Фиксируйте признак обращения в трейсе. Связь с записями обеспечивает переход от дерева к записям.
  5. Пересматриваем объём при изменении нагрузки. Рост числа обращений требует изменения отбора либо срока.

Практический сценарий: трейсы не находились для анализа

Контекст: анализ задержки требовал трейсов за период, но часть данных отсутствовала в хранилище.

  1. Диагностика. Проверка показала, что срок хранения был короче периода анализа. Трейсы удалялись до завершения анализа, поэтому данные за ранний период были недоступны.
  2. Причина. Срок хранения не покрывал период, требуемый для анализа задержки.
  3. Действия. (а) Увеличили срок хранения до периода анализа; (б) настроили индексацию по сервису и длительности для ускорения поиска; (в) сохранили трейсы с ошибкой и высокой длительностью полностью; (г) настроили отбор для снижения объёма при сохранении значимых трейсов; (д) проверили доступность трейсов по признакам за требуемый период.
  4. Результат. Трейсы доступны в течение периода анализа, поэтому задержка локализуется по дереву операций.

Вывод: срок хранения короче периода анализа делает данные недоступными, поэтому анализ не выполняется. Настройка срока, индексации и отбора обеспечивает доступность значимых трейсов.

Практический сценарий: трейсы не находились для анализа

Контекст: анализ задержки требовал трейсов за период, но часть данных отсутствовала в хранилище.

  1. Диагностика. Проверка показала, что срок хранения был короче периода анализа. Трейсы удалялись до завершения анализа, поэтому данные за ранний период были недоступны.
  2. Причина. Срок хранения не покрывал период, требуемый для анализа задержки.
  3. Действия. (а) Увеличили срок хранения до периода анализа; (б) настроили индексацию по сервису и длительности для ускорения поиска; (в) сохранили трейсы с ошибкой и высокой длительностью полностью; (г) настроили отбор для снижения объёма при сохранении значимых трейсов; (д) проверили доступность трейсов по признакам за требуемый период.
  4. Результат. Трейсы доступны в течение периода анализа, поэтому задержка локализуется по дереву операций.

Вывод: срок хранения короче периода анализа делает данные недоступными, поэтому анализ не выполняется. Настройка срока, индексации и отбора обеспечивает доступность значимых трейсов.

FAQ

Какой срок хранения трейсов выбирать? По периоду анализа: срок должен покрывать время, требуемое для расследования. Срок короче периода делает данные недоступными.

Зачем нужна индексация трейсов? Поиск по сервису и длительности выполняется без полного перебора, поэтому время поиска не растёт с объёмом.

Как ограничивать объём хранения? Через отбор доли сохраняемых трейсов с полным сохранением значимых — с ошибкой либо высокой длительностью.

Почему не хранят все трейсы? Объём растёт с числом обращений без пропорциональной пользы, поэтому отбор ограничивает затраты на хранение.

Источники: Grafana Tempo, OpenTelemetry traces, OpenTelemetry sampling — ссылки в шапке.