Перейти к основному содержимому

Практикум Grafana — источники данных и дашборды

Инженеру Разработчику

Практикум, шаг 4 из 9. Назад — PromQL. Стек уже поднят на шаге 2. Дальше — экспортёры.


Роль Grafana

Grafana — платформа визуализации и исследования данных. Prometheus хранит и опрашивает метрики; Grafana строит дашборды, Explore и Unified Alerting поверх Prometheus, Loki, Tempo и десятков других источников.

Дашборд Grafana — метрики CPU, сети, диска и нагрузка хоста (Windows Exporter)

Полный маршрут практикума — Практикум Prometheus и Grafana — о разделе.

Официальные материалы:

Если прошли шаг 2

Grafana уже запущена, datasource Prometheus создан файлом provisioning. Полный маршрут «Explore → дашборд → импорт» — в Как пользоваться. Здесь — проверка связи и углубление (переменные, импорт по ID).


Вход и проверка datasource

  1. Откройте http://localhost:<PORT_GRAFANA> (порт задавали на шаге 2).
  2. Войдите: admin / admin (Grafana может предложить сменить пароль — для учебного стенда можно пропустить).
  3. Connections → Data sources — в списке Prometheus, пометка Default.
  4. Откройте datasource → Save & test.

Ожидаемый результат: Successfully queried the Prometheus API.

Если ошибка — сверьте шаг 2: URL должен быть http://prometheus:9090, оба контейнера Up, health Prometheus 200.


Первая панель — метрика up

Dashboards → New → New dashboard → Add visualization

ПолеЗначение
Data sourcePrometheus
Queryup
Legend{{job}} / {{instance}}
VisualizationTime series или Stat

Save dashboard — имя, например Lab / Overview.

Ожидание на свежем стенде: одна серия up{job="prometheus"} = 1. Если No data — вернитесь в Prometheus UI (<PORT_PROM>) → Targets и убедитесь, что scrape работает.

Тот же запрос можно отработать в Explore (иконка компаса) — удобно перед добавлением сложного PromQL на дашборд.


Связка Prometheus UI и Grafana

ПроверкаГдеОжидание
Target живPrometheus → Status → Targetsprometheus UP
PromQLPrometheus → Graph → upзначение 1
DatasourceGrafana → Save & testSuccessfully queried
ПанельGrafana → дашборд upграфик без разрывов

Запросы из шага 3 (rate, histogram_quantile) копируйте в Grafana Explore и на панели — синтаксис тот же.


Provisioning (напоминание)

Datasource уже описан в YAML (шаг 2):

apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://prometheus:9090
isDefault: true
editable: false
ПолеСмысл
access: proxyБраузер не ходит в Prometheus напрямую — только Grafana
urlИмя сервиса Compose, порт внутри сети
editable: falseСлучайно не сменить URL в UI

Дашборды можно подключать provisioning'ом (grafana/provisioning/dashboards/) — JSON в Git, автозагрузка при старте Grafana. Для Windows-стенда типичен дашборд 14694 в папке Windows (шаг 2).


Provisioning дашборда (файлом)

  1. grafana/provisioning/dashboards/default.yml — провайдер с folder: Windows и path к JSON.
  2. В datasource.ymluid: prometheus (совпадает с ссылками в JSON).
  3. Скачайте JSON с Grafana.com, замените ${DS_PROMETHEUS} на {"type": "prometheus", "uid": "prometheus"}, удалите __inputs / __requires.
  4. Сохраните windows-exporter.json в UTF-8 без BOM.
Пустая папка Windows

Если в UI папка есть, а дашбордов нет — docker compose logs grafana | Select-String "failed to load". Частая причина: BOM в JSON (invalid character 'ï'). Исправление — Как пользоваться.


Переменные дашборда

Dashboard settings → Variables → Add variable

VariableTypeQuery
jobQuerylabel_values(up, job)
instanceQuerylabel_values(up{job="$job"}, instance)

В панели:

up{job="$job", instance=~"$instance"}

После добавления node_exporter (шаг 5) переменные покажут несколько job и instance.


Explore и Split view

Explore — ad-hoc PromQL без сохранения дашборда. На шаге 7 включите Split — Prometheus и Loki рядом для расследования инцидента.


Импорт готовых дашбордов

Dashboards → New → Import

IDНазваниеКогда
3662Prometheus 2.0 OverviewСразу после шага 2
14694Windows Exporter DashboardПосле windows_exporter
1860Node Exporter FullПосле node_exporter на Linux (шаг 5)
7587AlertmanagerПосле шага 6

При импорте выберите datasource Prometheus.


Минимальный дашборд «три золотых сигнала»

Для HTTP-сервиса (после instrumentation на шаге 5):

ПанельPromQL
Trafficsum(rate(http_requests_total[5m]))
Errorssum(rate(http_requests_total{status=~"5.."}[5m])) / sum(rate(http_requests_total[5m]))
Duration p99histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))

Пример дашборда Grafana с метриками производительности и нагрузки


Эксплуатация Grafana на стенде

Команды из шага 2 — те же:

docker compose logs -f grafana
docker compose restart grafana

Дашборды и настройки лежат в volume grafana_data — переживают docker compose down без -v.


Чек-лист

  • Вход в Grafana на <PORT_GRAFANA>
  • Datasource Prometheus — Save & test OK
  • Дашборд с панелью up
  • (Опционально) дашборд 14694 или provisioning Windows
  • (Опционально) переменные job / instance
  • Импорт dashboard 3662

Дальше — экспортёры и /metrics.


См. также

Другие статьи этого же раздела в боковом меню (как на странице "О разделе").