Grafana+PostgreSQL时序图表:GROUP BY语句不生效问题
Grafana多图表展示disposition数据排查问题
表结构
CREATE TABLE IF NOT EXISTS "case_closed" ( "case_id" varchar(256) NOT NULL, "closed_at" TIMESTAMP WITH TIME ZONE, "disposition" VARCHAR(128), PRIMARY KEY ("case_id") );
需求
为表中每个disposition值(当前存在2个不同值)分别展示独立的统计图表。
尝试的查询语句
SELECT $__timeGroupAlias(closed_at, $__interval), disposition AS "metric", COUNT(*) AS "value" FROM case_closed WHERE $__timeFilter(closed_at) GROUP BY 1,2 ORDER BY 1
问题描述
执行上述查询后,仅显示单个图表(效果为单图表内合并展示所有disposition的统计数据,未拆分为独立图表)。自查查询语句逻辑无误,怀疑是Grafana配置问题,求排查方向。
排查方向
- 面板类型适配:确认当前面板类型是否支持拆分多图表。默认的
Graph面板是单图表多系列展示;若要生成独立图表,可改用Row容器搭配多个独立面板,或使用Stat/Bar Chart面板结合重复面板功能。 - 返回数据验证:打开Grafana的「查询检查器」,查看返回的数据集是否包含2个不同的
metric系列(对应两个disposition值)。如果数据只有一个系列,问题出在数据层面;若有两个系列,继续排查面板配置。 - 重复面板配置:通过变量实现单查询生成多图表:
- 先创建变量:进入仪表盘设置→变量→添加变量,类型选「查询」,数据源对应你的数据库,查询语句为
SELECT DISTINCT disposition FROM case_closed - 进入目标面板设置→「重复」选项,选择刚创建的disposition变量,设置重复方向(垂直/水平),即可自动生成对应数量的独立图表
- 先创建变量:进入仪表盘设置→变量→添加变量,类型选「查询」,数据源对应你的数据库,查询语句为
- 面板系列设置:如果使用支持多系列的面板(如Graph),检查「显示」选项中是否开启「拆分图表」或配置「系列覆盖」,确保每个系列对应独立子图表。
- 数据存在性验证:确认当前时间范围内两个disposition都有有效数据,避免因某类disposition无数据导致只显示单图表。
内容的提问来源于stack exchange,提问作者Konstantin Lastochkin
相关产品推荐
相关产品推荐

