Trace 能问 AI 之后,ERROR 日志也能一句话查了。还记得《运维领域的 AI 军团来了》吗?本文用同一 checkout 库存不足场景,走界面搜日志、Trace 互跳、AI 问 ERROR 三条路。
0. 演示场景:InsufficientStockException
Demo 持续打GET /demo/checkout。service-b 抛InsufficientStockException: inventory unavailable for skuId=…,OTLP 日志写入 Doris,并携带trace_id/span_id。
下文截图均来自同一故障窗口(140 环境 · 最近 1 小时):
- 路径 A— 已知异常类名,全局日志页 Facet 检索
- 路径 B— 已知慢 Trace,从火焰图 Span 看日志 + 深链回全局页
- 路径 C— 一句话交给 AI,调度
log.queryLog*工具查 ERROR 日志
1. 路径 A:全局「日志分析」检索
菜单位置:应用性能 → 日志分析。不推 LogQL,用关键词 + Facet即可。
操作:搜索InsufficientStockException→ 勾选ERROR+service-b→ 列表每行右侧「Trace · 查看」可跳调用链。
2. 路径 B:Trace 里看 Span 日志 + 双向深链
B1 · Trace 头:TraceID 旁直达日志分析
从链路追踪打开 checkout 慢 Trace。Trace 头展示 TraceID,右侧**「日志分析」**一键带 traceId 跳转全局页。
B2 · Span 侧栏:火焰图 + 日志 Tab
火焰树上带Logs标记的 Span 可展开侧栏「日志」Tab;选中 service-b 的 Span 可看到 ERROR 堆栈。
B3 · 深链:「在日志分析中查看全部」
侧栏底部点击后,全局页自动预填 traceId + spanId,只显示该 Span 上下文内的日志。
3. 路径 C:AI 平台问日志
界面适合精查;AI 适合一句话委托。智能问数专家注册了日志工具族:
场景一:按服务 + 关键字搜 ERROR 日志
帮我查 service-b 最近 1 小时 InsufficientStockException 相关的 ERROR 日志,列出 traceId 和关键日志摘要。场景二:已知 traceId,直接问根因
已知 traceId edfa44615dcee4d6bdfeed46d84bfb20,帮我列出这条链路上所有 ERROR 级别日志,并说明 checkout 失败原因。场景三:看 ERROR 日志量有没有尖峰
service-b 最近 1 小时 ERROR 级别日志量趋势如何?有没有明显尖峰时段?工具选用规则:按服务/级别搜 →queryLogDetail;已知 traceId →queryLogsByTraceId;看某 Span →queryLogsBySpanId;看日志量尖峰 →queryLogTrend。
4. 数据从哪来 · 和 ELK 怎么分工
OTLP Logs(:4317/:4318)→ Ingest → Dorislog_dc_record→POST /log/search。Java 侧 MDC 注入 traceId 即可关联。
DataBuff 定位是APM 语境下的日志探索,不是替代 ELK/Loki;优势在于与 Trace/Metrics/AI 同一上下文,少切三个系统。
5. 5 分钟自己试
curl-fsSLhttps://databuff.ai/install.sh|bashWeb UI:http://localhost:27403· 默认admin/Databuff@123
GitHub:https://github.com/databufflabs/databuff