Skip to content

GreptimeDB Grafana 插件升级:支持原生告警与完整时间宏

GreptimeDB Grafana 插件引入 Go 后端,查询链路改为服务端代理。面板 SQL 可直接用于 Grafana 原生告警,时间宏改在服务端解析展开,并新增针对 OTel 数据的自动填列开关。
GreptimeDB Grafana 插件升级:支持原生告警与完整时间宏
本页内容

本次更新为插件引入了 Go 后端:查询链路由浏览器直连 GreptimeDB,改为经服务端代理请求 /v1/sql 接口。改动的直接动因是告警。Grafana 在服务端评估告警规则,拿不到前端的插值逻辑,因此面板里能跑通的 SQL 一直无法用于告警。后端化之后,Grafana 原生告警(Alerting)可用,时间宏改在服务端解析展开,前后端数据结构也得到统一。同时新增了针对 OpenTelemetry(OTel)规范的自动填列开关,简化 Logs 与 Traces 的字段配置。

兼容升级:

新版本兼容原有架构。已有的 SQL 面板、Query Builder 配置,以及 Table、Time Series、Logs 和 Traces 查询视图都继续可用,既有看板无需改动。


核心能力提升

1. 支持 Grafana 原生告警(Alerting)

过去由于前端计算的限制,面板 SQL 无法直接触发告警。升级后:

  • 重构前:面板 SQL 无法用于创建 Grafana 告警。
  • 重构后:面板中的同一条 SQL(包含时间宏)可以直接用于创建 Grafana 告警规则。

使用 $__timeFilter 时间宏的面板 SQL 直接作为 Grafana 告警规则

$__timeFilter 的面板 SQL,直接用作告警规则的判定条件。

需要注意的是,告警查询的时间范围应当使用时间宏表达,不要写死为固定的起止时间,否则规则每次评估都会重复查询同一段历史数据。

2. 时间宏改为服务端展开

以往 $__timeFilter 等宏由浏览器端插值计算;现在改由服务端解析展开,时间宏因此能在告警规则评估时生效。

以下展开式中的 <from><to><interval> 为占位符,展开时会替换为面板当前的时间范围与自适应间隔。

重点新增(常用):

  • $__timeFilter(col):展开为 col >= <from> AND col <= <to>,以查询大盘时间范围内的数据。
sql
SELECT timestamp AS timestamp, body, level, trace_id
FROM genai_conversations
WHERE $__timeFilter(timestamp)
ORDER BY timestamp DESC
LIMIT 100;
  • $__timeInterval(col):展开为 date_bin(<interval>, col),分桶宽度跟随面板自适应间隔。
sql
SELECT $__timeInterval(timestamp) AS time,
       SUM(`span_attributes.gen_ai.usage.input_tokens`) AS input_tokens
FROM opentelemetry_traces
WHERE $__timeFilter(timestamp)
GROUP BY time ORDER BY time;

其他新增:

  • $__timeFilter_ms$__fromTime_ms$__toTime_ms$__dateFilter$__dateTimeFilter$__interval_s

原有宏(仍可用,改为服务端展开):

  • $__fromTime / $__toTime:起止时间字面量,适合手写复杂条件。
  • $__interval:面板自适应间隔值(如 1 minute),用于控制分桶宽度。

宏展开时,timestamp 等保留字会自动加上双引号,避免列名与 SQL 关键字冲突。


查询与配置体验优化

1. 新增 Use OTel 自动填列开关

针对 OpenTelemetry 数据的查询,插件在数据源设置及 Logs/Traces Builder 中新增了 Use OTel 选项及版本选择:

  • 开启:自动按照 GreptimeDB 的标准 OTel 风格列名(如 trace_idspan_nameduration_nano 等)填充字段,无需手动输入。
  • 关闭:若使用自定义表结构,可继续按需手动配置字段。

2. Ad-hoc Filter 注入

  • Query Builder:Ad-hoc 变量会自动注入为标准 WHERE 条件,支持 table.column 跨表限定,并自动忽略目标表与当前面板不一致的过滤规则。
  • SQL Editor:不注入 Ad-hoc filter,不改写手写 SQL。

3. 预置 Demo Dashboard

数据源 Dashboards 页新增了预置面板,支持一键导入:

  • GreptimeDB - OTel Min Demo
  • GenAI Observability

GenAI Observability 看板,包含 token 用量、成本、错误率与延迟等面板

写入示例数据后的 GenAI Observability 看板。

运行建议: 导入后的面板默认不含数据。如需体验完整的图表效果,建议配合官方示例项目 demo-scene/genai-observability 向 GreptimeDB 写入模拟数据。


安装与配置说明

插件当前最新版本为 v3.0.3。具体的安装步骤、解压配置及 Docker 镜像的使用说明,请直接参考 GitHub Readme Installation 指南

需要注意的是,插件现在包含后端进程,从旧版本升级时,替换插件目录后需要重启 Grafana 才会生效,既有看板无需改动。

Stay in the loop

加入我们的社区