- 最新动态
- 功能总览
- 产品介绍(2.0)
- 计费说明(2.0)
- 快速入门(2.0)
-
用户指南(2.0)
- 使用导读
- 应用列表
- CMDB管理
-
应用指标监控
- 概述
- 应用监控详情
-
应用监控配置
- 配置详情
- 配置Mysql监控项
- 配置HttpClient监控项
- 配置url监控项
- 配置JavaMethod监控项
- 配置Druid连接池监控项
- 配置ApacheHttpAsyncClient监控项
- 配置Redis监控项
- 配置Jedis监控项
- 配置HBase监控项
- 配置ApacheHttpClient监控项
- 配置Tomcat监控项
- 配置EsRestClient监控项
- 配置Websocket监控项
- 配置KafkaProducer监控项
- 配置Hikari连接池监控项
- 配置异常日志监控项
- 配置线程监控项
- 配置GC监控项
- 配置JVM信息监控项
- 配置JVM监控监控项
- 配置探针监控项
- 配置Springbean监控项
- 监控项视图
- 实例
- 采集状态
- 组件设置
- 调用链
- 应用拓扑
- URL跟踪
- 资源标签管理
- 标签管理
- 告警管理
- 探针管理
- 前端监控
- 链路追踪
- App监控
- 系统管理
- SDK参考
- 权限管理
- 修订记录
- 最佳实践(2.0)
- API参考(2.0)
- 常见问题(2.0)
- 视频帮助(2.0)
- 产品介绍(1.0)
- 快速入门(1.0)
- 用户指南(1.0)
- 最佳实践(1.0)
- API参考(1.0)
-
常见问题(1.0)
- 用户高频问题
- 常见咨询问题
-
常见使用问题
- 如何获取AK/SK和projectid值?
- 如何通过创建委托获取AK/SK?
- 查询不到数据或者数据异常?
- 如何将APM接入非Web程序中?
- 调用链的时间线如何绘制的?
- APM如何采集探针数据?
- APM如何采集网格数据?
- 如何计算已使用实例个数?
- JBoss Standalone模式如何接入APM?
- 调用链跳转日志不生效?
- 如何将APM探针部署到CCE容器中?
- 如何处理SSH tunnel进程异常?
- 安装了ICAgent和java探针后,拓扑图不显示,没有数据,如何排查?
- JVM监控界面线程监控处为何没有tomcat线程指标?
- JVM监控界面内存监控中,为何最大内存比分配内存小?
- 如何判断CCE中是否已经绑定了ICAgent?
- SDK参考(1.0)
- 视频帮助(1.0)
- 文档下载
- 通用参考
链接复制成功!
调用链
在企业微服务之间调用复杂的场景下,APM Agent会抽样一些请求,拦截对应请求及后续一系列的调用信息。比如在A调用B然后调用C的场景,请求进入A后,APM系统会采用智能采样算法,决定是否对请求进行调用链跟踪。
智能采样算法
APM系统会采用智能采样算法,决定是否对请求进行调用链跟踪。
- 如果决定要跟踪,那么就会生成一个TraceID,拦截A下面的一些重要方法(一般具有树结构父子关系)的详细信息(称为event),同时APM会将TraceID透传到B,B也会拦截下面的重要方法,同时透传TraceID到C,C也跟B和A类似。每个节点分别上报event信息,通过TraceID形成关联,这样通过TraceID就可以查看整个请求的调用详情。
- 如果决定不跟踪,那么就不会生成TraceID,B服务由于没有收到TraceID,自身也会产生跟A服务一样的算法,决定是否要进行调用链跟踪。
- 数据上报后,APM系统除了会存储所有event详情,同时会将每个服务的根event(称为span)信息额外存储起来,用于后续调用链搜索。用户一般是先搜索到span信息,然后根据span信息上附带的TraceID获取到总体调用链详情。
- 调用链采样策略系统默认是智能采样,url分为错误url、慢url(默认800ms、用户自定义配置)、正常url三种url,每种url调用链数据的采样率单独计算。APM的统计数据是一分钟采集上报一次,第一个采集周期所有url调用链数据都按正常url采样。第二个采集周期时,根据上一个采集周期的统计数据,将url分类为错误url、慢url、正常url三种url。
- 错误url的采样率:cpu小于30%每分钟采集100条,cpu大于或等于30%小于60%每分钟采集50条,cpu大于或等于60%每分钟采集10条,每条url至少采集2条。
- 慢url的采样率:cpu小于30%每分钟采集100条,cpu大于或等于30%小于60%每分钟采集50条,cpu大于或等于60%每分钟采集10条,每条url至少采集2条。
- 正常url的采样率:cpu小于30%每分钟采集20条,cpu大于或等于30%小于60%每分钟采集10条,cpu大于或等于60%每分钟采集5条,每条url至少采集1条。
上述调用链算法优点是,一旦决定产生调用链信息,那么链路是完整的,帮用户做正确决策。对于大量调用的url,可能会采集不到异常请求,可以通过异常监控的指标采集等其他方式来定位系统中的异常。
调用链搜索
调用链搜索主要是搜索span信息,就是一个节点的根event。一个调用链可能从多个环境下面搜索到。比如A调用B调用C的场景,对于同一个调用链路,从A、B、C可能都可以搜索到同一个调用链。
- 登录管理控制台。
- 单击左侧
,选择“管理与监管 > 应用性能管理 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搜索。
选填
自定义参数
- 按调用参数搜索调用链,格式为:key=value,如exceptionMsg=failed。
- 需要配置的参数,在配置完成后,才支持自定义参数搜索。如url,已配置url监控项的拦截header指定key值、拦截url参数指定key值、拦截cookie指定key值参数后,在这里可以设置key=value进行搜索,例如:httpMethod=POST。
配置url监控项详见配置url监控项。
选填
全局Trace ID
调用链的全局TraceID,填写该搜索条件后,其他搜索条件全部失效,只根据该全局TraceID搜索。
选填
应用码
已配置url监控项的业务code采集长度限制、解析业务code的key、业务code的正确值参数后,会采集相应的应用码,这里可以根据应用码进行搜索。一般情况下,应用码的值与业务code的正确值相同。配置url监控项详见配置url监控项。
选填
查看调用链详情
根据搜索条件查询出来的调用链列表可以查看调用链的基本信息
在查询后的调用链列表中,单击待查看的调用链前的,查看该调用链基本信息,如下图所示。
![点击放大](https://support.huaweicloud.com/usermanual-apm2/zh-cn_image_0000001747761856.png)
表中标识的具体参数所代表的含义如下:
- 调用链的HttpMethod。
- 调用链的RestURL,Rest URL为restful风格的URL,URL中带有变量名称,如/apm/get/{id};单击该URL可以跳转到调用链的详情页面。
- 调用链的开始时间。
- 调用链返回的HTTP状态码。
- 调用链的响应时间。
- 调用链的TraceID。
- 调用链所在组件。
- 调用链所在环境。
- 调用链所在实例的主机名。
- 调用链所在实例的IP。
- 调用链的实际URL。
- 调用链支持“查看日志”功能。
- 在LTS服务侧,配置“采集配置”,详细操作参见云日志服务 LTS《用户指南》的ECS接入章节。
- 单击“查看日志”,根据traceid跳转至LTS页面。LTS页面相关操作,请参见日志搜索。
- 如果未开通traceid关联日志,弹出“未关联日志服务”提示框。单击“跳转”,页面跳转至“关联日志服务”页面。“关联日志服务”详细操作,参见组件设置。
- 支持仅展示“请求成功”或“请求失败”调用链信息,以绿色“请求成功”按钮为例。
- 单击处于高亮状态的绿色“请求成功”按钮,仅展示“请求成功”的调用链信息,同时红色“请求失败”按钮置灰。
- 当红色“请求失败”按钮置灰时,单击处于高亮状态的绿色“请求成功”按钮,则展示所有调用链信息,同时红色“请求失败”恢复高亮。
- 绿色“请求成功”按钮和红色“请求失败”按钮,不支持同时置灰。
用户也可以从一些监控项视图页面,比如Url监控项的table视图,单击具体的Url跳转过来,这样就已经预先填写好搜索条件,帮助用户更快速搜索出所需要的调用链信息。
调用链详情页面可以查看调用链的完整链路信息,包含本地方法堆栈和相关远程调用的调用关系
单击调用链名称,可查看调用链详细信息,如下图所示。
- 上半部分为调用链完整链路的时序图,展示组件之间的完整调用关系,内部包含一次调用对应的客户端和服务器端的信息,然后线条越在下面,越晚发生调用。
- 下半部分为调用链详细的方法堆栈,每一行代表一个方法调用,展示了调用链内部方法的详细调用关系。默认只展示javaagent支持的组件方法,如需展示应用方法,可以在JavaMethod配置中配置需要拦截的应用方法。
图2 调用关系
表中标识的具体参数所代表的含义如下:
- 调用链的时序图中调用接口所属的组件和环境。
- 数字为接口调用的客户端响应时间,单位ms,具可将鼠标指针放置在该位置进行查看。
- 数字为接口调用的服务端响应时间,单位ms。
- 调用链方法堆栈中该方法对应的关键参数数据,如tomcat入口方法展示实际url、mysql的sql调用方法则展示具体执行sql。
- 调用链中调用所属的组件个数。
- 调用参数,单击
查看调用中的参数列表。
- 更多信息,单击“查看”,展示对应的Spans详细信息。
- 时序图支持折叠,单击“收起时序图”,则时序图被折叠,不再展示。
图3 时序图折叠
单击“展开时序图”则时序图被展开,展示时序图。
- 单击
,下载时序图图片。
- 单击“查看日志”,根据traceid跳转至LTS页面。详细介绍,参见“查看日志”章节。
- 调用链是“树”状结构,深度表示“树”状结构的层数。如图4所示。
- 调用链的时序图中,如下图。
使用不同类型探针或用户接入端接入时,图中1和2显示的内容不同,详见下表。
探针类型或用户接入的类型
显示内容
web前端
WEB
微信
WE_CHAT
百度
BAIDU
支付宝
ALIPAY
钉钉
DING_TALK
移动端App Android
ANDROID
移动端App iOS
IOS
其它
user