Appearance
监控与通知机制
**本文引用的文件** - [AGENTS.md](file://app/devicemate-app/AGENTS.md) - [common.js](file://app/devicemate-app/utils/common.js) - [index.vue](file://app/devicemate-app/pages/message/index.vue) - [u-notice-bar.vue](file://app/devicemate-app/uview-ui/components/u-notice-bar/u-notice-bar.vue) - [u-row-notice.vue](file://app/devicemate-app/uview-ui/components/u-row-notice/u-row-notice.vue) - [meter.vue](file://app/devicemate-app/modules/equipment/meter.vue) - [index.js](file://app/devicemate-app/store/modules/index.js) - [equipment.js](file://app/devicemate-app/store/modules/equipment.js) - [bootstrap.yml(网关)](file://lemes-cloud/lemes-gateway/src/main/resources/bootstrap.yml) - [bootstrap.yml(设备服务)](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-device/lemes-service-dm-device-server/src/main/resources/bootstrap.yml) - [DeviceMainApi.java](file://lemes-cloud/lemes-business-devicemate/lemes-service-dm-common/lemes-service-dm-common-common/src/main/java/com/lenovo/lemes/service/dm/common/client/api/DeviceMainApi.java) - [LemesAuthApplication.java](file://lemes-cloud/lemes-auth/src/main/java/com/lenovo/lemes/auth/LemesAuthApplication.java)目录
简介
本文件面向DeviceMate项目的运维与开发团队,提供一套可落地的监控与通知机制方案。内容覆盖应用监控、基础设施监控、业务监控与用户体验监控四个维度;明确各类指标定义与采集方式;给出告警规则配置建议(阈值、级别、抑制与升级);梳理通知渠道管理策略(邮件、短信、IM、电话);并设计监控仪表板与日志分析实践,帮助快速构建稳定可靠的监控告警闭环。
项目结构
DeviceMate采用前后端分离架构:
- 前端:基于 uni-app 的多端应用(H5/小程序/App),使用 uView UI 组件库与 Vuex 状态管理。
- 后端:微服务架构,包含网关、认证中心、业务服务(设备、仓库、工作流等)、公共模块与任务调度模块,统一通过 Nacos 注册与配置中心、Spring Boot Actuator 暴露监控端点。
图表来源
- index.vue:20-79
- u-notice-bar.vue:70-101
- u-row-notice.vue:155-209
- meter.vue:1-98
- index.js:1-12
- equipment.js:2-34
- bootstrap.yml(网关):82-91
- bootstrap.yml(设备服务):31-38
- DeviceMainApi.java:1-46
- LemesAuthApplication.java:1-18
章节来源
核心组件
- 前端消息与通知
- 消息页面:分页加载消息列表、标记已读、打开弹窗查看详情。
- 通知组件:横幅滚动通知与行级滚动通知,支持点击、关闭、更多等事件。
- 计量表单:设备计量数据录入与保存。
- Vuex Store:设备编码、编号、图片地址等状态管理。
- 后端监控暴露
- 网关与各服务通过 Spring Boot Actuator 暴露 /actuator 端点,便于 Prometheus/Grafana 等采集。
- Nacos 注册中心用于服务发现与健康检查。
- API 与数据交互
- 设备主数据 API 提供设备计量查询等能力,支撑前端展示与业务监控。
章节来源
- index.vue:20-79
- u-notice-bar.vue:70-101
- u-row-notice.vue:155-209
- meter.vue:1-98
- index.js:1-12
- equipment.js:2-34
- bootstrap.yml(网关):82-91
- bootstrap.yml(设备服务):31-38
- DeviceMainApi.java:1-46
架构总览
下图展示从前端到后端的服务调用链路与监控端点暴露位置:
图表来源
详细组件分析
消息与通知组件
- 功能职责
- 分页加载消息列表,支持下拉刷新与上拉加载。
- 打开消息详情弹窗,标记已读后刷新列表。
- 未读消息在底部导航栏显示红点提示。
- 关键流程
- 加载数据:调用消息分页接口,按页码与固定页大小获取。
- 标记已读:提交消息ID集合至已读接口。
- 红点逻辑:根据是否存在未读消息决定是否显示红点。
图表来源
章节来源
- index.vue:20-79
- common.js:13-33
- u-notice-bar.vue:70-101
- u-row-notice.vue:155-209
- index.js:1-12
- equipment.js:2-34
计量表单组件
- 功能职责
- 展示设备计量项(上次读数、当前读数、累计读数、上限值)。
- 支持编辑与保存,仅具备相应角色权限时可编辑。
- 关键流程
- 页面加载:根据设备编号获取计量列表。
- 保存:提交计量数据集合至后端接口。
图表来源
章节来源
API 与监控端点
- 设备主数据 API
- 提供设备计量查询、批量查询等接口,支撑前端展示与业务监控。
- Actuator 端点暴露
- 网关与设备服务均在 bootstrap.yml 中开启 /actuator 端点暴露,便于外部监控系统采集指标(如健康检查、JVM、HTTP 请求统计等)。
图表来源
- DeviceMainApi.java:1-46
- LemesAuthApplication.java:1-18
- bootstrap.yml(网关):82-91
- bootstrap.yml(设备服务):31-38
章节来源
依赖关系分析
- 前端依赖
- 消息页面依赖 $http 发起请求,依赖 Vuex Store 管理状态,依赖通知组件提供用户体验。
- 后端依赖
- 设备服务依赖公共模块 API 提供设备计量查询能力;网关负责统一鉴权与路由;认证中心提供 OAuth2 鉴权;Actuator 暴露监控端点。
- 外部集成
- Nacos 作为注册与配置中心,支撑服务发现与健康检查。
图表来源
章节来源
性能考量
- 前端性能
- 消息分页加载建议设置合理的页大小与上拉加载节流,避免频繁请求。
- 通知组件动画速度与文本宽度计算应考虑不同设备性能差异。
- 后端性能
- Actuator 指标采集频率应合理配置,避免对生产环境造成额外压力。
- 网关与服务间调用链路应启用超时与重试策略,防止雪崩效应。
故障排查指南
- 常见问题定位
- 未读消息红点不显示:检查消息分页接口返回与 Vuex 状态更新逻辑。
- 消息已读未生效:确认已读接口调用与列表刷新顺序。
- 计量表单无法保存:检查权限判断与网络请求状态码。
- 监控端点验证
- 通过 /actuator/health 检查服务健康状态。
- 通过 /actuator/metrics 查看 JVM 与 HTTP 请求指标,辅助定位性能瓶颈。
章节来源
结论
本方案以现有前端消息与通知组件、后端 Actuator 暴露端点为基础,结合 Nacos 服务治理,形成可扩展的监控与通知闭环。建议在此基础上引入统一的监控平台(如 Prometheus + Grafana)与告警系统(如 Alertmanager),完善指标体系与告警规则,持续优化用户体验与系统稳定性。
附录
监控指标定义与采集建议
- 性能指标
- 响应时间:HTTP 请求耗时分布(P50/P90/P95)。
- 吞吐量:QPS、并发连接数。
- 资源占用:CPU、内存、GC 次数与耗时。
- 可用性指标
- 服务健康:/actuator/health 状态。
- 服务可用率:成功率与错误率。
- 业务指标
- 消息读取率、计量表单保存成功率。
- 安全指标
- 登录失败次数、令牌刷新异常。
章节来源
告警规则配置建议
- 阈值设定
- 响应时间:P95 超过 2 秒。
- 错误率:接口错误率超过 1%。
- 可用率:成功率低于 99%。
- 告警级别
- P0:核心接口不可用或错误率异常。
- P1:关键功能异常或延迟升高。
- P2:一般异常或趋势预警。
- 告警抑制与升级
- 抑制:同一实例在短时间内重复告警进行合并。
- 升级:连续多次未恢复自动升级级别并通知更高级别负责人。
通知渠道管理
- 邮件通知:适用于重要变更与升级通知。
- 短信告警:适用于 P0/P1 级别紧急告警。
- 即时通讯:企业微信/钉钉机器人推送,便于快速沟通。
- 电话通知:适用于 P0 级别重大故障。
监控仪表板设计
- 关键指标展示:消息读取率、计量保存成功率、服务健康状态。
- 趋势分析:近 1 小时/1 天错误率与响应时间趋势。
- 异常检测:基于阈值与规则的异常告警面板。
- 根因分析:结合分布式追踪(后续接入)定位慢请求与错误堆栈。
日志收集与分析
- 结构化日志:统一字段格式(时间戳、服务名、请求ID、接口、耗时、状态码、错误信息)。
- 分布式追踪:为关键链路打点,记录请求流转与耗时。
- 性能分析:结合指标与日志定位热点接口与慢查询。