如何指示 Grafana 中 X 时间段内没有查询到任何数据?

问题描述 投票:0回答:1

我有来自 x10 个不同传感器的温度时间序列数据,存储在 InfluxDB (v1.8) 数据库中,并使用条形表显示“当前”值。

传感器应该大约每小时获得一个新值,但我想要某种方式来显示传感器是否发生故障(例如,假设 1 天没有任何数据)。问题是数据总是被显示,无论它有多旧(如预期,因为我选择

LAST
):

我尝试在 InfluxDB 中使用

WHERE time>now() - “some time”
子句,但现在相关值已完全删除:

解决这个问题有什么好方法吗? (理想情况下,同时仍然利用我正在使用的

GROUP_BY
功能,这很好)

database grafana influxdb
1个回答
0
投票

如果我假设您需要一些“标志”来帮助您控制 UI,那么我建议您在查询中包含一个 case 表达式,如下所示:

select
  friendly_name
, last(temperature) as temperature
, MAX(CASE WHEN timestamp < NOW() - 1h THEN 1 ELSE 0 END) AS flag
from your_table
group by
  friendly_name

nb 我不能 100% 确定您的数据库所需的语法,但希望您可以轻松遵循。一旦计算出该标志,您就可以选择为任何不活动的传感器输出一些警告。

btw:当在聚合函数内部使用 case 表达式 时,它被称为“条件聚合”

© www.soinside.com 2019 - 2024. All rights reserved.