Featured image of post 监控数据是怎么获取推送到前端的?

监控数据是怎么获取推送到前端的?

该监控系统通过客户端、服务端、前端协同实现实时数据采集与展示。客户端采用oshi框架实时采集主机CPU、内存、磁盘等硬件系统数据,经Spring Quartz定时任务(如每30秒)收集后,以JSON格式通过HTTP请求上报至服务端。服务端接收数据并存入InfluxDB时序数据库,同时利用Redis缓存优化数据获取效率。前端通过WebSocket与服务端建立连接,实时接收监控数据并使用图表库(如ECharts)渲染展示,同时支持通过API从InfluxDB查询历史数据进行可视化呈现。

1. 客户端数据采集与上报

  • 使用​​oshi框架​​实时采集监控主机的硬件和系统数据(CPU、内存、磁盘等)

  • 通过​​Spring Quartz​​定时任务定期(如每30秒)收集数据

  • 采集的数据以JSON格式存储了服务端连接信息

  • 采用​​HTTP请求​​将监控数据上报到服务端

2. 服务端数据处理与存储

  • 服务端接收客户端上报的监控数据

  • 将数据存入​​InfluxDB​​时序数据库(高效存储时间序列监控数据)

  • 使用​​Redis​​进行缓存优化,提高数据获取效率

3. 前端数据获取与展示

  • ​WebSocket连接​​:服务端与前端建立WebSocket连接

  • ​实时推送​​:当有新的监控数据时,服务端主动通过WebSocket推送到前端

  • ​图表渲染​​:前端接收到数据后,使用图表库(可能是ECharts等)实时更新监控数据图表

  • ​历史查询​​:前端也可通过API从InfluxDB获取历史数据进行展示

最后更新于 2025-06-29 16:55 UTC