从数据到仪表盘——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 插件写入分布式表 disksystem。今天我们重点关注数据写入后如何可视化展示:

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 进行数据可视化,探索更多功能!数据有了、面板有了,接下来就看你怎么让这些数据真正服务于生产运维了。

相关推荐
川石课堂软件测试1 小时前
自动化测试常见的异常处理
python·jmeter·mysql·docker·容器·单元测试·grafana
虎王物联1 小时前
Nginx反向代理实现IoT设备HTTPS接入:从证书配置到MQTT over WebSocket实战
运维·物联网·nginx·https
码视野2 小时前
基于 Vue3 + Element Plus 的【基于物联网与深度学习的智慧工业园区能耗监测与光储充一体化微电网协同调度系统】设计与实现(附完整源码与PRD)
前端·人工智能·深度学习·物联网·vue3
hongmai6668882 小时前
竖插专用:ESP8684-WROOM-07-H2X模组上手记录
笔记·单片机·嵌入式硬件·物联网·risc-v
飞凌嵌入式17 小时前
工业控制+AI视觉齐发,飞凌嵌入式将亮相国际物联网展·深圳站
人工智能·物联网
老孙讲技术18 小时前
老板说「网页上嵌个监控就行」?黑屏三小时后我才搞懂:播放器要的不是 accessToken
物联网·音视频开发·小程序·云开发
老孙讲技术18 小时前
监控刷了 200 条动检,漏掉一次紧急按钮:养老 SaaS 的事件桥接与 P0/P1 分级
物联网·音视频开发·小程序·云开发
门思科技19 小时前
LoRaWAN Regional Parameters:为什么 CN470 和 EU868 的频点数不同
python·物联网
TDengine (老段)21 小时前
TDengine 如何支撑金隅集团水泥业务的能源精细化管控
大数据·数据库·物联网·能源·时序数据库·tdengine·涛思数据