实现的优化

数据库表按时间分区,注意跨时间分区的处理

变更单的变更时间可能跨天,数据库表按天分区,处理时需注意

变更审计

  1. 判断已经关单和结单的变更单中哪些是有审批的?是否有关联对应计划链接?
  2. 判断上报的变更单有没有执行灰度步骤?
  3. 审计后台变更单的发布人是否已经通过了灰度考试?
  4. 判断回退的变更单有没有触发变更阻断?
  5. 分析变更单变更期间的告警的类型分布,各占比多少?
  6. 依据 change_action_type 字段含义(见 变更审计工具设计与实现 )对数据表中的每条变更操作行为进行重新清洗,生成有业务意义的 change_action_type 编号,对于源数据缺失、无法判定或无法映射 change_action_type 的情况,统一登记并上报。
  7. 为消除灰度导致的告警误告,识别变更单处于 调权灰度 的时间段 和 对应变更单时间段处于 调权灰度 时的 IP,从而拦截 调权灰度 时的告警【不需要】。产出字段:灰度模块名、灰度机器 IP 列表、灰度起始时间、灰度结束时间
  8. 告警分析维度扩充:在变更告警明细表中新增告警是否在灰度期间触发、是否为首次告警等分析字段,评估按照这两个维度过滤告警是否能较大的减少无用告警【大部分的告警能够自愈,或是可以忽略的无关紧要的告警】,让业务能聚焦于虫咬的告警,减少狼来了情绪【过多的无用告警淹没了真正需要关注的有价值告警,通过告警提前发现问题解决问题的作用被削弱了】
  9. 回退的变更单中触发变更阻断的占比
  10. 有触发变更阻断的变更单占比
  11. 检测出有风险的发布计划中有回退的占比
  12. 命中 CPU高负载、现象告警(CGI最终失败)、容量风险 的变更单数量

告警数量

  1. 现象告警:用例告警,反映真实业务异常
  2. 变更模块告警:变更模块自身 + 直接/间接上游
  3. 下游资源告警:直接/间接下游模块 + 单机资源

为告警事件单增加该告警的模块下的上下游调用的拓扑图、CGI关系拓扑图、用例步骤关系图

  1. CGI用例告警

目前的关联链路:用例 → CGI → 模块 → 模块 ……

用例【提供给用户使用的接口,调用链最前面】

一个用例会调用多个CGI

CGI【CGI会一直被带到后面链路中的所有模块中,CGI后面跟着一个模块调用链】

模调接口可以查出模块和CGI之间的关系

有一张表关联用例、用例步骤、CGI【可以用模调API查出模块关联的所有CGI,再根据CGI查出模块关联的所有用例】【根据哪个CGI告警可以确认用例中的哪个用例步骤告警了】

  1. API用例告警
  2. 用例可用率用例告警 是没有 CGI 的

修改拓扑图组件,实现右上角展示徽章,高亮相关链路路径,背景染色,展示Tooltip

从 MQ 消息中获取告警的相关数据并落库

通过平台设置API参数、返回值等基本信息,自动生成后端的基本代码(只用改业务逻辑),返回值一般包括 message、code、data 字段。

可以看看代码分析里面的:

  1. 自研任务队列-信号量超时背压滑动窗口
  2. 通用消息监听器工厂与动态Handler分发

支持按单机维度合并变更告警事件单

告警标题格式(示例): xxxxxx247(xx.xx.xxx.xxx) xxxx总使用率 超过阈值上限异常 当前(38) 上限(30) 标题由以下 5 段组成:

  1. xxxxxx247(xx.xx.xxx.xxx) -> 主机名(IP地址)
  2. xxxx总使用率 -> 监控指标名称
  3. 超过阈值上限异常 -> 异常类型描述
  4. 当前(38) -> 当前告警值
  5. 上限(30) -> 阈值上限

增加该告警是否为最近一周首次出现告警的标签

注意跨天时间段处理,要看最近一周该告警的天数不能直接用当前时间戳减去7天时间再算日期,这可能会变成“最近一周告警8天”得到8个日期,需要获取当前日期0点的时间戳再减去6天时间再算日期

通过清洗数据表实现

最近一周内6天出现告警,一周内告警的频率为:7,出现告警的日期为:2026-01-28、2026-01-29、2026-01-30、2026-01-31、2026-02-01、2026-02-02

“最近一周首次出现”: 说明该告警是最近7天首次触发的 “最近一周1天出现”:说明该告警是最近7天内范围内,仅在今天触发的,且在今天非首次触发

增加该告警是否在灰度期间触发的标签

通过清洗数据表实现

“灰度期间触发”:在调权灰度开始到调权灰度结束、正式灰度开始到阶段或关单期间产生的告警。 “非灰度期间触发”:上述时段以外产生的告警(包含了调权扩容期间、调权结束到正式开始灰度之前阶段)。

调研异常检测算法

对告警时的监控数据进行标记(标记出异常的时间段),用标记好的数据对不同异常检测算法进行测试。要标记的数据太多,最好能自动实现标记。可以尝试:

  1. 大模型 + 提示词 + 人工抽查部分标记【使用这个方法】【大模型辅助标注:利用 LLM + 结构化提示词,对大量告警曲线图片进行批量自动标注(异常时间段),大模型识别图片中的异常比识别时间序列数值中的异常准确率会更高】
  2. 实际工程应用的异常检测算法直接标记 + 人工复查全部修改标记

指标类型分类

类型 特征 典型例子
周期性指标 明显日/周周期,有规律起伏 请求量、调用量、流量
非周期性指标 无稳定周期,平稳/接近0或随机波动 错误数、异常码计数

异常类型体系

异常类型 典型表现
单点尖峰/毛刺 短促脉冲,高于周边3σ
周期形态异常(幅度变大/波形扭曲) 周期存在但振幅/基线改变
基线漂移/趋势突变 水平抬升/降低
阶跃/平台(状态切换) 突然跳到新水平并持续
噪声变大(方差异常) 抖动加剧
尾部飙升 末段快速上升未回落