Настройка мониторинга Grafana
Grafana поддерживает трассировку.
Grafana может создавать трассировки Jaeger или OpenTelemetry Protocol (OTLP) для своих конечных точек HTTP API и распространять информацию трассировки Jaeger и w3c Trace Context в совместимые источники данных. Все конечные точки HTTP логируются единообразно (аннотации, дашборд, теги и так далее). Когда ID трассировки распространяется, он регистрируется с операцией ‘HTTP /datasources/proxy/:id/*’.
Справочную информацию о параметрах трассировки, доступных в Grafana, см. в разделе OpenTelemetry документации по конфигурации.
Просмотр внутренних метрик Grafana
Grafana собирает некоторые метрики о себе внутренне. Grafana поддерживает отправку метрик в Graphite или предоставление их для сбора Prometheus.
Дополнительную информацию о параметрах конфигурации, связанных с метриками Grafana, см. в разделах metrics и metrics.graphite документации Конфигурация.
Доступные метрики
Когда эта функция включена, Grafana предоставляет ряд метрик, включая:
- Активные экземпляры Grafana
- Количество дашбордов, пользователей и плейлистов
- Коды состояния HTTP
- Запросы по группам маршрутизации
- Активные оповещения Grafana
- Производительность Grafana
Формат нативных гистограмм
Grafana предоставляет метрики HTTP-запросов с использованием нативных гистограмм для более точного представления распределений метрик. По умолчанию для совместимости предоставляются как нативные гистограммы, так и классические корзины гистограмм.
Чтобы уменьшить кардинальность метрик, вы можете отключить классические корзины гистограмм и предоставлять только нативные гистограммы, задав следующий параметр в файле конфигурации:
[metrics]
# Enable classic HTTP histogram buckets alongside native histograms
# Set to false to only expose native histogram format (reduces cardinality)
classic_http_histogram_enabled = false
Сбор метрик из Grafana в Prometheus
Эти инструкции предполагают, что вы уже добавили Prometheus в качестве источника данных в Grafana.
-
Разрешите Prometheus собирать метрики из Grafana. В файле конфигурации (
grafana.iniилиcustom.iniв зависимости от вашей операционной системы) удалите точку с запятой, чтобы включить следующие параметры конфигурации:# Metrics available at HTTP URL /metrics and /metrics/plugins/:pluginId [metrics] # Disable / Enable internal metrics enabled = true # Disable total stats (stat_totals_*) metrics to be generated disable_total_stats = false -
(необязательно) Если вы хотите требовать авторизацию для просмотра конечных точек метрик, раскомментируйте и задайте следующие параметры:
basic_auth_username = basic_auth_password = -
Перезапустите Grafana. Теперь Grafana предоставляет метрики по адресу http://localhost:3000/metrics.
-
Добавьте задание в ваш файл prometheus.yml. Пример:
- job_name: 'grafana_metrics' scrape_interval: 15s scrape_timeout: 5s static_configs: - targets: ['localhost:3000'] -
Перезапустите Prometheus. Ваше новое задание должно появиться на вкладке Targets.
-
В Grafana нажмите Connections в меню слева.
-
В разделе подключений нажмите Data Sources.
-
Выберите источник данных Prometheus.
-
Под именем вашего источника данных нажмите Dashboards.
-
На вкладке Dashboards нажмите Import в строке Grafana metrics, чтобы импортировать дашборд метрик Grafana. Все собранные метрики Grafana будут доступны на этом дашборде.
Просмотр метрик Grafana в Graphite
Эти инструкции предполагают, что вы уже добавили Graphite в качестве источника данных в Grafana.
-
Включите отправку метрик в Graphite. В файле конфигурации (
grafana.iniилиcustom.iniв зависимости от вашей операционной системы) удалите точку с запятой, чтобы включить следующие параметры конфигурации:# Metrics available at HTTP API Url /metrics [metrics] # Disable / Enable internal metrics enabled = true # Disable total stats (stat_totals_*) metrics to be generated disable_total_stats = false -
Включите параметры [metrics.graphite]:
# Send internal metrics to Graphite [metrics.graphite] # Enable by setting the address setting (ex localhost:2003) address = <hostname or ip>:<port#> prefix = prod.grafana.%(instance_name)s. -
Перезапустите Grafana. Теперь Grafana предоставляет метрики по адресу http://localhost:3000/metrics и отправляет их в указанное вами расположение Graphite.
Сбор метрик серверного плагина Grafana в Prometheus
Любой установленный серверный плагин предоставляет конечную точку метрик через Grafana, которую можно настроить Prometheus для сбора.
Эти инструкции предполагают, что вы уже добавили Prometheus в качестве источника данных в Grafana.
-
Разрешите Prometheus собирать метрики серверных плагинов из Grafana. В файле конфигурации (
grafana.iniилиcustom.iniв зависимости от вашей операционной системы) удалите точку с запятой, чтобы включить следующие параметры конфигурации:# Metrics available at HTTP URL /metrics and /metrics/plugins/:pluginId [metrics] # Disable / Enable internal metrics enabled = true # Disable total stats (stat_totals_*) metrics to be generated disable_total_stats = false -
(необязательно) Если вы хотите требовать авторизацию для просмотра конечных точек метрик, раскомментируйте и задайте следующие параметры:
basic_auth_username = basic_auth_password = -
Перезапустите Grafana. Теперь Grafana предоставляет метрики по адресу
http://localhost:3000/metrics/plugins/<plugin id>, например http://localhost:3000/metrics/plugins/grafana-github-datasource, если у вас установлен источник данных Grafana GitHub. -
Добавьте задание в ваш файл prometheus.yml. Пример:
- job_name: 'grafana_github_datasource' scrape_interval: 15s scrape_timeout: 5s metrics_path: /metrics/plugins/grafana-test-datasource static_configs: - targets: ['localhost:3000'] -
Перезапустите Prometheus. Ваше новое задание должно появиться на вкладке Targets.
-
В Grafana наведите курсор мыши на значок Configuration (шестерёнка) на левой боковой панели и затем нажмите Data Sources.
-
Выберите источник данных Prometheus.
-
Импортируйте дашборд метрик приложения Golang — например, Go Processes.