如何精确定位导致慢请求出现的代码 |
您所在的位置:网站首页 › skywalking和cat › 如何精确定位导致慢请求出现的代码 |
借助Java字节码注入技术,许多基于Java的框架可以实现自动埋点,从而帮助您了解慢请求具体发生在哪两个埋点之间。但这并不足以定位代码层的问题。如需精确定位导致慢请求出现的代码方法,您可以搭配使用SkyWalking的慢请求分析功能和链路追踪。 前提条件您已通过SkyWalking接入可观测链路 OpenTelemetry 版,详情请参见通过SkyWalking上报Java应用数据。 背景信息SkyWalking采集慢请求数据的工作流程如图所示。 仅SkyWalking 7.0及更高版本具备慢请求分析功能。 创建慢请求采集任务登录可观测链路 OpenTelemetry 版控制台,在左侧导航栏单击应用列表。 在应用列表页面顶部选择目标地域,然后单击目标应用名称。 在左侧导航栏单击慢请求分析,并单击新建任务。 在新建任务对话框中输入以下信息,并单击确认。 参数 描述 是否必填 示例值 Span名称 需监控的Span。 是 /api 监控持续时间 监控持续的时间。 否 5 min Span耗时阈值 仅分析耗时超过该阈值的Span。单位为ms。 否 30 ms 监控间隔 采集监控数据的时间间隔。 否 20 ms 最大采样数 被采集数据的Span最大数量。取值范围为1~9。 否 5 创建任务完成后,可在任务列表中查看创建成功的任务。 定位导致慢请求出现的方法以您新建任务的时间为起点,经过指定的监控持续时间后,耗时超过阈值的Span将显示在Sampled Traces区域。请按照以下步骤在页面右侧的线程栈详细信息定位导致慢请求出现的方法。 在慢请求分析页面的任务列表区域单击目标任务。 耗时超过阈值的Span将显示在Sampled Traces区域。 在Sampled Traces区域单击目标Span,并观察页面右侧的线程栈区域。 以红色字体显示的方法名即为耗时超过所设置阈值的方法。您可以针对性地优化这些方法。 为什么监控持续时间结束后未采样到任何线程栈?如果监控持续时间结束后未采样到任何线程栈,请按照以下步骤排查。 在慢请求分析页面的任务列表区域单击目标任务右侧的查看任务详情。 在任务详情对话框中查看详细信息。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |