事故期间同一异常可能产生数百万行日志。聚类的目标是压缩重复模式、展示代表样本和变化趋势,而不是让模型替代原始日志查询。
先做确定性规范化
移除时间戳、请求 ID、UUID、IP 和数字序列等动态片段,再用 Drain 等模板解析算法形成稳定事件模板。
原始: timeout calling 10.2.4.18 after 3021ms request=ab12
模板: timeout calling <*> after <*>ms request=<*>
结构化字段如 service、region、level 和 deployment 保留为过滤维度,不全部拼入向量文本。
聚类流程
- 按服务与短时间窗口分桶。
- 对规范化模板生成 embedding 或相似度特征。
- 设置距离阈值并保留离群点。
- 为每簇输出数量、首次出现和代表样本。
控制风险
- 日志进入外部模型前执行敏感信息脱敏
- 不因簇规模小而丢弃罕见高严重度事件
- 摘要必须链接回原始样本和查询条件
- 模型或 embedding 升级后用历史事故回测
收尾清单
评估压缩率之外,还要衡量关键错误召回率和错误合并率。值班人员的拆分、合并反馈应进入标注集,持续校准阈值。