更新时间:2022-02-21 GMT+08:00

基本概念

拓扑

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

事务

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

调用链

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

应用

您可以将某类相同业务的应用放到同个应用中,并实现整个业务的应用性能管理。例如,可以将账户、产品、支付等应用,放入“商城”应用中。

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中,T即自定义阈值中设置的阈值,应用响应时延即服务时延,Apdex取值范围为0~1,计算公式如下:

Apdex=(正常调用次数*1+慢调用次数*0.5)/总调用次数

其中,

正常调用次数:表示调用耗时大于0小于T的成功调用数

慢调用次数:表示调用耗时大于等于T小于4T的成功调用数

极慢调用次数:表示调用耗时大于4T的成功调用数

总调用次数:正常调用次数+慢调用次数+极慢调用次数+错误调用次数

结合上述的Apdex原理,则计算公式表示如下:

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

表1 Apdex说明

Apdex值

颜色

说明

0.75 ≤ Apdex ≤ 1

绿色

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

0.3 ≤ Apdex < 0.75

黄色

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

0 ≤ Apdex < 0.3

红色

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

APM中如何设置Apdex阈值

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

TP99时延

TP99时延即满足百分之九十九的网络请求所需要的最低耗时。在APM中,所有的时延都是指TP99时延。

例如,有四次请求耗时分别为:10ms、100ms、500ms、20ms,那么TP99时延则是这么计算的:

4次请求中,99%的请求数为4*99%,进位取整得4。也就是99%的请求次数为4次。而满足这4次请求的最低耗时为500ms,那么TP99时延为500ms。

整体时延/服务时延

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

整体时延=TA,A的服务时延=TA,B的服务时延=TB1+TB2,C的服务时延=TC

采集探针

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

ICAgent

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