Настройка мониторинга 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.

  1. Разрешите 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
  2. (необязательно) Если вы хотите требовать авторизацию для просмотра конечных точек метрик, раскомментируйте и задайте следующие параметры:

    basic_auth_username =
    basic_auth_password =
  3. Перезапустите Grafana. Теперь Grafana предоставляет метрики по адресу http://localhost:3000/metrics.

  4. Добавьте задание в ваш файл prometheus.yml. Пример:

    - job_name: 'grafana_metrics'
    
      scrape_interval: 15s
      scrape_timeout: 5s
    
      static_configs:
        - targets: ['localhost:3000']
  5. Перезапустите Prometheus. Ваше новое задание должно появиться на вкладке Targets.

  6. В Grafana нажмите Connections в меню слева.

  7. В разделе подключений нажмите Data Sources.

  8. Выберите источник данных Prometheus.

  9. Под именем вашего источника данных нажмите Dashboards.

  10. На вкладке Dashboards нажмите Import в строке Grafana metrics, чтобы импортировать дашборд метрик Grafana. Все собранные метрики Grafana будут доступны на этом дашборде.

Просмотр метрик Grafana в Graphite

Эти инструкции предполагают, что вы уже добавили Graphite в качестве источника данных в Grafana.

  1. Включите отправку метрик в 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
  2. Включите параметры [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.
  3. Перезапустите Grafana. Теперь Grafana предоставляет метрики по адресу http://localhost:3000/metrics и отправляет их в указанное вами расположение Graphite.

Сбор метрик серверного плагина Grafana в Prometheus

Любой установленный серверный плагин предоставляет конечную точку метрик через Grafana, которую можно настроить Prometheus для сбора.

Эти инструкции предполагают, что вы уже добавили Prometheus в качестве источника данных в Grafana.

  1. Разрешите 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
  2. (необязательно) Если вы хотите требовать авторизацию для просмотра конечных точек метрик, раскомментируйте и задайте следующие параметры:

    basic_auth_username =
    basic_auth_password =
  3. Перезапустите Grafana. Теперь Grafana предоставляет метрики по адресу http://localhost:3000/metrics/plugins/<plugin id>, например http://localhost:3000/metrics/plugins/grafana-github-datasource, если у вас установлен источник данных Grafana GitHub.

  4. Добавьте задание в ваш файл 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']
  5. Перезапустите Prometheus. Ваше новое задание должно появиться на вкладке Targets.

  6. В Grafana наведите курсор мыши на значок Configuration (шестерёнка) на левой боковой панели и затем нажмите Data Sources.

  7. Выберите источник данных Prometheus.

  8. Импортируйте дашборд метрик приложения Golang — например, Go Processes.