grafana 可以绘制字符串类型的 influxdb 时间序列吗?

Can grafana plot a influxdb time series of type string?

我的恒温器在 influxdb 中有一个数据集,其模式为字符串格式("off"、"hot water" 或 "central heating")

我想在 grafana 中绘制两条线,一条用于 "hot water",一根用于 "central heating",紧挨着当前温度。这些集合的可能值只有“1”和“0”。

这似乎是(目前)在influxdb中做不到的(https://github.com/influxdata/influxdb/issues/8627),所以我希望可以在grafana中进行这种转换。

有没有办法在 grafana 中进行这种转换?

数据集:

name: boiler indicator
time                value
----                -----
1539706320366630912 off
1539706380315879936 off
1539706440368925184 off
1539706500364559872 off
1539706560358993152 off
1539706620359011840 off
1539706680363074048 off
1539706740348193024 hot water
1539706800366929920 off
1539706860366509056 off

热水的期望结果:

name: hot water
time                value
----                -----
1539706320366630912 0
1539706380315879936 0
1539706440368925184 0
1539706500364559872 0
1539706560358993152 0
1539706620359011840 0
1539706680363074048 0
1539706740348193024 1
1539706800366929920 0
1539706860366509056 0

不,Grafana 只显示您的 TSDB 提供的数据。 InfluxDB 结构的变通方法;尝试:

SELECT count(*) 
FROM "hot water"
WHERE "value"='hot water' AND time>NOW()-10m 
GROUP BY time(1m) fill(0)

由于按字段筛选需要table全扫描,所以无效。对于大型数据集,它可能会很慢。

如果你想有一个有效的查询和更容易的 Grafana 可视化,你应该改变你的 InfluxDB 结构 -> 使用数字字段值 + 最终使用字符串标签。