使用日志分析诊断业务异常

在微服务应用的场景下,日志分析更能体现其集中收集、即席查询的便捷优势。

使用日志查询作为问题排查的着手点

假设有一个微服务架构的场景下,有客户反馈说订单无法支付并仅提供了订单号,如果在代码中针对订单支付过程中的异常你充分记录了异常日志的话,那么从日志查询入手将是非常直接的一种方式。

微服务治理平台 > 项目列表 > 选择项目 > 日志分析 > 日志查询 页面,搜索内容栏内输入订单号,即可查看到所有内容中包含了该订单号的日志,这包括了所有可能涉及的服务。

使用日志分析诊断业务异常 - 图1

通常,这时如果搜索结果展示的日志中包含的异常信息应该能提供一些有效消息来帮助你定位问题了,比如异常的类型和堆栈以及代码位置。当然,也可能包含订单号的日志信息比较简略,比如只是请求某某服务失败之类的信息,那这时候我们将需要对日志进行纵向的搜索。

使用TraceId纵向查询日志

如果你集成了 Erda 提供的 java agent,那么日志信息中通常会包含 request-id 的标签,日志查询结果页对应行的日志右侧的 链路追踪 会显示为可点击状态,点击该链接,即可查询出所有打了 request-id 标签且值与当前所选日志相同的日志记录,即整个请求Trace练所涉及的所有日志。

使用日志分析诊断业务异常 - 图2

这时,我们便可能发现在请求链路的纵向上,可能存在其他服务的日志,该日志虽然没有包含订单号,却很可能会包含异常报错及堆栈信息,从而定位问题。

使用日志分析规则及时发现异常日志

在你希望日志出现什么问题时能够主动通知你时,使用日志分析规则将是个不错的选择,通过创建你想要的日志分析规则,结合 规则管理 功能,能够在指定类型的日志发生时及时通知到你,关于这点的具体示例请参考示例 Java 应用使用日志分析跟踪异常指标