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

如何在Grafana中将字符串"false"和"true"转为数字0和1

在Grafana中处理字符串"true"/"false":转换为数字或直接统计数量

方法1:转成数字0/1(通用方案)

不管你用什么数据源,都能通过Grafana的计算字段实现:

  • 打开面板的「Transform」选项卡,点击「Add transformation」,选择「Add field from calculation」
  • 计算类型选「Custom」,输入表达式:
    if ($你的字段名 == "true", 1, 0)
    
    把$你的字段名替换成实际字段名称
  • 给新字段起个名字(比如true计数),保存后就得到0和1的数字字段,后续加个「Reduce」转换选「Sum」,就能直接统计true的总数

方法2:直接统计true的数量(不用转数字)

不想转类型的话,直接过滤计数更简单:

  • 到「Transform」里加「Filter rows」转换,设置条件为你的字段名 等于 "true"
  • 接着加「Reduce」转换,选「Count」,出来的结果就是true的总数量

为什么「Convert field type」无效?

Grafana的类型转换只认原生布尔值,不认字符串格式的"true"/"false",所以直接转肯定没用。得先把字符串转成原生布尔或数字:

  • 要是想转布尔类型,自定义表达式写$你的字段名 == "true",生成原生布尔值后,再用「Convert field type」就正常了
  • 转数字的话,方法1已经生成数字字段,没必要再额外转

数据源层面直接处理(针对常用数据源)

如果你的数据源支持表达式,查询阶段就处理更高效:

  • SQL类(MySQL/PostgreSQL等):用CASE语句转换或统计
    SELECT 
      CASE WHEN your_column = 'true' THEN 1 ELSE 0 END AS true_as_1,
      COUNT(CASE WHEN your_column = 'true' THEN 1 END) AS true_total
    FROM your_table
    GROUP BY ...
    
  • Prometheus:直接过滤标签统计
    count(your_metric{your_label="true"})
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 19:52:36