Prometheus
Тема дорожной карты · Grafana
Источник данных Prometheus — одна из самых востребованных интеграций в Grafana: он позволяет командам визуализировать метрики, собранные и хранимые сервером Prometheus, на интерактивных дашбордах временных рядов. После добавления источника данных Prometheus, указав URL HTTP API Prometheus (например, http://prometheus:9090), вы пишете PromQL-запросы прямо в редакторе запросов панели Grafana для извлечения и агрегирования метрик. Grafana автоматически подставляет выбранный временной диапазон дашборда в диапазонные запросы Prometheus через переменную $__range, а переменная $__interval регулирует параметр шага в соответствии с шириной панели для эффективного получения данных. Источник данных Prometheus также поддерживает Exemplars — высококардинальные идентификаторы трассировок, прикреплённые к образцам метрик, — что позволяет Grafana напрямую связывать всплески метрик с соответствующей трассировкой в Tempo. Для высокодоступных установок Grafana можно настроить с несколькими источниками данных Prometheus, адресуя каждый из них явно в дашбордах, или использовать эндпоинт федерации Prometheus для агрегирования метрик с нескольких экземпляров.
Как это работает
Prometheus: настраиваются в Settings → Data Sources или через provisioning YAML. Распространённые: Prometheus (метрики), Loki (логи), Tempo (traces), InfluxDB, PostgreSQL, MySQL, Elasticsearch, CloudWatch, OpenSearch. У каждого type-specific конфиг (URL, auth, дефолтные query-опции). Mixed datasource в одной панели позволяет комбинировать запросы из нескольких источников. Test connection до использования ("Save & Test").
Когда применять
Provisioning YAML — для декларирования data sources; клики в UI в 10 средах error-prone. Prometheus URL через env var — один Helm chart деплоится в dev/staging/prod с разными backend. Mixed datasource — осторожно; усложняет запросы. Всегда проверяйте, что "Default"-datasource совпадает с самым используемым.
Типичные ошибки
Ловушки Prometheus: data sources с сохранёнными credentials утекают через URL панелей / shared дашбордов (server-side auth где можно); datasource на localhost из Docker-контейнера (используйте docker-internal hostnames или внешние адреса); слишком много data sources = медленный старт UI.