通过调用链查看微服务间调用关系
在企业微服务之间调用复杂的场景下,APM Agent会抽样一些请求,拦截对应请求及后续一系列的调用信息。
查看调用链基本信息
- 登录APM控制台。
- 单击左侧
,选择“管理与监管> 应用性能管理 APM”,进入APM服务页面。
- 在左侧导航栏选择“性能监控 >调用链”,进入调用链页面。
- 单击页面右上角的时间维度选择按钮,默认“近20分钟”。
当前支持“近20分钟”、“近1小时”、“近3小时”、“近6小时”、“近1天”、“今天”、“昨天”以及自定义。
- 输入如下查询条件查询具体的调用链列表,也可在界面下方新增自定义查询条件。
表1 调用链查询条件 查询条件
具体含义
必填/选填
应用
调用链所在应用。
必填
区域
调用链所在区域。
必填
组件
调用链所在组件。
选填
环境
调用链所在环境。
选填
实例
调用链所在实例。
选填
URL
调用链的URL,分为Rest URL和Real URL两种搜索条件:Rest URL为restful风格的URL,URL中带有变量名称,如/apm/get/{id};Real URL为实际访问的URL。
选填
精确
对URL是否精确匹配,开启状态下为精确查询URL,不开启则进行模糊查询。
选填
调用方法
调用链的HttpMethod。
选填
状态码
调用链返回的HTTP状态码。
选填
响应时间
调用链的响应时间范围,可以填写最小响应时间和最大响应时间搜索调用链,两个值都可以为空。
选填
是否异常
调用链是否有异常。
选填
Trace ID
调用链的TraceID,填写该搜索条件后,其他搜索条件全部失效,只根据该TraceID搜索。
选填
自定义参数
已配置url监控项的拦截header指定key值、拦截url参数指定key值、拦截cookie指定key值参数后,在这里可以设置key=value进行搜索,例如:httpMethod=POST。
配置url监控项详见配置url监控项。
选填
应用码
已配置url监控项的业务code采集长度限制、解析业务code的key、业务code的正确值参数后,会采集相应的应用码,这里可以根据应用码进行搜索。一般情况下,应用码的值与业务code的正确值相同。配置url监控项详见配置url监控项。
选填
- 单击“查找Trace”,根据搜索条件查询出来的调用链列表可以查看调用链信息。
图1 调用链信息
- 支持仅展示“请求成功”或“请求失败”调用链信息,以绿色“请求成功”按钮为例。
- 单击处于高亮状态的绿色“请求成功”按钮,仅展示“请求成功”的调用链信息,同时红色“请求失败”按钮置灰。
- 当红色“请求失败”按钮置灰时,单击处于高亮状态的绿色“请求成功”按钮,则展示所有调用链信息,同时红色“请求失败”恢复高亮。
- 绿色“请求成功”按钮和红色“请求失败”按钮,不支持同时置灰。
- 响应时间:调用链调用链的响应时间。单击“响应时间”,调用链列表按照响应时间从大到小排列,同时“响应时间”展示为
;再次单击“响应时间”调用链列表按照响应时间从小到大排列,同时“响应时间”展示为
;第三次单击“响应时间”调用链列表恢复初始状态,同时“响应时间”展示为
。
- 产生时间:调用链的开始时间。产生时间支持排序,详细操作参见响应时间。
- 单击“清空”,查询条件恢复至初始状态,查询结果清空。
图2 清空
- 支持仅展示“请求成功”或“请求失败”调用链信息,以绿色“请求成功”按钮为例。
- 在查询后的调用链列表中,单击待查看的调用链前的
,查看该调用链基本信息。
图3 调用链基本信息表中标识的具体参数所代表的含义如下:
- 调用链的HttpMethod。
- 调用链的RestURL,Rest URL为restful风格的URL,URL中带有变量名称,如/apm/get/{id};单击该URL可以跳转到调用链的详情页面。
- 调用链返回的HTTP状态码。
- 调用链的TraceID。
- 调用链所在组件。
- 调用链所在环境。
- 调用链所在实例的主机名。
- 调用链所在实例的IP。
- 调用链的实际URL。
- 鼠标悬浮于调用链名称上,调用链名称显示为蓝色。单击调用链名称,可查看调用链详细信息。
图4 调用链名称
调用链详情页面可以查看调用链的完整链路信息,包含本地方法堆栈和相关远程调用的调用关系。
图5 调用关系表中标识的具体参数所代表的含义如下:
- 调用链的时序图中调用接口所属的组件和环境。
- 数字为接口调用的客户端响应时间,单位ms。鼠标悬浮于组件之间线条上,可以查看组件间的客户端、服务端信息。
- Real URL:调用链的RestURL,Rest URL为restful风格的URL,URL中带有变量名称,如/apm/get/{id}。
- 响应时间:调用链响应时间。
- 数字为接口调用的服务端响应时间,单位ms。
- 调用链方法堆栈中该方法对应的关键参数数据,如tomcat入口方法展示实际url、mysql的sql调用方法则展示具体执行sql。
- 调用链中调用所属的组件个数。
- 调用链是“树”状结构,深度表示“树”状结构的层数。
- 时序图支持折叠,单击“收起时序图”,则时序图被折叠,不再展示。
图6 时序图
使用不同类型探针或用户接入端接入时,图中1和2显示的内容不同,详见下表。
探针类型或用户接入的类型
显示内容
web前端
WEB
微信
WE_CHAT
百度
BAIDU
支付宝
ALIPAY
钉钉
DING_TALK
移动端App Android
ANDROID-APP
移动端App iOS
IOS-APP
移动端App Harmony
HARMONY-APP
其它
user
- 单击
,下载时序图图片。
用户也可以从一些监控项视图页面,比如Url监控项的table视图,单击具体的URL跳转过来,这样就已经预先填写好搜索条件,帮助用户更快速搜索出所需要的调用链信息。
图7 URL跳转至调用链 - 持续时间,即链路请求的总时间。
- 单击资源列表中的资源,查看资源的链路信息、异常、日志、基础设施、Profiler性能分析。
- “链路信息”页签展示了资源的实例、类、状态码等信息。
- “异常”页签展示了资源的异常信息,若资源无异常,则不显示异常页签。
- “日志”页签详细操作与介绍请参见查看组件日志监控项。
- “基础设施”页签详细操作与介绍请参见查看组件基础设施监控项。
- “Profiler性能分析”页签详细操作与介绍请参见通过Profiler分析代码性能。Agent版本为2.4.9-profiler及以后的版本,支持在调用链中查看Profiler性能分析相关数据。