如何在Grafana饼图中合并占比<1%的小系列至Other
将Grafana饼图中占比小于1%的系列汇总为“Other”的实现方法
方法一:通过数据源查询语句预处理
SQL数据源(如MySQL、PostgreSQL)
直接在查询阶段完成占比计算与合并,示例语句:
WITH total AS (SELECT SUM(metric_value) AS total FROM your_dataset), category_stats AS ( SELECT category, SUM(metric_value) AS value, (SUM(metric_value) / (SELECT total FROM total)) * 100 AS percentage FROM your_dataset GROUP BY category ) SELECT CASE WHEN percentage < 1 THEN 'Other' ELSE category END AS category, SUM(value) AS value FROM category_stats GROUP BY CASE WHEN percentage < 1 THEN 'Other' ELSE category END;
Prometheus数据源
利用PromQL的聚合与过滤逻辑实现合并,示例查询:
let total = sum(your_metric); // 保留占比≥1%的系列 sum by (category) (your_metric) |> filter (v => v / total * 100 >= 1) // 合并占比<1%的系列为Other |> union( sum by (category) (your_metric) |> filter (v => v / total * 100 < 1) |> label_replace("", "category", "Other", "category", ".*") )
方法二:利用Grafana面板内置功能(推荐,Grafana 8.0及以上版本)
无需修改查询,直接在饼图面板设置中启用自动合并:
- 进入饼图面板的编辑模式
- 切换到显示标签页
- 找到「Other」设置区块,勾选「启用」,将「阈值」设置为1(单位为%)
- 可自定义「Other」系列的名称、显示颜色等参数
这样设置后,Grafana会自动将所有占比低于1%的系列汇总为“Other”,效果与示例图一致。
内容的提问来源于stack exchange,提问作者Andrey Grigorian
相关产品推荐
相关产品推荐

