更新时间:2024-05-22 GMT+08:00

基本概念

拓扑

拓扑是对应用间调用关系和依赖关系的可视化展示(拓扑图)。拓扑图主要是由圆圈、箭头连线、资源组成。每个圆圈代表一个服务,圆圈上每个分区代表一个实例。每个圆圈中的分数表示活跃的实例/总实例数。分数下的内容分别表示在当前所选的时间中应用的服务时延、应用被调用次数、错误数。每个箭头连线代表一个调用关系。调用次数越多,连线越粗。连线上的数据表示吞吐量和整体时延。吞吐量即所选时间的调用次数。拓扑使用Apdex对用户应用性能满意度进行量化,并使用不同颜色对不同区间Apdex的值进行标识,方便用户快速发现问题,并进行定位。

事务

事务表示一个HTTP请求,是从“用户请求 > webserver > DB > webserver > 用户请求”的完整过程。现实生活中,事务即一次任务,用户使用应用完成一项任务,比如电商应用程序中一次商品查询就是一个事务,一次支付也是一个事务。

调用链

调用链跟踪、记录业务的调用过程,可视化地还原业务请求在分布式系统中的执行轨迹和状态,用于性能及故障快速定界。

应用

应用是提供服务所需功能的软件,可以对相同或者相近业务的一组服务进行逻辑划分。您可以将某类相同业务的服务放到同一个应用中,并实现整个业务的应用性能管理。例如,可以将账户、产品、支付等服务,放入“商城”应用中。

Apdex

Apdex全称是Application Performance Index,是由Apdex联盟开发的用于评估应用性能的工业标准。Apdex标准从用户的角度出发,将对应用响应时间的表现,转为用户对于应用性能的可量化范围为0-1的满意度评价。

  • Apdex的原理

Apdex定义了应用响应时间的最优门槛为T(即Apdex阈值,T由性能评估人员根据预期性能要求确定),然后根据应用响应时间结合T定义了三种不同的性能表现:

Satisfied(满意):应用响应时间低于或等于T,比如T为1.5s,则一个耗时1s的响应结果则可以认为是satisfied的。

Tolerating(可容忍):应用响应时间大于T,但同时小于或等于4T。假设应用设定的T值为1s,则4*1=4s为应用响应时间的容忍上限。

Frustrated(烦躁期):应用响应时间大于4T。

  • APM如何计算Apdex

    APM中,Apdex阈值即自定义阈值中设置的阈值,应用响应时延即服务时延,Apdex取值范围为0~1,计算公式如下:

    Apdex=(满意样本+可容忍样本*0.5)/样本总数

其计算结果表示应用的不同性能状态,即用户对应用的体验结果,采用不同的颜色表示,如表1

表1 Apdex说明

Apdex值

颜色

说明

0.75 ≤ Apdex ≤ 1

绿色

表示应用、实例或事务被调用时响应很快,用户体验较满意。

0.3 ≤ Apdex < 0.75

黄色

表示应用、实例或事务被调用时响应较慢,用户体验一般。

0 ≤ Apdex < 0.3

红色

表示应用、实例或事务被调用时响应极慢,用户体验较差。

-

黑色

表示没有调用应用、实例或者事务。

  • APM中如何设置Apdex阈值

您可以可根据实际业务对Apdex阈值进行设置,设置方法详见自定义阈值

TP99时延

TP99时延=完成99%的网络请求所需要的最短耗时。在APM中,所有的时延都是指TP99时延。

举例:假设总请求数为100个,它们的请求耗时分别为1s、2s、3s、4s……98s、99s、100s。若要完成99%的请求,我们至少需要99s,故TP99为99s。

计算:将所有请求按照耗时从小到大排序,第(99%*总请求数)个请求的耗时即为TP99时延。若(99%*总请求数)出现小数则向上取整。

整体时延/服务时延

时延指调用从发起请求到获得响应的耗时。APM中,整体时延指整个请求的总耗时,服务时延指单个服务的耗时,即整体耗时减去调用其他安装探针服务的耗时。例如,有服务A、B、C,A调用B,B调用C,如下图示:

  • A服务整体时延=Ta,服务时延=Ta-Tb1-Tb2-Tc
  • B服务整体时延=Tb1+Tb2+Tc,服务时延=Tb1+Tb2
  • C服务整体时延=Tc,服务时延=Tc

探针

探针通过字节码增强技术进行调用埋点,生成数据。该数据后续会被ICAgent采集,之后ICAgent会将数据上报并呈现在界面中。开启了内存检测机制后,如果检测到实例内存过大时探针会进入休眠状态,停止数据采集。APM如何采集探针数据

网格

Istio网格是以非侵入的方式获取流入、流出应用程序的数据。ICAgent和CCE服务的Istio mixer组件会获取并处理网格数据,然后上报并呈现在APM服务界面中。启用Istio,开启网格数据的采集。APM如何采集网格数据

ICAgent

ICAgent是APM的采集代理,运行在应用所在的服务器上,用于实时采集探针所获取的数据,所采集的数据及用途见服务声明安装ICAgent是使用APM的前提。