将应用数据上报至可观测链路 OpenTelemetry 版后,可观测链路 OpenTelemetry 版即可开始监控应用,可观测链路 OpenTelemetry 版的调用链分析功能是基于已存储的全量链路明细数据,自由组合筛选条件与聚合维度进行实时分析,可以满足不同场景的自定义诊断需求。
前提条件
已将应用数据上报至可观测链路 OpenTelemetry 版,具体操作,请参见接入指南。
筛选调用链
登录可观测链路 OpenTelemetry 版控制台,在左侧导航栏单击应用列表。
在应用列表页面顶部选择目标地域,然后单击目标应用名称。
在上方导航栏单击调用链分析。
在调用链分析页面右上角的时间选择框设置需要查询的时间段。
筛选链路。
在左侧快捷筛选区域,通过状态、耗时、接口名称和主机地址维度快速筛选链路。
筛选条件将会显示在页面顶部文本框内。
单击顶部文本框,在下拉弹窗中修改筛选条件或设置其他维度的筛选条件。
在顶部文本框直接输入查询条件。查询语法说明,请参见调用链分析查询用法说明。
说明单击文本框右侧的图标可以保存当前筛选条件。
单击文本框右侧的已保存视图可以查看已保存的筛选条件,单击目标的筛选条件可以快速查看对应筛选条件下的链路信息。
选择聚合维度,可以将筛选后的数据按照指定维度聚合。
链路列表
筛选设置完成后,调用链分析页面将会显示筛选过滤后的链路查询信息,包括Span数和HTTP错误数的柱状图,耗时百分位的时序曲线,以及Span列表。
在Span列表区域,您可以执行以下操作:
单击目标Span右侧操作列的详情,可以查看完整的链路信息。更多信息,请参见链路详情。
单击目标Span右侧操作列的日志,可以查看链路对应的日志信息。
单击右上角的图标可以增加或隐藏列表显示的参数。
将鼠标悬浮于Span参数上,单击右侧的图标,可以将当前参数值添加为筛选条件。
散点图
散点图页面以时间为横轴,耗时指标为纵轴,显示调用链的耗时分布情况。将鼠标悬浮于散点上,可以显示散点对应的调用链的基本信息。单击散点可以查看调用链对应的调用详情。更多信息,请参见链路详情。
全链路聚合
调用链分析对查询到的Span可以按照各个维度进行分析,但这些分析是针对单个Span,并未在链路级别深度分析。而全链路聚合功能支持通过指定条件查询分布式调用链路的TraceId(最多5000个),然后基于这些TraceId查询对应的Span,并聚合这些Span得出最终结果,整个过程保证聚合的链路完整性。
由于全链路聚合是按照查询条件后聚合计算相应数据的,当您选择的条件较多时,查询计算存在一定延迟,请耐心等待。
参数 | 说明 |
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 B和Span 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%。其余的请求可能因逻辑判断或者异常而未调用B和C。这里反映了请求的分布比例。
A的span数/请求倍数为10/1.00,表示每次请求只调用了一次A,但是对于B而言,4次请求有8个Span,每次请求调用了2次B。这里反映了一次请求中Span的分布比例。
A的平均自身耗时/比例为5.00ms/25.00%,表示A除了B和C之外的平均耗时为5ms,只占整体平均耗时的25%。而子Span B和C因为没有子Span,所以自身耗时即整体耗时。这里反映了耗时的分布比例。
A的异常数/异常比例为2/20.00%,表示A发生了2次异常,占整体请求的20%。B的异常数/异常比例为2/50.00%,因为每次请求调用了2次B,总的请求数是4,异常比例是50%,那么2次请求发生了异常。所以B的分布可能是:一共有4次请求,其中有2次请求调用的4个Span B都是正常的,剩下2次请求中,首次Span B的调用都发生异常,然后重新调用成功。
如果需要查看具体的调用链详情,可以将鼠标悬浮于蓝色的Span名称上,在悬浮框中可以看到推荐的调用链ID,单击TraceId即可查看。
全链路拓扑
全链路拓扑页签显示调用链聚合后的应用间拓扑。如下图所示,表示两个应用间存在调用关系,同时展示相应的请求数、错误数、响应时间等数据。
链路详情
在链路详情面板可以查看链路下的所有接口、链路开始时间、总耗时、接口是否异常、以及每个接口的调用耗时。
相关文档
为避免在出现问题后被动诊断错误原因,您还可以使用告警功能针对一个接口或全部接口创建告警,即可在出现问题时向运维团队发送通知。如何创建告警,请参见创建告警规则。