Прямой ответ
Связь метрик, логов и трейсов обеспечивается общими признаками, поэтому от деградации метрики можно перейти к записям и к дереву операций того же обращения.
| Сигнал | Что показывает |
|---|---|
| Метрика | Числовое значение во времени |
| Лог | Отдельное событие с признаками |
| Трейс | Дерево операций одного обращения |
# Grafana: переход от метрики к записям
links:
- title: Показ записи
url: "/explore?left={\"datasource\":\"loki\",\"queries\":[{\"expr\":\"{service=\\\"orders\\\"}\"}]}"
Общие признаки сервиса и обращения позволяют перейти от одного сигнала к другому без ручного поиска. О признаках обращения — в статье про сквозной идентификатор.
Общие признаки и переход между сигналами
Признаки сервиса, окружения и обращения присутствуют во всех трёх сигналах, поэтому сопоставление выполняется по значению признака.
Признак сервиса. Присутствует в метрике, записи и спане, поэтому сопоставление выполняется по имени сервиса.
Признак обращения. Присутствует в записи и спане, поэтому переход от записи к дереву операций выполняется по признаку.
Переход от метрики. Метрика показывает деградацию, поэтому переход к записям и дереву выполняется для того же интервала и сервиса.
Практическое следствие: отсутствие общего признака разрывает сопоставление, поэтому переход между сигналами выполняется вручную.
Отдельный аспект — различие детализации. Метрика даёт агрегированное значение, запись — отдельное событие, дерево — структуру операций одного обращения.
Три признака некорректной связи.
Отсутствие общего признака сервиса. Сопоставление не выполняется, поэтому переход между сигналами ручной.
Отсутствие признака обращения в записи. Переход от записи к дереву не выполняется, поскольку признак не совпадает.
Различие меток времени. Записи и метрики не совпадают по времени, поэтому сопоставление даёт неверный результат.
О различии сигналов — в статье про три сигнала; об основах трассировки — в статье про распределённую трассировку.
Различие детализации и совместное использование
Различие детализации сигналов определяет сценарий применения, поэтому совместное использование даёт полную картину обращения.
Метрика. Агрегированное значение показывает деградацию во времени, поэтому используется для тенденции и оповещения.
Лог. Отдельное событие с признаками описывает конкретное occurrence, поэтому используется для детали обращения.
Трейс. Дерево операций показывает структуру обращения, поэтому используется для локализации участка.
Практическое следствие: использование одного сигнала вместо трёх даёт неполную картину, поскольку каждый сигнал решает свою задачу.
Практика: настройка связи сигналов
1. Используйте единые признаки сервиса. Присутствие во всех сигналах обеспечивает сопоставление по значению.
2. Включайте признак обращения в запись и спан. Переход от записи к дереву выполняется по совпадающему признаку.
3. Синхронизируйте метки времени. Единый источник времени обеспечивает совпадение интервалов.
4. Настройте переходы от метрики к записям. Переход выполняется для того же интервала и сервиса.
5. Проверяйте сопоставление по реальному обращению. Совпадение признаков подтверждает корректность перехода.
6. Фиксируйте признак источника в ошибке. Признак в записи ошибки позволяет определить сервис сбоя.
7. Ограничивайте объём переходов. Переход к полному объёму записей не даёт полезной информации.
Рекомендации:
- Не полагайтесь на сопоставление без общего признака. Отсутствие признака делает переход ручным и ненадёжным.
- Учитывайте различие детализации. Метрика агрегирует, запись описывает событие, дерево — структуру операций.
- Сопоставляйте по интервалу и сервису. Совпадение интервала и признака обеспечивает корректность перехода.
- Фиксируйте признак обращения при ошибке. Признак в записи позволяет перейти к дереву того же обращения.
- Пересматриваем признаки при добавлении сервисов. Новый сервис требует включения общих признаков.
Практический сценарий: переход от метрики к причине не сработал
Контекст: метрика показала рост длительности, но переход к записям не дал записей того же обращения.
- Диагностика. Проверка показала, что признак обращения отсутствовал в записи сервиса. Метрика показывала деградацию, но переход к записям возвращал записи без признака, поэтому сопоставление не выполнялось.
- Причина. Запись сервиса не содержала признака обращения, поэтому переход от метрики к дереву операций не выполнялся.
- Действия. (а) Добавили признак обращения в запись и спан сервиса; (б) проверили совпадение признаков по реальному обращению; (в) синхронизировали метки времени между сигналами; (г) настроили переход от метрики к записям для того же интервала; (д) проверили переход по реальному обращению и убедились в возврате записей и дерева.
- Результат. Переход от метрики к записям и дереву выполняется по общим признакам.
Вывод: отсутствие общего признака разрывает сопоставление сигналов, поэтому переход выполняется вручную. Единые признаки сервиса и обращения обеспечивают переход от деградации метрики к причине.
FAQ
Как связаны метрики, логи и трейсы? Через общие признаки сервиса и обращения. Совпадение признаков позволяет перейти от одного сигнала к другому.
Как перейти от метрики к причине? Через переход к записям и дереву операций того же интервала и сервиса. Совпадение признаков обеспечивает корректность перехода.
Почему важен признак обращения? Он связывает записи и спаны одного запроса, поэтому переход от записи к дереву выполняется по совпадающему признаку.
Что даёт различие детализации сигналов? Метрика показывает деградацию в целом, запись описывает событие, дерево — структуру операций. Совместное использование даёт полную картину.
Источники: OpenTelemetry signals, Grafana datasources, Prometheus naming — ссылки в шапке.