You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Grafana支持单查询使用双数据源吗?跨数据源查询结果如何关联?

关联Grafana中不同数据源查询结果的方法

Grafana本身支持跨数据源的结果关联,主要有以下几种实用方案:

1. 使用Join Transform直接关联(最常用)

这是Grafana自带的可视化层关联方式,无需修改数据源:

  • 先添加两个查询:一个从PostgreSQL获取带关联键的表格数据(比如包含hostname、service_name的业务数据),另一个从Prometheus查询带相同关联键的时序数据(比如包含instance字段的监控指标,注意instance格式要和PostgreSQL的hostname匹配,不匹配的话先做格式转换)
  • 进入面板的「Transform」标签页,点击「Add transformation」,选择「Join」
  • 在Join配置里:
    • 选择要关联的两个数据集(比如Query A和Query B)
    • 设置关联键:必须是两个结果集都存在的字段(比如hostname和instance,如果字段名不同,先通过「Rename fields」Transform把字段名统一)
    • 选择关联类型:内连接(只保留两边都有的数据)、左连接(保留左边数据集的所有数据,匹配右边的关联数据)等,按需选择
    • 调整输出字段,去掉不需要的冗余字段即可

注意:关联字段的格式必须完全一致,比如Prometheus返回的instance是web01:9100,而PostgreSQL里是web01,可以先用「Extract fields」Transform,通过正则(.*):\d+提取出web01作为新的hostname字段,再做关联。

2. 用变量实现维度关联

如果只需要按某个维度(比如服务器名称、业务ID)同步展示两个数据源的数据,可以用变量联动:

  • 先创建一个查询变量:数据源选PostgreSQL,写SQL查询获取所有需要的维度值(比如SELECT DISTINCT hostname FROM server_info)
  • 在Prometheus的查询里,用这个变量作为过滤条件,比如node_memory_MemTotal_bytes{instance=~"$hostname.*"}
  • 切换变量值时,PostgreSQL和Prometheus的查询结果会自动同步展示对应维度的数据,实现关联查看

3. 预处理数据到同一数据源(适合复杂关联逻辑)

如果需要更复杂的关联计算(比如聚合、多条件关联),可以把其中一个数据源的数据同步到另一个:

  • 把Prometheus数据导入PostgreSQL:用Prometheus的remote write功能搭配PostgreSQL适配器,将时序数据写入PostgreSQL,之后直接在PostgreSQL里用SQL关联业务数据和监控数据
  • 把PostgreSQL数据导入Prometheus:通过自定义exporter将业务数据暴露为Prometheus指标,之后在Prometheus查询里结合监控指标做关联(这种方式适合维度较少的场景)

内容的提问来源于stack exchange,提问作者Mike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 01:02:18