本篇目录6 节

05数据源Data Sources

连接 Prometheus

Prometheus 是 Grafana 最常见的搭档。本文覆盖 Prometheus 数据源的添加、鉴权、查询选项调优与常用 PromQL 面板配置。

约 2 分钟/496 字/GRAFANA 12.X

数据源定位

Prometheus 是一个拉取(pull)模型的指标数据库,Grafana 通过 HTTP API(/api/v1/query/api/v1/query_range)向它查询数据。几乎所有 Grafana 教程都从这对组合开始,本文亦如此。

添加数据源

前提:Prometheus 已在目标环境运行且从 Grafana 所在网络可达,例如本地 http://localhost:9090

  1. 打开 Connections → Data sources → Add data source
  2. 选择 Prometheus
  3. Prometheus server URL 填入地址,例如 http://localhost:9090
  4. (可选)配置鉴权:反向代理后的 Prometheus 通常需要 Basic auth 或 Bearer token。
  5. 点击 Save & test,绿色对勾即连接成功。

注意: URL 填的是「Grafana 服务器能访问到的地址」,不是浏览器地址。如果 Grafana 跑在容器里而 Prometheus 在宿主机,常用写法是 http://host.docker.internal:9090

关键选项速查

选项 作用 建议
Default 是否作为新面板的默认数据源 单 Prometheus 环境建议打开
HTTP headers 附加请求头 网关鉴权场景常用
Custom query parameters 查询时附加参数 用于租户路由等多租户网关
Manage alerts 允许在此数据源上管理 Prometheus 告警规则 需要统一管理时开启
Direct connect 浏览器直连 Prometheus 而非经 Grafana 代理 只有配好 CORS 才开

写第一个查询

在 Explore 中选择该数据源,输入一个最经典的查询:

rate(http_requests_total{status="500"}[5m])

几个调优心得:

  • Legend(图例){{instance}},每条线自动带上标签值,告别「series 1/2/3」。
  • Step 留空让 Grafana 按时间范围自动计算;排障细粒度查询可手动调小。
  • 查询返回慢时,先在 PromQL 里收紧标签选择器,而不是急着调超时。

常见坑

  • 时区对不上:Grafana 界面时间默认跟随浏览器,与 Prometheus 无关;若数字「差八小时」,先检查右上角时间选择器与浏览器时区。
  • rate 全为空:指标可能刚启动、不足一个抓取间隔的两倍;或标签名写错,http_requests_total 是Counter,increase()/rate() 只对这类指标有意义。
  • CORS 报错:说明误开了 Direct connect,关掉即可(Grafana 代理模式没有跨域问题)。

下一步

本页为学习整理的中文改写,依据Grafana 官方文档最新版本编写(以 Grafana 12.x 为基准),操作路径请以实际产品界面为准。

Data Sources