在 Grafana 中,我们如何处理在图表/面板中返回 0 行的查询?

Posted

技术标签:

【中文标题】在 Grafana 中,我们如何处理在图表/面板中返回 0 行的查询?【英文标题】:In Grafana, how do we deal with queries that return 0 rows in a chart/panel? 【发布时间】:2022-01-12 07:30:34 【问题描述】:

我遇到了一个可能是自己造成的问题,但我是个菜鸟,我仍然在我继承的这个仪表板上磕磕绊绊。

我们使用的是 Grafana 8.1.5。我继承了一个仪表板,其面板显示此错误消息:

“从数据帧转换时无法将长系列转换为宽系列:无法转换为宽系列,输入具有空时间值”错误。

我想我知道原因,但我不知道如何解决它。数据源来自 mysql 数据库。当我们在下拉菜单“Org”下选择“All”时,我们不会收到此错误,我们会返回 8 行,并且期望 8 行。 当我们在下拉菜单“Org”下选择一个组织(在本例中为“数据保护”)时,我们确实收到了错误,我们得到了 5 行。我认为因为 3 个查询返回 0 行,所以我们收到了这个错误。

每个饼图都有自己的 SQL 查询来获取数据。对于返回 0 行的查询,我尝试选择一些“标准选项”来修复它,但它似乎不起作用。我尝试使用 Min、Max 和“No Value”设置并输入大于 0 的值,但仍然出现此错误。 Min 和 Max 的初始值是“auto”,而“No Value”是空白的,但截图是我在弄乱它们时将它们保留为“1”。

我需要做什么才能让消息消失?该消息是良性的吗?我不应该担心它,因为看起来我们仍在打印饼图?

【问题讨论】:

【参考方案1】:

编写 SQL,返回零值记录而不是空结果。理论上零值,不会在饼图中可见,并且您仍然有数据框转换的记录,因此不会失败。

【讨论】:

【参考方案2】:

所以我不小心偶然发现了答案。发生的情况是查询返回的数据格式为“时间序列”而不是“表”。由于部分数据没有指定时间的值,所以时间值为 Null。

由于为 Null,图表返回此错误消息。解决方法是选择“表格”作为格式。那么图表将不关心时间值是否为 Null 并且丢失的数据在图例中显示为 0 并且我们不再收到错误消息。

【讨论】:

以上是关于在 Grafana 中,我们如何处理在图表/面板中返回 0 行的查询?的主要内容,如果未能解决你的问题,请参考以下文章

使用 MySQL 的 Grafana 仪表板:我应该如何处理“%Y%m%d%H%i%s”的时间戳以用作面板的时间列?

使用MVVM框架时,如何处理在页面动态渲染完之后需要发生的事件呢?

GraphQL:如何处理在自己的类型定义中引用类型?

Node.js:如何处理在字典中查找同名的不同城市?

如何处理在源代码中找不到 OpenCV

如何处理在域模型中没有表示的查询?