Skip to content

监控与告警

监控与告警位于 platform 路由域,面向服务运行态、历史趋势、WebSocket 连接、告警规则、告警事件与通知闭环。


服务监控

「服务监控」(/system/monitor)接口前缀为 /api/monitor,权限码为 system:monitor:view

接口说明
GET /api/monitor当前监控快照
GET /api/monitor/timeseries进程内最近 1 小时时序数据
GET /api/monitor/history?range=...持久化历史趋势,按时间范围分桶聚合
GET /api/monitor/wsWebSocket 实时连接指标
GET /api/monitor/streamSSE 实时推送监控指标

SSE 首帧推送完整 metrics、全量 seriesws 指标;后续采样 tick 推送 metrics:diffseries:pointws。客户端按差量深合并,避免整页轮询。

system_metric_samples 存储基础设施指标采样点,采样任务默认每分钟落库。/history 支持 1h6h24h7d30d 范围,每个范围使用不同分桶粒度并返回均值与峰值。

指标口径

分组指标口径单位
基础设施CPU / 内存 / 磁盘 / Swap / 负载 / 进程 CPU / 堆内存 / 事件循环延迟 / QPS / HTTP 错误率 / 网络上下行 / 磁盘读写宿主机与进程采样器即时值% · 字节/秒 · ms
基础设施日志 ERROR 频率 / 日志 WARN 频率近 5 分钟应用日志对应级别平均每分钟条数条/分钟
流程引擎健康分 / 队列积压 / 死信数 / 失败率 / 卡死数工作流引擎运维指标分 · 项 · %
支付支付失败率 / 支付卡单数 / 对账差异待处理 / 支付事件积压 / 支付回调失败率支付域告警指标源实时聚合% · 项
开放平台开放 API 错误率 / 单应用最高错误率 / 应用 Webhook 失败率 / 自动停用订阅数开放平台告警指标源实时聚合% · 项

MONITOR_METRIC_META 声明每个指标的 scopeglobal 指宿主机或平台级口径,tenant 指按规则所属租户过滤。评估器按规则涉及的租户集合分组取快照。

日志级别频率指标

日志 ERROR / WARN 频率在 logger 的 logMethod hook 写入点由 lib/log-metrics.ts 计数,不扫描日志文件。实现特性:

  • 不依赖文件 I/O,不受日志轮转影响;
  • 按 epoch 分钟分桶保留近 5 个桶,读写时惰性淘汰;
  • 与 QPS、HTTP 错误率一样是进程内口径,多实例部署时各实例统计自身;
  • 计数失败不影响日志写入。

内置规则包括 ERROR ≥ 10 条/分持续 3 分钟(严重)和 WARN ≥ 30 条/分持续 5 分钟(警告)。此类告警事件操作列提供「查看日志」(需 system:log:files),跳转到 /system/log-files?file=app.YYYY-MM-DD.1.log&level=error

告警中心

告警中心使用独立顶级菜单,不归属于「系统运维」目录。接口前缀为 /api/monitor-alerts,告警引擎由定时任务每 30 秒评估一次启用规则。规则达阈触发,指标恢复后自动解除;支持持续 N 分钟超阈、静默期、邮件 / Webhook / 站内信三渠道派发。

规则的“告警状态”表示当前是否已触发:ok 在页面显示“未触发”,firing 显示“告警中”;“启用状态”独立控制规则是否参与评估。停用规则会关闭该规则尚未恢复的告警事件,并清除触发态与持续超阈计时。

页面路径权限
告警概览/alerts/overviewalert:overview:list
告警规则/alerts/rulesalert:rule:listalert:rule:createalert:rule:updatealert:rule:deletealert:rule:test
告警事件/alerts/eventsalert:event:listalert:event:handlealert:event:export

通知与处理闭环

接收目标拆为 recipientUserIdsrecipientEmails。系统用户通过稳定用户 ID 投递站内信;邮件渠道在派发时读取用户当前邮箱;recipientEmails 保存群组邮箱或外部联系人地址,并与用户邮箱去重。

dispatchAlertChannels 将真实投递结果回写到事件行的 notify_status / notify_channels / notify_error / notified_at。通知状态包括:

状态含义
skipped规则没有配置任何可派发渠道
success所有已配置渠道均投递成功
partial部分渠道失败
failed全部渠道失败

事件的 handle_statuspending / acknowledged / closed)与系统判定的 statusfiring / resolved)相互独立。认领会写入处理人和确认时间;标记已处理置为 closed;撤销认领置回 pending 并清空处理备注与确认时间。acknowledged_at 只在首次响应时写入。

筛选、批量与试发

规则列表支持按名称关键词、指标、级别、启用状态与告警状态筛选,事件列表支持关键词、指标、级别、告警状态、通知状态、处理状态、规则 ID 与触发时间范围筛选。规则支持批量删除与批量启停;事件支持单条与批量处理。告警规则的「查看事件」跳转到 /alerts/events?ruleId=N

POST /api/monitor-alerts/{id}/test(权限 alert:rule:test)按规则当前渠道与接收人发送测试消息,返回派发结果;该操作不写事件表、不改规则运行态与 last_triggered_at

SEED_MONITOR_ALERT_RULES 预置基础设施容量、日志异常频率、支付、开放平台与流程引擎关键失效信号,默认走站内信发给管理员用户 ID 1。

Built with VitePress for local documentation preview.