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

Главная → Статьи → Observability: три сигнала, сравнение

Три сигнала наблюдаемости: метрики, логи и трейсы

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

Прямой ответ

Три сигнала наблюдаемости различаются детализацией и объёмом: метрика показывает агрегированное значение, лог — отдельное событие, трейс — структуру операций одного обращения.

Критерий Метрики Логи Трейсы
Детализация Агрегат Событие Дерево операций
Объём на обращение Низкий Средний Высокий
Стоимость хранения Низкая Средняя Высокая
Локализация участка Нет Частичная Полная
# Совместное использование
metrics: prometheus
logs: loki
traces: tempo

Выбор сигнала определяется задачей: метрика для тенденции, лог для события, трейс для структуры обращения. О связи сигналов — в статье про связь метрик и трейсов.

Детализация, объём и сценарии применения

Различие детализации определяет сценарий применения: метрика показывает деградацию, лог описывает событие, трейс локализует участок обращения.

Детализация. Метрика агрегирует значения, лог описывает отдельное событие, трейс показывает дерево операций одного обращения.

Объём данных. Метрика занимает малый объём, лог — средний, трейс — высокий, поскольку содержит спаны с атрибутами.

Сценарий применения. Метрика используется для тенденции и оповещения, лог для события, трейс для локализации участка обращения.

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

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

Три признака некорректного выбора сигнала.

Метрика для локализации участка. Агрегат не показывает структуру операций, поэтому участок не локализуется.

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

Трейс для оповещения. Объём и стоимость не позволяют использовать трейсы как источник оповещения.

Об основах трассировки — в статье про распределённую трассировку; об агрегации записей — в статье про агрегацию логов.

Стоимость хранения и масштаб применения

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

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

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

Стоимость трейсов. Трейс занимает высокий объём, поэтому хранение всех трейсов требует отбора.

Практическое следствие: масштаб применения трейсов ограничен стоимостью хранения, поэтому отбор определяет долю сохраняемых данных.

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

Практика: выбор сигнала для задачи

1. Используйте метрики для тенденции и оповещения. Агрегированное значение показывает деградацию во времени.

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

3. Используйте трейсы для локализации участка. Дерево операций показывает долю времени каждого участка.

4. Настройте переходы между сигналами. Общие признаки обеспечивают переход от метрики к записи и дереву.

5. Ограничивайте объём трейсов отбором. Хранение всех трейсов требует затрат, поэтому отбор ограничивает объём.

6. Фиксируйте общие признаки во всех сигналах. Совпадение признаков обеспечивает сопоставление.

7. Проверяйте сопоставление по реальному обращению. Совпадение признаков подтверждает корректность перехода.

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

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

Практический сценарий: деградация не локализовалась по метрикам

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

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

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

Практический сценарий: деградация не локализовалась по метрикам

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

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

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

Практический сценарий: деградация не локализовалась по метрикам

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

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

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

FAQ

Чем различаются три сигнала? Детализацией: метрика агрегирует значения, лог описывает событие, трейс показывает дерево операций одного обращения.

Какой сигнал использовать для локализации участка? Трейс, поскольку дерево операций показывает долю времени каждого участка. Метрика не содержит структуры операций.

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

Как сигналы связаны между собой? Через общие признаки сервиса и обращения. Совпадение признаков обеспечивает переход от метрики к записи и дереву.

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