Grafana 仪表板变量 - 在基于查询的变量中处理 NULL 值

Posted

技术标签:

【中文标题】Grafana 仪表板变量 - 在基于查询的变量中处理 NULL 值【英文标题】:Grafana dashboard variable - handling NULL values in Query-based variable 【发布时间】:2019-12-11 11:18:41 【问题描述】:

我基于 mysql 查询创建了一个 Grafana 仪表板变量(启用了多选):

SELECT DISTINCT(my_field) from my_table

该字段有大约 12 个选项,其中一个是 NULL 值。在编辑仪表板小部件时,我包含一个类似于以下内容的 SQL 约束:

... WHERE my_field IN ($my_variable)

这几乎可以正常工作,除了 NULL。 Grafana 正在将 NULL 转换为 '',而 IN (...) 语句中无论如何都不支持 NULL。

关于如何处理这个以使用 NULL 的任何建议?

【问题讨论】:

【参考方案1】:

你可以扩展条件:

WHERE my_field IN ($my_variable) OR my_field IS NULL;

Grafana 正在将 NULL 转换为 ''

WHERE COALESCE(my_field, '') IN ($my_variable)

【讨论】:

谢谢,这种方法的问题是在仪表板中并不总是选择 NULL 作为变量的选项。如果在仪表板下拉列表的选项列表中选择了空值,我基本上需要 IS NULL 子句是有条件的。 @radicand 还有其他选择

以上是关于Grafana 仪表板变量 - 在基于查询的变量中处理 NULL 值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 grafana 仪表板中查询 influxdb 以创建模板变量

尽管查询错误,但 Grafana 变量部分显示值的预览

在查询 where 子句中使用 Grafana 文本框面板变量

如何在 Grafana 仪表板中将显示名称设置为自定义变量?

在 MYSQL 查询中使用变量 Grafana 返回列名而不是指标

如何在 Grafana 中进行 Simple-JSON 变量模板查询?