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

如何用同一数据源变量在Grafana中访问InfluxDB与MSSQL数据

用单个服务器变量关联InfluxDB与MSSQL数据源的实现步骤

1. 创建统一的服务器名称变量

先搭建一个能覆盖两个数据源所有目标服务器的全局变量:

  • 进入仪表盘右上角齿轮图标 → Variables 设置页面,点击Add variable
  • 变量配置:
    • Name:自定义为server_name(方便后续查询引用)
    • Type:选择Query
    • 点击Add query,先选InfluxDB数据源,编写查询获取服务器列表(根据你的实际measurement和tag调整):
      SHOW TAG VALUES FROM `server_metrics` WITH KEY = "server_name"
      
    • 再次点击Add query,切换到MSSQL数据源,编写查询获取服务器列表(根据你的表结构调整):
      SELECT DISTINCT ServerName FROM dbo.ServerStatus
      
    • 切换到Options标签页,可勾选Include all option(方便查看全量数据)或Multi-value(支持多选服务器)
    • 保存变量

2. 在面板查询中引用变量关联数据源

在需要展示数据的面板里,分别针对两个数据源编写查询并引用$server_name变量:

InfluxDB查询示例

  • 新建面板,选择InfluxDB作为数据源
  • 编写带变量过滤的查询:
    SELECT mean("cpu_usage") FROM `server_metrics` 
    WHERE "server_name" = '$server_name' AND $timeFilter 
    GROUP BY time($__interval) fill(null)
    

MSSQL查询示例

  • 在同面板添加新查询,切换到MSSQL数据源
  • 编写带变量过滤的查询:
    SELECT Timestamp, MemoryUsage 
    FROM dbo.ServerStatus 
    WHERE ServerName = '$server_name' 
      AND Timestamp BETWEEN $__timeFrom() AND $__timeTo()
    

3. 关键注意事项

  • 必须保证两个数据源中的服务器名称完全一致(大小写、拼写无差异),否则变量无法匹配对应数据
  • 链式变量适用于变量间依赖场景(比如先选集群再选服务器),本场景不需要使用,单个全局变量即可关联双数据源查询
  • InfluxDB的匹配规则可按需调整:如果是模糊匹配用=~ /^$server_name$/,精确匹配用= "$server_name"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:10:02