文章摘要
文章介绍了一个利用大语言模型(LLM)处理海量CI日志的案例。作者团队让AI代理自主编写SQL查询,在数TB的CI日志数据中快速定位问题,仅用几秒就追踪到三周前导致测试不稳定的依赖更新。系统每周处理15亿条日志和70万个任务,所有数据存储在ClickHouse中,压缩比达35:1,可实现毫秒级查询。
文章总结
大型语言模型擅长SQL查询:我们如何用它分析TB级CI日志
在Mendral的技术实践中,我们发现大型语言模型(LLM)展现出了出色的SQL能力。通过为AI代理开放SQL接口,我们实现了对数TB持续集成(CI)日志的高效分析。以下是核心实践:
一、SQL接口赋能AI代理 我们为每个组织配置专属的SQL接口,AI代理能自主构建查询语句(无需预设查询模板)。这种设计带来两大优势: 1. 元数据分析(占比63%查询):快速回答"失败频率"、"成功率"等聚合问题 2. 原始日志分析(占比37%查询):精准定位"显示特定错误输出"等细节问题
二、海量数据处理实践 通过对8,534次调查会话的分析发现: - 典型查询需扫描33.5万行数据 - P95级复杂查询需处理9.4亿行数据 - 深度调查最多扫描43亿行日志
三、ClickHouse存储优化 采用非规范化设计,每个日志行携带48个元数据字段,通过列式存储实现35:1压缩比: - 原始日志文本:664GB - 含元数据未压缩:5.31TB - 磁盘存储仅需154GB - 平均每条日志仅占21字节
四、查询性能表现 - 元数据查询中位响应时间:20ms - 原始日志查询中位响应时间:110ms - 10亿行级查询可在30秒内完成
五、GitHub API限流应对 通过智能节流控制保持3请求/秒的稳定速率: - 保留4000请求/小时余量供AI代理使用 - 实现P95延迟<5分钟的数据新鲜度 - 采用持久化执行引擎应对突发流量
这种架构使得AI代理能像人类工程师一样开展调查:从宏观指标入手,逐步深入日志细节,最终在秒级时间内定位如"三周前的依赖更新导致测试不稳定"等复杂问题。
(注:原文中的公司介绍、社交媒体链接等非技术内容已精简,保留核心方法论和关键数据)
评论总结
评论内容总结
1. 对LLM处理日志的质疑
- 主要观点:LLM在日志分析中存在幻觉问题,且日志噪声多、因果关系复杂,影响准确性。
- 关键引用:
- "I’ve used LLMs for log analysis and they have been prone to hallucinate reasons"(sollewitt)
- "Logs contain a lot of noise and unnecessary information"(p0w3n3d)
2. 改进方法与工具
- 主要观点:通过预处理日志(如过滤噪声、优化查询)可提升LLM分析效果,已有相关工具开发。
- 关键引用:
- "I just wrote a tool for reducing logs for LLM analysis"(buryat)
- "SQL is the best exploratory interface for LLMs"(sathish316)
3. 对SQL能力的争议
- 主要观点:LLM生成SQL的能力参差不齐,复杂业务场景仍需人工干预。
- 关键引用:
- "LLMs are good at SQL is quite the assertion"(whoami4041)
- "analytics/SQL will always be a space that needs human input"(whoami4041)
4. 日志质量与人工调试
- 主要观点:日志可读性决定LLM分析效果,若日志足够清晰,人工调试可能更高效。
- 关键引用:
- "Basically a surefire way to train LLM... depends on the readability of logging"(Yizahi)
- "if logging is good enough then humans can do debug faster"(Yizahi)
5. 成本与实用性疑问
- 主要观点:未提及LLM具体型号和成本,大规模日志分析可能因token费用不切实际。
- 关键引用:
- "the token cost itself should be very expensive"(the_arun)
- "I hope your daddy is paying for your tokens"(PaulHoule)
6. 标题与内容相关性批评
- 主要观点:标题未清晰概括内容价值,部分读者认为信息不明确。
- 关键引用:
- "Title tells us nothing: what’s the tl;dr?"(TheRealPomax)
- "Why the editorialization of the title?"(yellow_lead)
7. 其他技术建议
- 主要观点:推荐使用递归语言模型(RLMs)或专用查询引擎优化日志分析。
- 关键引用:
- "Check out 'Recursive Language Models'"(dbreunig)
- "working on a Text2SQL engine for Observability data"(sathish316)