Последнее обновление: июля 8, 2026

Переменные шаблонов Pyroscope

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

Введение в шаблонизацию и переменные шаблонов см. в разделах Шаблонизация и Добавление переменных и управление ими.

Типы переменных запросов

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

Тип запроса Обязательные входные данные Описание
Profile type Нет Возвращает типы профилей, доступные в источнике данных. Раскрывающийся список отображает читаемую метку, тогда как значение переменной — полный ID типа профиля, например process_cpu:cpu:nanoseconds:cpu:nanoseconds.
Label Тип профиля Возвращает имена меток, доступные для выбранного типа профиля, такие как service_name, namespace и region.
Label value Тип профиля, метка Возвращает значения для выбранной метки, ограниченные выбранным типом профиля.

Поскольку типы запросов Label и Label value требуют тип профиля, а Label value также требует метку, вы можете связывать эти переменные в цепочку так, чтобы каждая зависела от предыдущего выбора.

Создание переменной запроса

Чтобы создать переменную запроса:

  1. Перейдите в Dashboard settings > Variables.
  2. Выберите Add variable.
  3. Установите Select variable type в Query.
  4. Выберите источник данных Pyroscope.
  5. Выберите Query type из Profile type, Label или Label value.
  6. Для запроса Label или Label value выберите Profile type.
  7. Для запроса Label value выберите Label.
  8. Выберите Apply, чтобы сохранить переменную.

Примеры переменных запросов

Следующие примеры показывают распространённые способы использования переменных запросов Pyroscope.

Выбор типа профиля из раскрывающегося списка:

Создайте переменную с именем profile_type, чтобы позволить зрителям переключать тип профиля без редактирования запроса:

  1. Установите Query type в Profile type.
  2. Сохраните переменную. Раскрывающийся список отображает читаемые метки, тогда как каждое значение — полный ID типа профиля, например process_cpu:cpu:nanoseconds:cpu:nanoseconds.

Затем вы можете ссылаться на $profile_type в поле типа профиля редактора запросов.

Заполнение раскрывающегося списка службами:

Создайте переменную с именем service, которая перечисляет службы, отправляющие профили:

  1. Установите Query type в Label value.
  2. Установите Profile type в тип профиля, например process_cpu:cpu:nanoseconds:cpu:nanoseconds.
  3. Установите Label в service_name.
  4. Сохраните переменную. Раскрывающийся список теперь перечисляет значения метки service_name.

Связывание зависимых переменных в цепочку:

Объедините переменные так, чтобы каждая сужала следующую. Этот пример строит селектор типа профиля, селектор метки и селектор значения метки, которые все обновляются вместе:

  1. Создайте переменную profile_type с Query type, установленным в Profile type.
  2. Создайте переменную label с Query type, установленным в Label, и Profile type, установленным в $profile_type.
  3. Создайте переменную label_value с Query type, установленным в Label value, Profile type, установленным в $profile_type, и Label, установленной в $label.

Когда зритель изменяет profile_type, раскрывающийся список label обновляется метками для этого типа профиля, а label_value обновляется значениями для выбранной метки.

Использование переменных в запросах

После создания переменной ссылайтесь на неё в редакторе запросов, используя синтаксис $variable или ${variable}. Вы можете ссылаться на переменные как в поле типа профиля, так и в селекторе меток.

Например, если у вас есть переменная с именем service, созданная с типом запроса Label value по метке service_name, ссылайтесь на неё в селекторе меток:

{service_name="$service"}

Чтобы позволить зрителям переключать тип профиля, введите $profile_type в поле типа профиля редактора запросов.

Когда для переменной включены Multi-value или Include All, значение становится шаблоном регулярного выражения, таким как value1|value2. Используйте оператор =~ вместо = в вашем селекторе меток:

{service_name=~"$service"}

Где можно использовать переменные шаблонов

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

Поле редактора запросов Поддерживает переменные шаблонов
Profile type Да
Label selector Да
Group by Нет
Span ID Нет
Max Nodes Нет
Limit Нет

Определения переменных запросов также поддерживают переменные. Вы можете ссылаться на одну переменную в другой, чтобы связать запросы Label и Label value в цепочку, как показано в разделе Связывание зависимых переменных в цепочку.

Note

Поля, отличные от типа профиля и селектора меток, не подставляют переменные шаблонов. Если вы введёте переменную, такую как $group, в поля Group by, Span ID, Max Nodes или Limit, Grafana передаст на бэкенд буквальный текст вместо значения переменной.

Переменная фильтров

Источник данных Pyroscope поддерживает тип переменной Filters, который позволяет зрителям дашборда добавлять фильтры меток без редактирования запросов.

Чтобы настроить переменную Filters:

  1. Перейдите в Dashboard settings > Variables.
  2. Выберите Add variable.
  3. Установите Select variable type в Filters.
  4. Выберите источник данных Pyroscope.
  5. Выберите Apply, чтобы сохранить переменную.

После добавления переменной в верхней части дашборда появляется панель фильтров. Зрители могут добавлять фильтры, выбирая метку, оператор (=, !=, =~, !~) и значение. Grafana применяет эти фильтры ко всем запросам Pyroscope на дашборде.