Запрос данных профилей
Вы можете запрашивать данные ваших профилей с помощью приложения Grafana Profiles Drilldown с открытым исходным кодом или встроенного редактора запросов источника данных Pyroscope.
- Profiles Drilldown предоставляет опыт запросов без написания запросов для изучения данных профилирования с продуманными рабочими процессами, помогающими в вашем исследовании.
- Редактор запросов источника данных предоставляет полный контроль над исследованием данных и рекомендуется опытным пользователям.
Кроме того, вы можете встраивать панели графа пламени в дашборды Grafana. Подробности см. в документации Панель графа пламени.
Profiles Drilldown
Grafana Profiles Drilldown — это нативное приложение Grafana, разработанное для бесшовной интеграции с Pyroscope, платформой непрерывного профилирования с открытым исходным кодом, обеспечивая плавный опыт просмотра и анализа данных профилирования без написания запросов.
Вы можете использовать Profiles Drilldown в Grafana Cloud или в вашем собственном экземпляре Grafana. Дополнительную информацию см. в разделе Доступ к Profiles Drilldown или его установка.

Случаи использования
Существует несколько различных режимов просмотра, анализа и сравнения данных профилирования.
Основные случаи использования следующие:
- Проактивные: сокращение затрат, решение проблем с задержками или оптимизация использования памяти для приложений
- Реактивные: решение инцидентов с точностью до уровня строки или отладка активных проблем с задержками/памятью
Profiles Drilldown предоставляет интуитивный интерфейс для поддержки именно проактивных и реактивных случаев использования. Вы получаете целостное представление обо всех ваших службах и о том, как они функционируют, а также возможность углубиться для более целенаправленного анализа первопричин.
Profiles Drilldown предлагает удобную платформу для анализа профилей и получения сведений, которые невозможно получить при использовании других традиционных сигналов, таких как журналы, метрики или трассировка.
With Grafana Play, you can explore and see how it works, learning from practical examples to accelerate your development. This feature can be seen on the Grafana Play site.
Редактор запросов Pyroscope
Редактор запросов источника данных Pyroscope предоставляет доступ к селектору типа профиля, селектору меток и сворачиваемым параметрам.
Как и Profiles Drilldown, редактор запросов также предоставляет граф пламени для визуализации данных.

Чтобы получить доступ к редактору запросов:
-
Войдите в Grafana или Grafana Cloud.
-
Выберите ваш источник данных Pyroscope.
-
В меню выберите Explore.
-
Выберите тип профиля в раскрывающемся меню.
Profile selector -
Используйте поле ввода селектора меток для фильтрации по меткам. Pyroscope использует синтаксис, похожий на Prometheus, для фильтрации меток. О доступных операторах и синтаксисе см. Синтаксис селектора меток.
Хотя селектор меток можно оставить пустым, чтобы запросить все профили без фильтрации по меткам, вы должны выбрать тип профиля или приложение, чтобы запрос был корректным.
Grafana не показывает никаких данных, если тип профиля или приложение не выбрано при выполнении запроса.
![Селектор меток]()
-
Разверните раздел Options, чтобы просмотреть доступные параметры запроса.
![Раздел Options]()
Синтаксис селектора меток
Селектор меток использует синтаксис, похожий на Prometheus. Заключайте один или несколько сопоставителей меток в фигурные скобки, разделяя их запятыми. Каждый сопоставитель объединяет имя метки, оператор и значение в двойных кавычках.
Селектор меток поддерживает следующие операторы.
Следующие примеры показывают распространённые селекторы меток:
{service_name="my-service"}
{service_name="my-service", namespace="production"}
{service_name=~"cart.*"}
{service_name="checkout", namespace!="staging"}
Оставьте селектор меток пустым или установите его в {}, чтобы запросить все профили выбранного типа без фильтрации по меткам.
Параметры запроса
Раздел Options предоставляет следующие настройки.
Выберите тип запроса, чтобы вернуть данные профилей. Данные отображаются в графе пламени, данные метрик визуализируются на графике, либо и то и другое.
Используя Group by, вы можете группировать данные метрик по указанной метке. Вы можете использовать несколько меток для группировки.
В сочетании с Group by вы можете задать положительное число в поле Limit, чтобы ограничить максимальное количество временных рядов, возвращаемых источником данных.
Экземпляры (Exemplars)
Когда включена функция profilesExemplars, в разделе Options появляется переключатель Exemplars.
Экземпляры связывают отдельные образцы профилей с точками на графике метрик, позволяя переходить от всплеска во временном ряду к конкретному профилю, который его создал.
Функция profilesExemplars общедоступна и включена по умолчанию.
Тепловая карта
Когда включена функция profilesHeatmap, в разделе Options появляется переключатель Heatmap.
Тепловая карта визуализирует распределение образцов профилей во времени, что помогает выявлять закономерности и выбросы среди множества профилей.
Когда вы включаете Heatmap, используйте опцию Heatmap Type, чтобы выбрать, как агрегируются образцы:
- Individual: показывает отдельные образцы профилей.
- Span: агрегирует образцы по длительности промежутка, для использования с Trace to profiles.
Note
Функция
profilesHeatmapэкспериментальная. Экспериментальные функции могут изменяться и быть удалены в будущем релизе. Включите её с помощью флага функцииprofilesHeatmap.
Имена меток UTF-8
Когда включена функция pyroscopeUTF8LabelNames, селектор меток поддерживает имена меток UTF-8.
Заключайте имена меток, содержащие такие символы, как точки, в двойные кавычки, например {"k8s.namespace"="production"}.
Функция pyroscopeUTF8LabelNames находится в публичном предварительном просмотре и включена по умолчанию.
Примеры запросов
Следующие примеры показывают распространённые способы построения запросов в редакторе запросов. Каждый пример перечисляет тип профиля для выбора и селектор меток для ввода.
Исследование высокого использования ЦП для службы:
Выберите тип профиля process_cpu:cpu:nanoseconds:cpu:nanoseconds и отфильтруйте по затронутой службе:
{service_name="checkout"}
Установите Query Type в Both в Explore, чтобы просмотреть граф пламени ЦП рядом с временным рядом использования ЦП.
Сравнение выделения памяти между средами:
Выберите тип профиля memory:alloc_space:bytes:space:bytes, установите Query Type в Metric и установите Group by в namespace:
{service_name="cart"}
График метрик показывает отдельный временной ряд для каждого пространства имён, что позволяет сравнивать поведение выделения памяти между средами, такими как production и staging.
Анализ роста горутин:
Выберите тип профиля goroutine:goroutine:count:goroutine:count, чтобы изучить количество горутин и то, где они создаются:
{service_name=~"api.*"}
Просмотр профиля для конкретного промежутка трассировки:
Выберите тип профиля, установите Query Type в Profile и введите ID промежутка в поле Span ID, например 64f170a95f537095. Граф пламени затем показывает только данные профиля, связанные с этим промежутком. Этот пример поддерживает
Trace to profiles.
Результаты запроса профилей
Профили можно визуализировать на графе пламени. Ознакомьтесь с документацией по графу пламени, чтобы узнать о визуализации и её возможностях.

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

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

