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

GreptimeDB与Grafana联动异常:查询结果自动求和需拆分cpu/mem指标

GreptimeDB + Grafana 时间序列面板多指标展示问题解决

环境组件

  • Grafana 9.5.15
  • GreptimeDB 最新版本
  • 通过 Prometheus 插件连接

问题详情

GreptimeDB 表结构

CREATE TABLE IF NOT EXISTS "system" (
  "host" STRING NULL,
  "ts" TIMESTAMP(3) NOT NULL,
  "cpu" DOUBLE NULL,
  "mem" DOUBLE NULL,
  TIME INDEX ("ts"),
  PRIMARY KEY ("host")
)

现有数据

Time   cpu  mem
12345  2000 8000
45467  2000 10000

当前异常表现

在 Grafana 中执行查询语句 system 后,所有数值字段被自动求和,时间序列面板仅显示一条汇总线,输出结果:

Time   Value
12345  10000
45467  12000

预期效果

分别展示 cpu 和 mem 两个指标的原始数据,时间序列面板呈现两条独立曲线,输出结果:

Time   cpu  mem
12345  2000 8000
45467  2000 10000

解决方案

由于使用 Prometheus 插件连接 GreptimeDB,直接查询表名会默认对所有数值字段执行聚合求和。要实现多指标独立展示,可通过以下方式处理:

方法1:拆分独立查询

创建两个单独的查询语句,分别指定要获取的指标:

  • 查询 cpu 数据:system{__name__="cpu"}
  • 查询 mem 数据:system{__name__="mem"}

若 Grafana 支持直接执行 GreptimeDB SQL,也可使用:

  • 查询 cpu:SELECT ts, cpu FROM system
  • 查询 mem:SELECT ts, mem FROM system

方法2:单查询返回多标签序列

通过 SQL 语句将不同指标转换为带标签的格式,让 Grafana 自动区分序列:

SELECT ts, cpu AS value, 'cpu' AS metric FROM system
UNION ALL
SELECT ts, mem AS value, 'mem' AS metric FROM system

查询结果会携带 metric 标签,Grafana 时间序列面板会基于该标签生成两条独立曲线。

方法3:调整面板聚合设置

检查 Grafana 时间序列面板的数据处理设置,确保未开启强制聚合规则,将格式设置为 Time series,保证原始字段数据被正确解析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 05:40:17