[论文] KELP:通过进化分组树实现稳健的在线日志解析
发布: (2026年1月2日 GMT+8 18:27)
7 min read
原文: arXiv
Source: arXiv - 2601.00633v1
请提供您希望翻译的具体文本内容,我将为您翻译成简体中文。
概述
本文提出了 KELP(Kelp Evolutionary Log Parser),一种高吞吐量的在线日志解析系统,即使在生产环境中日志格式漂移,也能保持准确。通过用持续演化的 “Evolutionary Grouping Tree” 取代静态模板模型,KELP 能够在运行时自动发现、拆分和合并日志模板,显著降低了现有解析器的脆弱性。
关键贡献
- Evolutionary Grouping Tree (EGT) – 一种新颖的数据结构,将日志模板发现视为在线聚类问题,使节点能够随新日志行的到来而演化。
- Robust online parsing algorithm – KELP 实时更新其树结构,能够在无需人工重新训练或规则更改的情况下处理模式漂移。
- Realistic benchmark dataset – 作者构建了一个新的评估套件,能够捕捉现代生产系统中出现的结构歧义和频繁的格式变化,弥补了现有静态正则表达式基准的不足。
- Empirical validation – 实验表明,在新的基准上,KELP 保持超过 95 % 的解析准确率,同时每秒处理数百万条日志行,性能优于最先进的启发式解析器。
- Open‑source release – 完整实现和基准数据已公开发布(codeberg.org/stonebucklabs/kelp),便于可重复性研究和社区扩展。
方法论
- 流式摄取 – 将每条进入的日志行进行分词并输入到 EGT 中。
- 树导航 – 日志行根据令牌相似度得分在树中遍历;叶节点代表当前的候选模板。
- 演化操作
- 拆分: 如果叶节点的内部方差超过阈值,则将其拆分为更具体的子节点。
- 合并: 随着时间推移,使用频率低且变得相似的节点会被合并,以避免碎片化。
- 重新评估: 节点频率持续更新,使树能够适应日志类型分布的变化。
- 模板提取 – 当叶节点稳定(低方差、高频率)时,其模式会被输出为具体的日志模板,以供下游分析使用。
- 基准构建 – 作者们回放来自大规模微服务部署的日志,故意注入模式更改(新字段、令牌顺序改变、可选段落),以模拟真实世界的漂移。真实标签通过半自动标注流水线生成,而非静态正则表达式。
所有操作在活跃模板数量 N 上的时间复杂度为 O(log N),使该方法足够轻量,适用于高吞吐量的流水线。
结果与发现
| 指标 | KELP | 最佳启发式基线 |
|---|---|---|
| 解析准确率(在新基准上) | 95.3 % | 78.1 % |
| 吞吐量(行/秒) | 3.2 M | 2.9 M |
| 延迟(99 百分位) | 1.8 ms | 2.4 ms |
| 模式漂移后的恢复时间(秒) | < 5 | > 30 |
- 准确率 即使在日志格式每几分钟就变化的情况下仍保持很高,而静态解析器的性能会迅速下降。
- 吞吐量 与现有解析器相当,证明额外的树维护工作不会成为瓶颈。
- 适应速度:KELP 在漂移发生后几秒内自动重新聚类,消除了手动更新模板的需求。
实际影响
- 降低运维工作量 – 团队不再需要维护脆弱的正则表达式库或定期重新训练解析器。
- 更可靠的告警 – 由于在发布或功能标记期间解析保持准确,下游异常检测和告警流水线产生的误报(假阴性)更少。
- 可扩展的可观测性堆栈 – KELP 的低延迟和高吞吐使其在高流量环境中可直接替代日志发送器(如 Fluent Bit、Logstash)。
- 边缘部署 – 该算法占用的内存较小(树的大小与活跃模板成正比),可在物联网网关或边缘服务上实现设备端解析。
- 下游机器学习的基础 – 持续干净、带模板标签的日志提升了用于根因分析、容量规划和安全监控的下游模型质量。
限制与未来工作
- Memory growth in extremely heterogeneous fleets – 如果不同日志模板的数量激增,树结构可能变得庞大;作者建议将剪枝策略作为未来工作。
- Handling multi‑line log events – KELP 目前假设日志事件为单行;将 EGT 扩展以分组多行堆栈(例如堆栈跟踪)留待后续研究。
- Parameter sensitivity – 分割/合并阈值需要针对不同工作负载进行适度调优;计划引入自适应自调节机制作为增强功能。
- Benchmark generality – 虽然新数据集比之前的静态基准更贴近实际,但仍来源于单一组织的技术栈;更广泛的跨行业验证将加强其论点。
作者
- Satyam Singh
- Sai Niranjan Ramachandran
论文信息
- arXiv ID: 2601.00633v1
- 分类: cs.DB, cs.SE
- 发表时间: 2026年1月2日
- PDF: 下载 PDF