基于华为云CodeArts构建实时系统资源监控看板

举报
yd_217436577 发表于 2026/10/16 10:44:21 2026/10/16
【摘要】 系统资源看板是一个实时监控系统资源使用状况的 Web 应用,采用暗色科技风格设计,数据每 2 秒自动刷新。通过 WebSocket 实时推送系统数据,无需手动刷新页面即可看到最新的资源使用情况。

基于华为云CodeArts构建实时系统资源监控看板

一、项目背景

在云原生开发和运维场景中,实时掌握服务器资源使用状况是保障业务稳定运行的基础。传统的监控方案往往依赖重量级的监控系统(如Prometheus+Grafana),部署成本高、学习曲线陡峭。对于开发者个人环境或轻量级运维场景,一个开箱即用、零配置启动的系统资源看板显得尤为实用。

本文介绍如何利用华为云CodeArts代码智能体,从需求描述到代码生成、项目部署、作品发布,全流程构建一个实时系统资源监控看板。该看板支持CPU使用率与温度监控、GPU状态显示、内存/磁盘/网络实时图表,以及进程Top5排行,采用暗色科技风格设计,数据每2秒自动刷新。

二、功能设计

看板包含以下七大功能模块:

1. 系统信息卡片

顶部信息栏展示主机名、操作系统类型与发行版(如openEuler 22.03 LTS)、内核版本、系统运行时长、CPU型号和核心数等基础信息,让运维人员一目了然地了解服务器基本情况。

2. CPU监控

实时CPU使用率折线图采用Chart.js渲染,保留最近30个数据点,曲线平滑过渡。同时读取Linux系统下/sys/class/thermal/thermal_zone*路径获取CPU温度数据,并展示系统负载均值(1分钟/5分钟/15分钟),帮助判断系统繁忙程度。

3. GPU监控

通过执行nvidia-smi命令采集GPU信息,包括GPU型号、使用率、显存已用/总量、GPU温度。使用进度条配合数字双重展示,直观反映GPU负载状况。在无GPU环境下自动显示"未检测到GPU",避免误导。

4. 内存监控

展示内存总量、已用、可用(以GB为单位),使用Chart.js环形图(doughnut)可视化使用率,并附带Swap分区信息,全面反映内存使用状况。

5. 磁盘监控

遍历系统各挂载分区,以进度条形式展示每个分区的总量、已用、可用空间和使用率。同时通过读取/proc/diskstats计算2秒差值,实时展示磁盘读写速率。

6. 网络I/O

从/proc/net/dev读取网络接口数据,计算2秒差值得到上行和下行速率,以实时曲线展示最近30个数据点。速率数值自动格式化为KB/s或MB/s,方便阅读。

7. 进程Top5

通过读取/proc/*/stat和/proc/*/status采集各进程的CPU和内存占用,按CPU使用率排序展示前5个进程,显示PID、进程名、CPU占用百分比和内存占用百分比。

三、技术架构

本项目采用前后端分离的轻量级架构:

层级 技术 说明
前端展示层 HTML + CSS + JavaScript + Chart.js 原生三件套,CDN引入图表库,无框架依赖
后端服务层 Node.js + Express + ws 内置os模块采集数据,WebSocket实时推送
通信机制 WebSocket + REST API 每2秒推送全量数据,首次加载走REST
数据采集层 os模块 + /proc + nvidia-smi 直接读取系统接口,零外部依赖

数据流:前端建立WebSocket连接 → 后端每2秒采集系统数据 → JSON推送至前端 → 更新所有图表和数值

四、界面设计

看板采用暗色科技风格,适合长时间盯屏的运维场景:

  • 配色:背景#0f172a,卡片#1e293b,CPU蓝#3b82f6,GPU粉#ec4899,内存绿#10b981,磁盘橙#f59e0b,网络紫#8b5cf6
  • 布局:卡片式,圆角12px,CSS Grid响应式(桌面3列/平板2列/手机1列)
  • 动效:数字滚动动画 + 图表平滑过渡

五、开发流程

本项目通过华为云CodeArts代码智能体完成全部开发工作:

  1. 需求描述:向CodeArts描述功能模块、技术栈、界面风格,自动生成任务计划
  2. 代码生成:依次创建package.json、server.js(310行)、index.html(103行)、style.css(242行)、app.js,共约1000行代码
  3. 依赖安装与启动:自动npm install,检测端口,启动服务,验证API
  4. GitCode仓库:OAuth授权,创建仓库,推送代码
  5. 作品发布:生成封面截图、架构图、详情文章,发布到华为云作品展览馆

六、关键代码解析

CPU使用率:两次os.cpusinfo()差值计算各核心使用率

CPU温度:遍历/sys/class/thermal/thermal_zone*,读取temp文件除以1000转摄氏度

GPU数据:nvidia-smi --query-gpu=name,utilization.gpu,memory.used,memory.total,temperature.gpu --format=csv,noheader,nounits

网络速率:/proc/net/dev两次读取差值除以时间间隔

WebSocket推送:每2秒采集全量数据,JSON序列化广播给所有客户端

七、部署与使用

git clone https://gitcode.com/sdf2342/sys-dashboard.git
cd sys-dashboard
npm install
npm start

八、总结

本项目展示了如何利用华为云CodeArts代码智能体,从自然语言需求描述到完整可运行项目的全流程开发能力。整个开发过程无需手动编写一行代码,CodeArts根据需求自动生成、安装依赖、启动验证,大幅提升了开发效率。

系统资源看板涵盖了系统监控的核心场景:CPU(含温度)、GPU、内存、磁盘、网络、进程,技术栈简洁,零配置启动,适合个人开发者和小团队快速部署使用。暗色科技风格的界面设计也使得长时间监控不会造成视觉疲劳。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。