调用链分析

调用链分析功能是基于已存储的全量链路明细数据,自由组合筛选条件与聚合维度进行实时分析,可以满足不同场景的自定义诊断需求。

筛选调用链

调用链分析页签,按照以下说明筛选链路。

  • 在左侧快捷筛选区域,通过状态耗时接口名称主机地址维度快速筛选链路。

    筛选条件将会显示在页面顶部文本框内。
  • 单击筛选右侧的文本框,在弹出的常用查询面板中选择需要查询的条件,也可以直接在文本框中输入查询的语句进行查询。查询语法说明,请参见调用链分析查询用法说明

  • 单击聚合右侧的下拉框,筛选所需的聚合条件。

    说明
    • 单击文本框右侧的保存图标可以保存当前筛选条件。

    • 单击文本框右侧已保存视图可以查看已保存的筛选条件,单击目标的筛选条件可以快速查看对应筛选条件下的链路信息。

链路列表

筛选设置完成后,调用链分析页签将会显示筛选过滤后的链路查询信息,包括调用次数和HTTP错误数的柱状图,调用耗时的时序曲线,以及Span列表和Trace列表。

57vKtMbN5f

列表状态列各图标说明:

  • image:Span 状态正常。取自SpanstatusCode字段,当statusCode=1时显示,表示Span状态正常。

  • 2025-03-18_11-26-35:Span 状态错误。取自SpanstatusCode字段,当statusCode=2时显示,表示Span状态错误。

  • 2025-03-18_11-26-35:Span 包含异常。取自Spanattributes.excep.ids字段,当该字段不为空时,表示Span包含异常。

  • 2XX(绿色)、3XX(黄色)、4XX(橙色)、5XX(红色):HTTP状态码。取自Spanattributes.http.status_codeattributes.http.response.status_code字段,当Span包含这两个字段时,优先展示HTTP状态码,不展示正常或错误状态。

Span列表和Trace列表区域,您可以执行以下操作:

  • 单击目标调用链的TraceId或右侧操作列的详情,可以查看调用链详情和拓扑视图。更多信息,请参见Trace详情

  • 单击目标调用链右侧操作列的日志,可以查看链路对应的日志信息。更多信息,请参见日志分析

  • Trace列表每个TraceId默认展示了Root Span,单击image图标可以展开查看该TraceId下的所有Span。

  • 单击右上角的设置图标可以增加或隐藏列表显示的参数。

  • 将鼠标悬浮于调用链参数上,单击右侧的过滤图标,可以将当前参数值添加为筛选条件。

散点图

散点图页面以时间为横轴,耗时指标为纵轴,显示调用链的耗时分布情况。将鼠标悬浮于散点上,可以显示散点对应的调用链的基本信息。单击散点可以查看调用链对应的调用详情。更多信息,请参见Trace详情

image.png

全链路聚合

调用链分析对查询到的Span可以按照各个维度进行分析,但这些分析是针对单个Span,并未在链路级别深度分析。而全链路聚合功能支持通过指定条件查询分布式调用链路的TraceId(最多5000个),然后基于这些TraceId查询对应的Span,并聚合这些Span得出最终结果,整个过程保证聚合的链路完整性。

说明

由于全链路聚合是按照查询条件后聚合计算相应数据的,当您选择的条件比较多时,查询计算存在一定延迟,请耐心等待。

image

参数

说明

spanName

Span名称。

serviceName

Span对应的应用名。

请求数/请求比例

请求比例表示调用当前Span节点的请求比例数。

例如10%表示10%的请求会调用当前Span。

计算公式:请求比例=当前Span的请求数/总请求数*100%

span数/请求倍数

请求倍数表示平均每个请求调用当前Span的次数。

例如1.5表示每个请求会调用当前Span 1.5次 。

计算公式:请求倍数=Span数/Span的请求数

平均自身耗时/比例

平均自身耗时表示不包括子Span的耗时。

例如,对于Span A和其子Span B, 其中A耗时为10 ms, B耗时为8 ms,那么A的自身耗时为2 ms。

计算公式:自身耗时=Span耗时-所有子Span耗时总和

重要

如果是异步调用,自身耗时即Span耗时,无需减去子Span耗时。

平均耗时

Span的平均耗时。

异常数/异常比例

异常比例表示出现异常的请求比例。

例如3%表示有3%的请求出现异常。

计算公式:异常比例=异常请求数/总请求数

重要

异常请求数不等于异常数(Span调用异常的次数),当请求倍数大于1时, 一个异常请求可能对应多个异常数。

示例:如下表所示,Span A调用Span BSpan C,各参数含义如下。

spanName

serviceName

请求数/请求比例

span数/请求倍数

平均自身耗时/比例

平均耗时

异常数/异常比例

A

-

demo

10/100.00%

10/1.00

5.00ms/25.00%

20ms

2/20.00%

-

B

demo

4/40.00%

8/2.00

16.00ms/100.00%

16ms

2/50.00%

-

C

demo

1/10.00%

1/1.00

4.00ms/100.00%

4ms

1/100.00%

对于入口Span,A请求数/请求比例表示A的请求总数为10次,比例为100%。B请求数/请求比例4/40.00%,表示只有4次请求调用了B,同理只有1次请求调用了C,对应的请求比例分别为40%和10%。其余的请求可能因逻辑判断或者异常而未调用BC。这里反映了请求的分布比例。

Aspan数/请求倍数10/1.00,表示每次请求只调用了一次A,但是对于B而言,4次请求有8Span,每次请求调用了2B。这里反映了一次请求中Span的分布比例。

A平均自身耗时/比例5.00ms/25.00%,表示A除了BC之外的平均耗时为5ms,只占整体平均耗时的25%。而子Span BC因为没有子Span,所以自身耗时即整体耗时。这里反映了耗时的分布比例。

A异常数/异常比例2/20.00%,表示A发生了2次异常,占整体请求的20%。B异常数/异常比例2/50.00%,因为每次请求调用了2B,总的请求数是4,异常比例是50%,那么2次请求发生了异常。所以B的分布可能是:一共有4次请求,其中有2次请求调用的4Span B都是正常的,剩下2次请求中,首次Span B的调用都发生异常,然后重新调用成功。

说明

如果需要查看具体的调用链详情,可以将鼠标悬浮于蓝色的Span名称上,在悬浮框中可以看到推荐的调用链ID,单击TraceId即可查看。

全链路拓扑

全链路拓扑页签显示调用链聚合后的应用间拓扑。如下图所示,表示两个应用间存在调用关系,同时展示相应的请求数、错误数、响应时间等数据。

全链路拓扑

错/慢Trace分析

说明

错/慢Trace分析使用案例,请参见通过错/慢调用链排查应用产生异常的原因

错/慢Trace分析一般用于异常调用链的维度特征提取,并进一步进行根因分析与定位,主要提供慢Trace分析和错Trace分析两种。

通过指定一组调用链列表,后台通过智能算法将选中的调用链与基线调用链进行对比分析,提取并展示高特征值的维度分析数据,便于进行异常根因的分析与排查。

Trace分析

ARMS1000条耗时最长的Trace进行分析,展示与慢Trace显著相关的Top 5维度信息。

IduJq41CpS

Trace分析详情

在错Trace分析功能中,ARMS会随机抽样1000条错Trace1000条正常Trace,分析识别出与错调用显著性相关的Top 3关键特征。

maCRWumYMR

  • 默认的慢Trace耗时为500ms,单击修改耗时临时值,可以修改耗时时长。

  • 列出了与慢Trace显著相关的Top 3维度信息,并展示了这些因素在慢Trace和正常Trace中的占比差异。

  • 在具体的维度区域,可以查看接口与慢Trace显著相关的Top 3维度信息。

  • 单击目标维度的慢Trace或正常Trace对应的柱状图,然后对相关Trace进行下钻分析。

    8VgGY4kglv

Trace分析

Trace分析

ARMS随机选择1000条错Trace进行分析,展示与错Trace显著相关的Top 5维度信息。

gyJczdpOJ6

Trace分析详情

在错Trace分析功能中,ARMS会随机抽样1000条错Trace1000条正常Trace,分析识别出与错调用显著性相关的Top 3关键特征。

LbgtzyUhql

  • 列出了与慢Trace显著相关的Top 3维度信息,并展示了这些因素在慢Trace和正常Trace中的占比差异。

  • 在具体的维度区域,可以查看接口与慢Trace显著相关的Top 3维度信息。

  • 单击目标维度的慢Trace或正常Trace对应的柱状图,对相关Trace进行下钻分析。

    yok5kuMj7z

二次开发

链路数据保存在您的SLS中,Project名称为proj-xtrace-<encode>-<region-id>,logstore名称为logstore-tracing。其中<region-id>是调用链分析对应的地域,例如cn-hangzhou。数据格式的含义,请参见调用链分析参数说明。您可以基于已存储的全量链路明细数据进行二次开发,自由组合筛选条件与聚合维度进行实时分析,可以满足不同场景的自定义诊断需求。更多使用方法,请参见实时分析链路数据

常见问题

调用链中看到的SQL语句不完整

ARMS记录SQL语句默认最多只记录1024个字符,您可在自定义配置页面的数据库调用配置区域按需调整该默认值。image

升级4.x探针后出现大量访问Nacos耗时30sSpan

此类Span一般是在应用依赖Nacos之后,Nacos后台会循环通过HTTP长轮询的方式进行配置更新或者服务发现。3.x探针对于这种无入口的内部HTTP调用会忽略不生成Span,但是4.x探针支持无入口场景下内部调用生成Span,详情请参见 【探针升级】ARMS应用监控探针4.x版本升级公告

如果您不希望记录这种Span,可以在自定义配置页面的接口调用设置中过滤此类Span。

说明

该功能需要探针升级到4.2.x版本及以上。

image