Настройка источника данных Prometheus
В этом документе приведены инструкции по настройке источника данных Prometheus и объяснены доступные параметры конфигурации. Источник данных Prometheus предустановлен в Grafana, поэтому вам не нужно устанавливать его вручную. Общую информацию о добавлении источника данных в Grafana см. в разделе Добавление источника данных.
Перед началом
-
Для настройки источника данных вам нужна роль
Organization administrator. Вы также можете настроить его через YAML с помощью провижининга Grafana или используя Terraform. -
Знайте, к какому типу совместимой с Prometheus базы данных вы подключаетесь (Prometheus, Mimir, Cortex или Thanos), поскольку параметры конфигурации различаются в зависимости от типа.
-
Подготовьте URL вашего сервера Prometheus. Если используется TLS/SSL, соберите необходимые сертификаты безопасности и клиентские ключи.
-
Если используется базовая аутентификация, подготовьте имя пользователя и пароль.
Добавление источника данных
Чтобы добавить источник данных Prometheus, выполните следующие шаги:
- Нажмите Connections в меню слева.
- В разделе Connections нажмите Add new connection.
- Введите
Prometheusв строке поиска. - Нажмите Prometheus data source.
- Нажмите Add new data source в правом верхнем углу.
Grafana переводит вас на вкладку Settings, где вы настраиваете конфигурацию Prometheus.
Параметры конфигурации
Следующие разделы описывают параметры конфигурации, доступные на вкладке Settings. Эти разделы следуют порядку, в котором они отображаются в интерфейсе.
Name и Default
- Name — имя источника данных. Задаёт имя, которое вы используете для ссылки на источник данных на панелях и в запросах. Примеры:
prometheus-1,prom-metrics. - Default — переключатель, чтобы выбрать источник данных по умолчанию на панелях дашборда.
Подключение
- Prometheus server URL — URL вашего сервера Prometheus.
Если Prometheus работает локально, используйте
http://localhost:9090. Если он размещён на сетевом сервере, укажите URL сервера вместе с портом, на котором работает Prometheus. Пример:http://prometheus.example.orgname:9090.Note
При запуске Grafana и Prometheus в отдельных контейнерах localhost относится к собственному сетевому пространству имён каждого контейнера. Это означает, что
localhost:9090указывает на порт 9090 внутри контейнера Grafana, а не на хост-машине.Используйте IP-адрес контейнера Prometheus или имя хоста, если вы используете Docker Compose. В качестве альтернативы вы можете использовать
http://host.docker.internal:9090для ссылки на хост-машину.
Аутентификация
Для источника данных Prometheus есть три варианта аутентификации.
-
Basic authentication — наиболее распространённый метод аутентификации.
- User — имя пользователя, используемое для подключения к источнику данных.
- Password — пароль, используемый для подключения к источнику данных.
-
Forward OAuth identity — передаёт OAuth-токен доступа (а также OIDC ID-токен, если он доступен) пользователя, запрашивающего источник данных.
-
No authentication — разрешает доступ к источнику данных без какой-либо аутентификации.
Дополнительные методы аутентификации (Azure AD, AWS SigV4) доступны в зависимости от вашего развёртывания:
Warning
Аутентификация Azure AD и SigV4 в основном источнике данных Prometheus устарела в Grafana 13. Существующие источники данных, использующие эти методы, автоматически мигрируются в выделенные плагины при запуске. Для новых настроек используйте вместо этого плагины Azure Monitor Managed Service for Prometheus или Amazon Managed Service for Prometheus. Подробности миграции см. в разделах Аутентификация Azure (устарела) или Аутентификация AWS (устарела).
-
Azure AD authentication — доступна в Grafana Enterprise и самостоятельно размещённых экземплярах, где настроено
azure_auth_enabled = true. В Grafana Cloud эта опция требует серверного флага функции, который не включён по умолчанию. Свяжитесь с поддержкой Grafana, чтобы запросить его включение для вашего стека. Подробности конфигурации см. в разделе Настройки аутентификации Azure. -
AWS SigV4 authentication — доступна в самостоятельно размещённых экземплярах Grafana, где настроено
sigv4_auth_enabled = true. В Grafana Cloud эта опция недоступна по умолчанию. Свяжитесь с поддержкой Grafana, чтобы запросить её включение для вашего стека.
Note
Если опции Azure AD или SigV4 не отображаются в раскрывающемся списке аутентификации, необходимый флаг функции не включён в вашем экземпляре. Для Grafana Cloud отправьте запрос в поддержку. Для самостоятельно размещённых экземпляров обновите файл конфигурации Grafana.
Настройки TLS
Note
Используйте TLS (Transport Layer Security) для дополнительного уровня безопасности при работе с Prometheus. Информацию о настройке шифрования TLS с Prometheus см. в разделе Securing Prometheus API and UI Endpoints Using TLS Encryption. Вы должны добавить настройки TLS в ваш файл конфигурации Prometheus до установки этих параметров в Grafana.
- Add self-signed certificate — установите флажок, чтобы аутентифицироваться с помощью сертификата CA. Следуйте инструкциям CA (Certificate Authority) для загрузки файла сертификата. Требуется для проверки самоподписанных TLS-сертификатов.
- CA certificate — добавьте ваш сертификат.
- TLS client authentication — установите флажок, чтобы включить клиентскую аутентификацию TLS.
- Server name — добавьте имя сервера, которое используется для проверки имени хоста в полученном сертификате.
- Client certificate — клиентский сертификат генерируется центром сертификации или является самоподписанным. Следуйте инструкциям CA для загрузки файла сертификата.
- Client key — добавьте ваш клиентский ключ, который также может быть сгенерирован CA или быть самоподписанным. Клиентский ключ шифрует данные между клиентом и сервером.
- Skip TLS verify — включите, чтобы обойти проверку TLS-сертификата. Не рекомендуется пропускать проверку TLS-сертификата, если только это не абсолютно необходимо или не для целей тестирования.
HTTP-заголовки
Передавайте дополнительную информацию и метаданные о запросе или ответе.
- Header — добавьте пользовательский заголовок. Это позволяет передавать пользовательские заголовки в соответствии с потребностями вашего экземпляра Prometheus.
- Value — значение заголовка.
Расширенные настройки HTTP
- Allowed cookies — укажите cookie по имени, которые следует передавать в источник данных. Прокси Grafana по умолчанию удаляет все передаваемые cookie.
- Timeout — тайм-аут HTTP-запроса в секундах.
Алертинг
-
Manage alerts via Alerting UI — включено по умолчанию. Это включает правила, управляемые источником данных, в Grafana Alerting для этого источника данных. Для
Mimirэто включает управление правилами и алертами, управляемыми источником данных. ДляPrometheusэто поддерживает только просмотр существующих правил и алертов, которые отображаются как управляемые источником данных. Измените это, задав опциюdefault_manage_alerts_ui_toggleв файле конфигурацииgrafana.ini. -
Allow as recording rules target — включено по умолчанию. Это позволяет выбирать источник данных в качестве целевого назначения для записи правил записи, управляемых Grafana. Когда эта опция включена, этот источник данных появляется в списке целевых источников данных при создании или импорте правил записи. Измените это, задав опцию
default_allow_recording_rules_target_alerts_ui_toggleв файле конфигурацииgrafana.ini.
Поведение интервала
- Scrape interval — задаёт стандартный интервал сбора и вычисления в Prometheus. По умолчанию —
15s. Установите его в соответствии с типичным интервалом сбора и вычисления в вашем файле конфигурации Prometheus. Если вы зададите значение выше, чем в вашей конфигурации Prometheus, Grafana будет вычислять данные с этим интервалом, что приведёт к меньшему количеству точек данных. - Query timeout — задаёт тайм-аут запроса Prometheus. По умолчанию —
60s. Без тайм-аута сложные или неэффективные запросы могут выполняться бесконечно, потребляя ресурсы ЦП и памяти.
Редактор запросов
- Default editor — задаёт редактор запросов по умолчанию. Параметры:
BuilderилиCode. РежимBuilderпомогает строить запросы с помощью визуального интерфейса. РежимCodeпредназначен для опытного пользователя Prometheus, уже владеющего PromQL. Дополнительные сведения о типах редакторов см. в разделе Редактор запросов Prometheus. Вы можете переключаться между редакторами в интерфейсе редактора запросов. - Disable metrics lookup — включите, чтобы отключить выбор метрик, а также поддержку метрик и меток в автодополнении поля запроса. Это может повысить производительность для больших экземпляров Prometheus.
Производительность
-
Prometheus type — выберите тип вашей совместимой с Prometheus базы данных. Неправильная установка этого параметра может вызвать неожиданное поведение при запросе метрик и меток. Cortex снят с поддержки; если вы используете Cortex, рассмотрите переход на Mimir.
Grafana использует эту настройку, чтобы определить, какие конечные точки API и функции включить. Например, при значении Mimir Grafana использует оптимизированные для регулярных выражений запросы меток, которые значительно повышают производительность автодополнения и загрузки переменных для больших наборов метрик.
Note
Командное управление доступом на основе меток (LBAC) для источника данных Prometheus требует, чтобы бэкенд был Grafana Cloud Metrics (Mimir) или Grafana Enterprise Metrics (GEM). LBAC не работает с внешними совместимыми с Prometheus конечными точками, такими как Google Managed Prometheus, самостоятельно размещённый Prometheus или Thanos, даже если вы включите настройку
teamHttpHeadersMimir. Применение LBAC основывается на специфичных для Mimir HTTP-заголовках, которые другие бэкенды не поддерживают.
- Cache level — задаёт уровень кэширования браузером для запросов редактора. Параметры:
Low,Medium,HighилиNone. Более высокие настройки кэша рекомендуются для источников данных с высокой кардинальностью. - Incremental querying (beta) — включите, чтобы включить инкрементальные запросы. Вместо того чтобы всегда запрашивать свежие данные из экземпляра Prometheus, Grafana кэширует результаты запросов и извлекает только новые записи. Это помогает снизить нагрузку на базу данных и сеть.
- Query overlap window — укажите длительность (например,
10m,120sили0s). По умолчанию —10m. Этот буфер добавляется к каждому инкрементальному запросу, чтобы учесть задержку приёма данных.
- Query overlap window — укажите длительность (например,
- Disable recording rules (beta) — включите, чтобы отключить правила записи. Когда эта опция отключена, Grafana не будет извлекать и разбирать правила записи из Prometheus, повышая производительность дашборда за счёт снижения накладных расходов на обработку.
Другое
- Custom query parameters — добавьте пользовательские параметры в URL запроса Prometheus для большего контроля над выполнением запроса. Примеры:
timeout,partial_response,dedupилиmax_source_resolution. Соединяйте несколько параметров с помощью&. - HTTP method — выберите HTTP-метод
POSTилиGETдля запроса вашего источника данных. Рекомендуется и выбран по умолчаниюPOST, поскольку он поддерживает более крупные запросы. ВыберитеGET, если ваша сеть ограничивает запросыPOST. - Series limit — максимальное количество возвращаемых рядов. Лимит применяется ко всем ресурсам (метрикам, меткам и значениям) для обеих конечных точек (series и labels). Оставьте пустым, чтобы использовать лимит по умолчанию (40000). Установите
0, чтобы отключить лимит, что может вызвать проблемы с производительностью. - Use series endpoint — включите, чтобы использовать конечную точку series (
/api/v1/series) с параметромmatch[]вместо конечной точки значений меток (/api/v1/label/<label_name>/values). Конечная точка значений меток, как правило, более производительна, но конечная точка series поддерживает методPOST.
Экземпляры (Exemplars)
Поддержка экземпляров (exemplars) доступна только для источника данных Prometheus. Экземпляр — это трассировка, представляющая конкретное измерение, взятое в заданном интервале времени. Дополнительную информацию см. в разделе Введение в экземпляры.
Нажмите знак +, чтобы добавить экземпляры.
- Internal link — включите, чтобы включить внутреннюю ссылку. Это отображает селектор источника данных, где вы можете выбрать бэкенд-хранилище данных трассировки для данных ваших экземпляров.
- URL — (отображается, если вы отключите
Internal link) Определяет URL бэкенда трассировки внешней ссылки. Вы можете интерполировать значение из поля с помощью макроса${__value.raw}. - Data source — (отображается, когда
Internal linkвключена) Выберите источник данных трассировки, на который ссылается экземпляр. - URL label — добавляет пользовательскую метку отображения, чтобы переопределить значение поля
Label name. - Label name — имя поля в объекте
labels, используемое для получения свойства traceID. - Remove exemplar link — нажмите X, чтобы удалить существующие ссылки.
Вы можете добавить несколько конфигураций экземпляров.
Private data source connect
Note
Private data source connect (PDC) доступен только для пользователей Grafana Cloud.
PDC позволяет установить приватное, защищённое соединение между экземпляром Grafana Cloud и источниками данных внутри приватной сети без открытия сети для входящего трафика.
- Private data source connect network — выберите сеть PDC, в которой доступен ваш источник данных.
PDC поддерживает как запросы, так и запись в совместимые с Prometheus источники данных. Это означает, что правила записи, управляемые Grafana, могут записывать свои результаты в экземпляр Prometheus или Mimir за подключением PDC.
Если вы используете PDC с SigV4 (AWS Signature Version 4 Authentication), агент PDC должен разрешать исходящий доступ в интернет к sts.<region>.amazonaws.com:443.
Нажмите Manage private data source connect networks, чтобы просмотреть сведения о конфигурации PDC.
Дополнительную информацию см. в разделах Private data source connect (PDC) и Настройка PDC.
Для устранения проблем со связностью PDC (разрешение DNS, ошибки «host unreachable» или настройка параллельных подключений) см. Ошибки связности PDC.
Сохранение и проверка
После настройки параметров источника данных Prometheus нажмите Save & test внизу, чтобы проверить подключение источника данных.
Вы должны увидеть подтверждающее сообщение:
Successfully queried the Prometheus API.
Вы также можете удалить подключение, нажав Delete.
Провижининг источника данных
Вы можете определить и настроить источник данных в файлах YAML в рамках системы провижининга Grafana или использовать Terraform с провайдером Grafana.
Note
После провижининга источника данных вы не можете редактировать его через интерфейс.
Провижининг с YAML
Дополнительную информацию о провижининге и доступных параметрах конфигурации см. в разделе Провижининг Grafana.
Пример конфигурации источника данных Prometheus:
apiVersion: 1
datasources:
- name: Prometheus
type: prometheus
access: proxy
url: http://localhost:9090
jsonData:
httpMethod: POST
manageAlerts: true
allowAsRecordingRulesTarget: true
prometheusType: Prometheus
prometheusVersion: 3.3.0
cacheLevel: 'High'
disableRecordingRules: false
seriesEndpoint: false
timeInterval: 10s
incrementalQueryOverlapWindow: 10m
exemplarTraceIdDestinations:
- datasourceUid: my_jaeger_uid
name: traceID
- name: traceID
url: 'http://localhost:3000/explore?orgId=1&left=%5B%22now-1h%22,%22now%22,%22Jaeger%22,%7B%22query%22:%22$${__value.raw}%22%7D%5D'
Провижининг с Terraform
Вы можете настроить источник данных Prometheus с помощью Terraform и провайдера Grafana для Terraform.
Дополнительную информацию о провижининге ресурсов с помощью Terraform см. в разделе Grafana как код с использованием Terraform.
Следующий пример создаёт источник данных Prometheus с общими настройками:
resource "grafana_data_source" "prometheus" {
name = "Prometheus"
type = "prometheus"
url = "http://localhost:9090"
json_data_encoded = jsonencode({
httpMethod = "POST"
manageAlerts = true
prometheusType = "Prometheus"
prometheusVersion = "3.3.0"
cacheLevel = "High"
disableRecordingRules = false
incrementalQuerying = true
incrementalQueryOverlapWindow = "10m"
timeInterval = "15s"
exemplarTraceIdDestinations = [{
datasourceUid = "my_tempo_uid"
name = "traceID"
}]
})
}
Следующий пример создаёт источник данных Prometheus с базовой аутентификацией:
resource "grafana_data_source" "prometheus_auth" {
name = "Prometheus (authenticated)"
type = "prometheus"
url = "https://prometheus.example.com:9090"
basic_auth_enabled = true
basic_auth_username = "grafana"
json_data_encoded = jsonencode({
httpMethod = "POST"
prometheusType = "Mimir"
timeInterval = "15s"
})
secure_json_data_encoded = jsonencode({
basicAuthPassword = var.prometheus_password
})
}
Все доступные параметры конфигурации см. в документации по ресурсу источника данных провайдера Grafana.
Настройки аутентификации Azure (устарели)
Warning
Аутентификация Azure AD в основном источнике данных Prometheus устарела в Grafana 13. Источники данных, использующие этот метод, автоматически мигрируются в выделенный плагин Azure Monitor Managed Service for Prometheus при запуске. Подробности миграции см. в разделе Аутентификация Azure (устарела).
Если вам всё ещё нужно настроить аутентификацию Azure AD в основном источнике данных Prometheus (например, в более старых версиях Grafana), см. раздел Настройка аутентификации Azure Active Directory (AD).
В Grafana Enterprise или самостоятельно размещённом OSS обновите файл конфигурации .ini. Чтобы найти ваш файл .ini, см.
Расположение файла конфигурации.
Добавьте следующую настройку в раздел [auth]:
[auth]
azure_auth_enabled = true
Note
Если вы используете аутентификацию Azure, не включайте
Forward OAuth identity. Оба метода используют одни и те же HTTP-заголовки авторизации, и OAuth-токен переопределяет ваши учётные данные Azure.
Устранение неполадок
Если вы столкнулись с проблемами после настройки вашего источника данных Prometheus, см. раздел Устранение неполадок источника данных Prometheus.