使用调试会话捕获请求链路
指标可以告诉你错误率上升了,访问日志可以告诉你请求匹配了哪个路由和上游,但两者都无法说明网关对失败请求实际执行了哪些操作。
调试会话可以回答这个问题。你可以选择实例、时间窗口和关注的流量。对于每个匹配的请求,网关会记录所有已执行的插件、执行顺序、各插件耗时以及产生的每一行日志。
可以排查哪些问题
哪个插件导致请求变慢。 某个结算端点耗时 400 ms,但你无法判断时间花在了哪里。链路会先按阶段、再按各个插件调用拆分请求,并显示每个调用的耗时,因此可以快速定位慢插件。
插件为什么没有生效。 插件执行顺序根据优先级计算,并合并路由、服务和全局规则上的配置。仅通过阅读配置推导执行顺序容易出错。链路会显示真实请求中实际执行的插件及网关的执行顺序,无需自行推导。
网关为某个特定请求记录了哪些日志。 该请求产生的日志行会附加到其链路中。你无需再提高生产环境的日志级别,也无需从大量输出中筛选属于同一请求的日志。
告警触发时发生了什么。 告警策略可以自动启动会话,在触发告警的流量发生时立即捕获,而不必在事后尝试复现间歇性故障。