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

Grafana跨双数据源计算:如何用Transformation实现A/B百分比运算?

实现跨数据源计算A/B百分比的方法

当然可以!Grafana的**Transformations(转换)**功能完全能帮你实现跨两个数据源的A/B百分比计算,我给你一步步拆解怎么操作:

1. 先确认两个查询的基础结果

首先确保你的两个单独查询各自能返回正确的数值:

  • Database 1的查询:SELECT count(id) FROM Logs WHERE $__unixEpochFilter(RequestTimestamp DIV 1000)
  • Database 2的查询:SELECT count(id) FROM Entries WHERE $__unixEpochFilter(RequestTimestamp DIV 1000)

在单独的面板里测试这两个查询,确认它们都能输出预期的count值,而且是单条结果(如果是按时间分组的时序数据,也要确保时间粒度完全一致)。

2. 配置混合数据源面板的查询标签

在你已经创建的混合数据源面板里,给两个查询分别设置清晰的Series name(比如第一个设为A_Count,第二个设为B_Count),这样后续转换时能快速识别对应的字段。

3. 添加转换计算字段

进入面板的Transform标签页,点击Add transformation,按以下步骤操作:

  • 第一步:选择Add field from calculation
    • 给新字段命名,比如A/B Ratio
    • 计算类型选Binary operation
    • 第一个操作数选A_Count(你的第一个查询的count字段)
    • 操作符选择/(除法)
    • 第二个操作数选B_Count(第二个查询的count字段)
  • (可选)第二步:再添加一个Add field from calculation,把刚才的比值乘以100,命名为Percentage (%),这样直接得到百分比结果。

4. 处理异常情况(避免除以零)

如果B的count可能为0,为了避免报错,可以额外添加一个转换:

  • 选择Filter data by value,过滤掉B_Count等于0的行;
  • 或者用Math类型的计算,写条件表达式:if(B_Count == 0, 0, A_Count / B_Count * 100)(需要Grafana 8.0+版本支持)。

5. 调整可视化展示

最后把面板的可视化类型改成Stat、Gauge或者Text,就能直观展示计算出的百分比了;如果是时序数据,Grafana会自动按时间戳对齐两个数据源的结果,逐时间点计算A/B的比值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 07:40:43