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

Grafana单查询返回两个绝对值如何转换为百分比值展示

Grafana单查询返回双绝对值转百分比的兼容方案(无需依赖asPercents()函数)

以下方案全版本通用,按落地稳定性从高到低排序:

  • 查询层直接计算(优先选,无版本兼容问题)
    跳过Grafana侧的函数依赖,直接在对应数据源的查询语句里完成百分比计算,是最稳定的实现方式:
    • Prometheus类时序数据源:假设查询返回的两个绝对值序列分别为value_1、value_2,如果要算单个值占总和的比例,直接写value_1 / (value_1 + value_2) * 100即可,返回结果直接为百分比数值;如果是部分值除以总值的场景,替换分母为对应总值序列就行。
    • SQL类数据源(MySQL/PostgreSQL/ClickHouse等):直接在SELECT子句中做除法运算,例如SELECT (success_count / total_count)*100 AS percentage FROM your_data_table,注意数值类型字段计算时做好浮点转换,避免整数除法丢精度。
    • 其他数据源同理,只要支持基础四则运算,都可以直接在查询阶段输出最终需要的百分比值,不需要在Grafana侧做二次转换。
  • Grafana内置转换功能实现(7.0及以上版本全支持)
    如果数据源侧不方便改查询,可以用面板自带的转换功能实现,不需要依赖任何版本专属函数:
    1. 打开面板编辑页,切换到「Transform」标签
    2. 先添加Merge转换,将单条查询返回的2个独立结果合并为同一行的结构化数据
    3. 再添加Add field from calculation转换,模式选择Binary operation
    4. 按计算逻辑选对应字段做运算:分子选要计算占比的绝对值字段,分母选两个值的总和(或对应基准值字段),运算式最后乘100,给新生成的字段设置别名为「百分比」
    5. 最后添加Organize fields转换,把原始的两个绝对值字段设置为隐藏,仅保留生成的百分比字段用于面板展示和绘图即可。
  • 超旧版本兼容方案(6.x及更早无Transform功能的版本)
    如果是没有内置转换功能的老版本,可以直接在查询编辑器里新增表达式序列:给两个原始绝对值设置固定别名后,新增一个表达式类型的查询项,直接引用两个别名做四则运算算百分比,把原始绝对值序列的绘图开关关掉,仅保留计算出的百分比序列用于展示即可。

计算注意:如果是要展示两个值各自占两者总和的比例,需要分别计算两个百分比序列:值A/(值A+值B)*100、值B/(值A+值B)*100;如果是部分值相对于固定总值的占比,直接替换分母为对应总值即可,计算时注意处理分母为0的异常场景,避免面板出现无效空值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 23:36:37