Настройка корреляции trace to metrics

Trace to metrics позволяет переходить от промежутка в трассировке к метрикам в Prometheus или другом источнике данных метрик. Когда эта функция настроена, в представлении трассировки появляется ссылка Metrics for this span.

Trace to metrics работает с любым совместимым с Prometheus источником данных и не требует генератора метрик Tempo. Генератор метрик создаёт новые метрики из данных трассировки; trace to metrics связывает с метриками, которые уже существуют в вашем источнике данных метрик.

Перед началом

Чтобы настроить trace to metrics, вам нужно:

  • Источник данных Tempo, настроенный в Grafana
  • Совместимый с Prometheus источник данных метрик, настроенный в Grafana
  • Метрики, соответствующие вашим трассируемым службам (например, requests_total, request_duration_seconds)
  • Разрешения Editor или Admin в Grafana

Note

Вы не можете изменить провижиненный источник данных из интерфейса Grafana. Если вы используете Grafana Cloud Traces (предварительно настроенный источник данных трассировки в Grafana Cloud), его настройки доступны только для чтения. Чтобы настроить trace to metrics, клонируйте источник данных, чтобы создать редактируемую копию, или обновите файл провижининга для самостоятельно размещённых экземпляров. Подробности см. в разделе Провижининг.

Есть два способа настроить функцию trace to metrics:

  • Использовать базовую конфигурацию с запросом по умолчанию.
  • Настроить один или несколько пользовательских запросов, где вы можете использовать язык шаблонов для интерполяции переменных из трассировки или промежутка.

Настройки Trace to metrics в источнике данных Tempo

Настройка базовой конфигурации

Чтобы использовать базовую конфигурацию, выполните следующие шаги:

  1. Выберите источник данных метрик в раскрывающемся списке Data source.

  2. Необязательно: измените Span start time shift и Span end time shift. Заполнители показывают -2m (начало) и 2m (конец), которые применяются, если оставить поля пустыми.

  3. Необязательно: выберите любые теги для использования в запросе. Нажмите Add tag, чтобы добавить сопоставление тегов.

    Настроенные вами теги должны присутствовать в атрибутах или ресурсах промежутков, чтобы появилась ссылка trace to metrics на промежутке. При необходимости вы можете настроить новое имя для тега. Это полезно, если в имени тега есть точки, а целевой источник данных не допускает использования точек в метках. Например, вы можете переопределить service.name в service_name.

  4. Не выбирайте Add query.

  5. Выберите Save and Test.

Настройка пользовательских запросов

Чтобы использовать пользовательские запросы, вам нужно настроить теги, которые вы хотели бы включить в связанные запросы. Для каждого тега ключ — это имя атрибута промежутка. В случаях, когда имя атрибута привело бы к недопустимому запросу метрик или не совпадает точно с желаемым именем метки, вы можете ввести имя метки в качестве второго значения. Например, вы можете сопоставить атрибут k8s.pod с меткой pod.

Вы можете интерполировать настроенные теги, используя ключевое слово $__tags. Например, когда вы настраиваете запрос requests_total{$__tags} с тегами k8s.pod=pod и cluster, это даёт requests_total{pod="nginx-554b9", cluster="us-east-1"}. Значения меток динамически вставляются на основе значений атрибутов промежутка.

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

Чтобы использовать пользовательские запросы с конфигурацией, выполните следующие шаги:

  1. Выберите источник данных метрик в раскрывающемся списке Data source.

  2. Необязательно: выберите любые теги для использования в запросе. Нажмите Add tag, чтобы добавить сопоставление тегов.

    Эти теги можно использовать в пользовательском запросе с переменной ${__tags}. Эта переменная интерполирует сопоставленные теги в виде списка в подходящем для источника данных синтаксисе и включает только те теги, которые присутствовали в промежутке, опуская те, которых не было. При необходимости вы можете настроить новое имя для тега. Это полезно в случаях, когда в имени тега есть точки, а целевой источник данных не допускает использования точек в метках. Например, вы можете переопределить service.name в service_name. Если вы не сопоставляете здесь никакие теги, вы всё равно можете использовать любой тег в запросе, например так: method="${__span.tags.method}". Полный список доступных переменных см. в разделе Пользовательские переменные запросов.

  3. Нажмите Add query, чтобы добавить пользовательский запрос.

  4. Укажите пользовательский запрос, который будет использоваться для запроса данных метрик.

    Каждый связанный запрос состоит из:

    • Link Label: (Необязательно) описательная метка для связанного запроса.
    • Query: запрос, выполняемый при переходе от трассировки к источнику данных метрик. Интерполируйте теги, используя ключевое слово $__tags. Например, когда вы настраиваете запрос requests_total{$__tags} с тегами k8s.pod=pod и cluster, результат выглядит как requests_total{pod="nginx-554b9", cluster="us-east-1"}.
  5. Выберите Save and Test.

Параметры конфигурации

Следующая таблица описывает параметры настройки Trace to metrics:

Имя настройки Описание
Data source Определяет целевой источник данных.
Span start time shift Сдвигает начальное время для запроса метрик на основе начального времени промежутка. Вы можете использовать единицы времени, такие как 5s, 1m, 3h. Чтобы расширить время в прошлое, используйте отрицательное значение. По умолчанию: -2m.
Span end time shift Сдвигает конечное время для запроса метрик на основе конечного времени промежутка. Вы можете использовать единицы времени. По умолчанию: 2m.
Tags Определяет теги, используемые в связанных запросах. Ключ задаёт имя атрибута промежутка, а необязательное значение задаёт соответствующее имя метки метрики. Например, вы можете сопоставить k8s.pod с pod. Чтобы интерполировать эти теги в запросы, используйте ключевое слово $__tags.
Link Label (Необязательно) описательная метка для связанного запроса.
Query Поле ввода для написания пользовательского запроса. Используйте интерполяцию переменных, чтобы настроить его с помощью переменных из промежутка.

Провижининг

Вы можете провижинить конфигурацию trace to metrics, используя блок tracesToMetrics в вашем файле YAML источника данных. Полный пример YAML провижининга, включающий все настройки Tempo, см. в разделе Провижининг источника данных Tempo.

Чтобы переходить в обратном направлении, от метрики к связанной с ней трассировке, настройте экземпляры (exemplars) в вашем источнике данных Prometheus. Инструкции по настройке см. в разделе Экземпляры (Exemplars).

Устранение неполадок

Если ссылки trace to metrics не появляются или не возвращают данных, см. Проблемы trace to logs/metrics/profiles в руководстве по устранению неполадок.

Если поля конфигурации неактивны, ваш источник данных провижинен. О том, как обновить конфигурацию через YAML, см. раздел Провижининг.

Дальнейшие шаги