grafana - 将单独的信号流合并到一个表中,并为每个时间间隔的每个信号提供一个聚合值
问题描述
我有一个 InfluxDB 为每次测量分别从设备接收数据点,即对于 GPS 位置,纬度/经度/高度是三个不同的流,必须单独查询。我无法更改应用程序的这一部分。
现在我想在 Grafana 中创建一个简单的表,显示每个时间戳的组合 GPS 数据集。我设法将所有这些信号合并到一个表中,但现在每个信号都是它自己的行:
我的查询如下所示:
SELECT
median(Latitude) as "Lat",
median(Longitude) as "Long",
median(Altitude) as "Alt",
median(TheSpeed) as "Speed"
FROM
(SELECT value as "Latitude" FROM "signal-1" WHERE $timeFilter AND deviceId =~/$DeviceID/),
(SELECT value as "Longitude" FROM "signal-2" WHERE $timeFilter AND deviceId =~/$DeviceID/),
(SELECT value as "Altitude" FROM "signal-5" WHERE $timeFilter AND deviceId =~/$DeviceID/),
(SELECT value as "TheSpeed" FROM "signal-4" WHERE $timeFilter AND deviceId =~/$DeviceID/)
WHERE $timeFilter
GROUP BY time(1s)
如何将四个单独的信号合并到一个表格行中?
谢谢你的帮助,我被困在这上面了。
解决方案
我找到了解决方案:
像这样更改查询:
SELECT
median(value)
FROM
(SELECT value FROM "signal-1" WHERE $timeFilter AND deviceId =~/$DeviceID/),
(SELECT value FROM "signal-2" WHERE $timeFilter AND deviceId =~/$DeviceID/),
(SELECT value FROM "signal-5" WHERE $timeFilter AND deviceId =~/$DeviceID/),
(SELECT value FROM "signal-4" WHERE $timeFilter AND deviceId =~/$DeviceID/),
WHERE $timeFilter
GROUP BY time($timegap), "description"
FILL(previous)
并将表格格式化为时间序列(而不是“表格”)并使用“描述字段”作为别名。
我有点惊讶没有人回答这个问题,回想起来这似乎是一个菜鸟问题。:(
推荐阅读
- twilio - 获取使用通知 api 发送的短信
- linux - gcc:错误:无法识别的命令行选项
- .htaccess - apache2 config 将文件夹路径包含在 URL 中
- hibernate - 在 Wildfly 中使用 infinispan 作为 2LC 时缺少 MBean 类型:javax.cache:type=CacheStatistics
- c# - WCF 服务增加最大消息大小配额和配置
- java - Spring MVC 控制器方法签名中的域类型不起作用
- python - 我将如何从 html 超链接调用 azure web 应用程序?
- label - 在普罗米修斯中找到标签最多的时间序列
- java - MapStruct DTO 属性
- ubuntu - Problem adding extra loginctl seat for a Multiseat headless xserver-xorg-video-dummy driver on Ubuntu bionic 18.04?