Введение в exemplars
Exemplar — это конкретная трассировка, представляющая измерение, выполненное в заданном временном интервале. Метрики отлично дают агрегированное представление о системе, а трассировки — детальное представление отдельного запроса; exemplars позволяют связать одно с другим.
Предположим, ваш корпоративный сайт испытывает всплеск объёма трафика. Хотя более восьмидесяти процентов пользователей открывают сайт менее чем за две секунды, у некоторых пользователей время отклика выше обычного, что ухудшает впечатление от работы.
Чтобы определить факторы, влияющие на задержку, необходимо сравнить трассировку быстрого ответа с трассировкой медленного ответа. Учитывая огромный объём данных в типичной продуктивной среде, это крайне трудоёмкая и отнимающая много времени работа.
Используйте exemplars, чтобы помочь локализовать проблемы в распределении данных, выявляя трассировки запросов с высокой задержкой в пределах временного интервала. После того как вы локализуете проблему задержки до нескольких exemplar-трассировок, вы можете объединить это с дополнительной системной информацией или свойствами местоположения, чтобы быстрее выполнить анализ первопричин и быстро устранять проблемы производительности.
Поддержка exemplars доступна только для источника данных Prometheus. После включения этой функции данные exemplars доступны по умолчанию. Дополнительные сведения о настройке exemplars и о том, как их включить, приведены в разделе Exemplars в параметрах конфигурации Prometheus.
Grafana показывает exemplars рядом с метрикой в представлении Explore и в дашбордах.
Каждый exemplar отображается выделенной звёздочкой.
Наведите курсор на exemplar, чтобы увидеть уникальный идентификатор трассировки, представляющий собой комбинацию пары «ключ-значение».
Чтобы изучить подробнее, нажмите синюю кнопку рядом со свойством traceID.
Инструкции о том, как детализировать и просматривать подробности трассировки по exemplar из метрик и логов, приведены в разделе Просмотр данных exemplar. Дополнительные сведения об exemplars приведены в записи блога Intro to exemplars, which enable Grafana Tempo’s distributed tracing at massive scale.
Просмотр данных exemplar
Когда поддержка exemplars включена для источника данных Prometheus, данные exemplar можно просматривать либо в представлении Explore, либо в подробностях логов Loki.
В Explore
Explore визуализирует трассировки exemplar как выделенные звёздочки рядом с данными метрик. Дополнительные сведения о том, как Explore визуализирует данные трассировок, приведены в разделе Трассировка в Explore.
Чтобы изучить подробности трассировки exemplar:
-
Наведите курсор на exemplar (выделенную звёздочку). В зависимости от используемого источника данных трассировки вы можете увидеть синюю кнопку с надписью
Query with <DATA SOURCE NAME>. В следующем примере источником данных трассировки является Tempo.
Снимок экрана с подробностями exemplar -
Нажмите Query with Tempo рядом со свойством
traceID. Подробности трассировки, включая спаны внутри неё, перечисляются в отдельной панели справа.
Представление Explorer с панелью подробностей трассировки
Дополнительные сведения о том, как детализировать и анализировать подробности трассировки и спанов, приведены в разделе Анализ трассировки и спанов.
В логах
Вы также можете просматривать подробности трассировки exemplar из логов Loki в Explore.
Используйте регулярные выражения в ссылках производных полей (Derived fields) для Loki, чтобы извлечь информацию traceID.
Теперь при раскрытии логов Loki вы увидите свойство traceID в разделе Detected fields.
Дополнительные сведения о том, как извлечь часть сообщения лога во внутреннюю или внешнюю ссылку, приведены в разделе использование производных полей в Loki.
Чтобы просмотреть подробности трассировки exemplar:
-
Разверните строку лога и прокрутите вниз до раздела
Fields. В зависимости от вашего бэкенда источника данных трассировки вы можете увидеть синюю кнопку с надписью<DATA SOURCE NAME>. -
Нажмите синюю кнопку рядом со свойством
traceID. Обычно она содержит имя бэкенда источника данных. В следующем примере источником данных трассировки является Tempo. Подробности трассировки, включая спаны внутри неё, перечисляются в отдельной панели справа.
Дополнительные сведения о том, как детализировать и анализировать подробности трассировки и спанов, приведены в разделе Анализ трассировки и спанов.
Анализ трассировки и спанов
Эта панель показывает подробности трассировки в разных сегментах.
-
Верхний сегмент отображает идентификатор трассировки, показывая, что результаты запроса соответствуют конкретной трассировке.
Добавить в результаты больше трассировок можно с помощью кнопки
Add query. -
Следующий сегмент показывает всю длительность конкретной трассировки в виде узкой полосы. Отображаются все уровни трассировки от клиента вплоть до запроса к базе данных, что даёт обзор распределения времени по всем слоям, через которые обрабатывался запрос HTTP.
-
Можно щёлкнуть внутри этой полосы, чтобы отобразить увеличенный вид меньшего временного сегмента в пределах длительности. Этот увеличенный вид появляется в нижнем сегменте панели.
-
В увеличенном виде можно разворачивать или сворачивать различные уровни трассировки, чтобы детализировать конкретный интересующий спан.
Например, если полоса показывает, что большая часть задержки приходится на уровень приложения, можно развернуть трассировку вниз по уровню приложения, чтобы изучить проблему дальше. Чтобы развернуть определённый уровень спанов, нажмите значок слева. Эта же кнопка сворачивает развёрнутый спан.
-
-
Чтобы увидеть подробности спана на любом уровне, нажмите на сам спан.
Отобразится дополнительная информация о спане. Сама информация изначально показана узкой полосой, но подробности можно увидеть, нажав на эту полосу с метаданными.
Подробности спана