从数据到仪表盘——DolphinDB + Grafana 搭建工业物联网实时监控

前几篇我们分别解决了三个问题:数据存储、批处理、实时流计算。但数据价值除了体现在计算结果本身,更需要被直观地看到,也就是今天要聊的主题------可视化。

先回顾一下我们前面几篇做了什么事:

实时计算的价值不仅在于快速产出结果,更在于将结果以直观、可交互的方式呈现,帮助运维人员实时掌握设备运行状态并快速定位异常。今天作为本系列收官篇,要解决的核心问题是:数据怎么变成可视化的监控面板?

本篇我们采用 Grafana。Grafana 是常用的开源可视化与监控平台,配合 DolphinDB Grafana 数据源插件,可以直接查询流表、实时计算结果表或物化视图中的数据,构建支持自动刷新、趋势分析和告警联动的监控仪表盘。

今天就结合两个我在实验中跑通的案例,带大家从零搭建一个物联网可视化监控面板。

前置准备

我的实验环境如下,供参考:

组件 版本
Grafana 13.2.0
DolphinDB Server 3.00.5
数据源插件 dolphindb-datasource-next

配置步骤简述:

  1. 从 Grafana 官网下载安装开源版本
  2. 将 dolphindb-datasource-next 文件解压到 Grafana 插件目录Windows: <grafana 安装目录>\data\plugins\Linux: /var/lib/grafana/plugins/
  3. 在 custom.ini 中配置 allow_loading_unsigned_plugins = dolphindb-datasource-next
  4. 重启 Grafana,在 Data sources 中添加 DolphinDB 数据源,填写地址和认证信息

完整配置教程可点击 https://github.com/dolphindb/grafana-datasource-next/blob/main/README.zh.md 参考 github 文档。。

DolphinDB配置界面

案例一:实现设备指标的采集监控和展示

第一个案例来自 DolphinDB 官方教程《实现设备指标的采集监控和展示》,用 Telegraf 采集系统磁盘和运行时间数据,存入 DolphinDB 后用 Grafana 展示。

流表订阅与数据写入设计

首先创建分布式数据库 dfs://telegraf,包含两张表:disk(磁盘使用情况)和 system(系统运行时间)。

在这个案例中,外部数据源通过 API 或 Telegraf 插件写入分布式表 disk 和 system。今天我们重点关注数据写入后如何可视化展示:

bash 复制代码
// 加载分布式表
dfs_disk = loadTable("dfs://telegraf", "disk")
dfs_system = loadTable("dfs://telegraf", "system")

Grafana 通过 DolphinDB 数据源直连查询这两张表,在 Panel 中执行 SQL 即可获取数据。

Grafana 查询配置

在 Grafana Dashboard 中新建 Panel,选择 DolphinDB 数据源,输入查询语句:

bash 复制代码
dfs_disk = loadTable("dfs://telegraf","disk")
select timestamp,avg(total),avg(used),avg(free),avg(used_percent) from dfs_disk group by timestamp 

这条 SQL 把三台主机的磁盘数据按时间戳聚合,得到整体的磁盘使用趋势。

磁盘总容量、已用容量、可用容量及使用率随时间变化的趋势图

鼠标点击想要具体查看的指标,滑动选取时间间隔,即可非常方便的查询磁盘具体情况。

磁盘已用容量随时间变化图

磁盘使用率随时间的变化趋势图

案例二:振动传感器 RMS 实时监控面板

第二个场景是旋转机械振动监测:16 台振动传感器,每台以 1ms 间隔采集加速度数据,系统实时计算 RMS(有效值)并判断是否超限。

这个案例在第三篇(流计算)中已经实现,当时我们创建了流计算链路:

  • vibration_raw 接收原始加速度数据
  • 时序聚合引擎每秒计算 RMS,输出到 vibration_rms

现在要做的是:把可视化表的数据搬到 Grafana 面板上。

查询配置

面板1:单设备 RMS 实时曲线

bash 复制代码
select * from vibration_rms where deviceID='deviceID_1'

选择 Time series 图表类型,X 轴用 timestamp,Y 轴用 rms。数据会随着流表持续写入而自动刷新。

查看设备1的RMS值随时间的变化

面板2:所有设备最新 RMS 状态

bash 复制代码
select * from vibration_rms 
context by deviceID 
csort timestamp desc 
limit 1

用 Bar gauge 或 Table 面板展示,可以快速看到每台设备当前的 RMS 值。

查看每台设备最新的RMS值

搭建完整 Dashboard

把以上 Panel 组合到一个 Dashboard 中:

小结

回顾这个系列的四篇文章,我们把物联网数据处理的全链路走了一遍:

篇目 主题 核心关注点
第一篇 数据建模与接入 1万传感器、日增3000万条数据,怎么存
第二篇 批计算 存下来之后,怎么算出业务指标
第三篇 流计算 数据一到就要发现,怎么实时告警
第四篇(本篇) 可视化 结果怎么呈现,怎么变成监控面板

可视化是数据价值的最终呈现环节。通过 Grafana + DolphinDB 的组合,我们可以快速搭建工业物联网监控面板:流表数据实时刷新、历史数据趋势回放、多设备对比分析------覆盖了从实时监控到历史分析的全场景。

下一步,你可以在自己的环境中动手尝试使用 Grafana 进行数据可视化,探索更多功能!数据有了、面板有了,接下来就看你怎么让这些数据真正服务于生产运维了。

相关推荐
智圣新创011 小时前
教育数据要素流通刚需下 智圣新创高校数据中台解决方案的全域建设落地框架
大数据·人工智能·物联网
DS小龙哥2 小时前
从呼吸心率到离床报警:60G雷达睡眠仪全栈开发实录(硬件+MQTT+小程序)DIY一台全功能睡眠监护仪
stm32·单片机·嵌入式硬件·物联网·小程序·智能家居
LiuYanG4 小时前
MQTT 客户端反复重连怎么办?Spring Boot 接 EMQX 断线重连踩坑实录
spring boot·物联网
常州晟凯电子科技6 小时前
sigmaStar SSC8836Q/SSC8826Q开发笔记之环境搭建和SDK编译
笔记·嵌入式硬件·物联网·视频编解码
沐欣工作室_lvyiyi6 小时前
基于ML307A物联网通信技术在智能家居中的应用研究(论文+源码)
物联网·智能家居·ml307a 4g通信模块
华允物联-HUAIOT17 小时前
LoRa通信距离一般多远?影响因素与实际测试方法
物联网
YCOSA20251 天前
雨晨 Windows 11 IoT 企业版 Edge 轻装 VCDX 29680.1000
windows·物联网
lzqrzpt1 天前
临沂LED驱动电源工程选型标准与工艺对比解析
python·单片机·嵌入式硬件·物联网
microrain1 天前
权限改了,接口立刻生效,菜单要等重新登录:SagooIoT 权限体系的四道闸门
物联网·golang·开源·sagooiot
悟天特斯1 天前
AI驱动的楼宇节能:从“经验省电“到“算法能效“的进化之路
人工智能·物联网