Skip to content

监控与通知机制

**本文引用的文件** - [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)

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能考量
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本文件面向DeviceMate项目的运维与开发团队,提供一套可落地的监控与通知机制方案。内容覆盖应用监控、基础设施监控、业务监控与用户体验监控四个维度;明确各类指标定义与采集方式;给出告警规则配置建议(阈值、级别、抑制与升级);梳理通知渠道管理策略(邮件、短信、IM、电话);并设计监控仪表板与日志分析实践,帮助快速构建稳定可靠的监控告警闭环。

项目结构

DeviceMate采用前后端分离架构:

  • 前端:基于 uni-app 的多端应用(H5/小程序/App),使用 uView UI 组件库与 Vuex 状态管理。
  • 后端:微服务架构,包含网关、认证中心、业务服务(设备、仓库、工作流等)、公共模块与任务调度模块,统一通过 Nacos 注册与配置中心、Spring Boot Actuator 暴露监控端点。

图表来源

章节来源

核心组件

  • 前端消息与通知
    • 消息页面:分页加载消息列表、标记已读、打开弹窗查看详情。
    • 通知组件:横幅滚动通知与行级滚动通知,支持点击、关闭、更多等事件。
    • 计量表单:设备计量数据录入与保存。
    • Vuex Store:设备编码、编号、图片地址等状态管理。
  • 后端监控暴露
    • 网关与各服务通过 Spring Boot Actuator 暴露 /actuator 端点,便于 Prometheus/Grafana 等采集。
    • Nacos 注册中心用于服务发现与健康检查。
  • API 与数据交互
    • 设备主数据 API 提供设备计量查询等能力,支撑前端展示与业务监控。

章节来源

架构总览

下图展示从前端到后端的服务调用链路与监控端点暴露位置:

图表来源

详细组件分析

消息与通知组件

  • 功能职责
    • 分页加载消息列表,支持下拉刷新与上拉加载。
    • 打开消息详情弹窗,标记已读后刷新列表。
    • 未读消息在底部导航栏显示红点提示。
  • 关键流程
    • 加载数据:调用消息分页接口,按页码与固定页大小获取。
    • 标记已读:提交消息ID集合至已读接口。
    • 红点逻辑:根据是否存在未读消息决定是否显示红点。

图表来源

章节来源

计量表单组件

  • 功能职责
    • 展示设备计量项(上次读数、当前读数、累计读数、上限值)。
    • 支持编辑与保存,仅具备相应角色权限时可编辑。
  • 关键流程
    • 页面加载:根据设备编号获取计量列表。
    • 保存:提交计量数据集合至后端接口。

图表来源

章节来源

API 与监控端点

  • 设备主数据 API
    • 提供设备计量查询、批量查询等接口,支撑前端展示与业务监控。
  • Actuator 端点暴露
    • 网关与设备服务均在 bootstrap.yml 中开启 /actuator 端点暴露,便于外部监控系统采集指标(如健康检查、JVM、HTTP 请求统计等)。

图表来源

章节来源

依赖关系分析

  • 前端依赖
    • 消息页面依赖 $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、接口、耗时、状态码、错误信息)。
  • 分布式追踪:为关键链路打点,记录请求流转与耗时。
  • 性能分析:结合指标与日志定位热点接口与慢查询。