
# 基本概念
#### 拓扑
拓扑是对应用间调用关系和依赖关系的可视化展示（拓扑图）。拓扑图主要是由圆圈、箭头连线、资源组成。每个圆圈代表一个服务，圆圈上每个分区代表一个实例。每个圆圈中的分数表示活跃的实例/总实例数。分数下的内容分别表示在当前所选的时间中应用的[服务时延]、应用被调用次数、错误数。每个箭头连线代表一个调用关系。调用次数越多，连线越粗。连线上的数据表示吞吐量和[整体时延]。吞吐量即所选时间的调用次数。拓扑使用[Apdex]对用户应用性能满意度进行量化，并使用不同颜色对不同区间[Apdex]的值进行标识，方便用户快速发现问题，并进行定位。
![](https://support.huaweicloud.com/productdesc-apm/zh-cn_image_0173383863.png "点击放大")
#### 事务
事务表示一个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。
![](https://support.huaweicloud.com/productdesc-apm/zh-cn_image_0164873333.png "点击放大")
- APM如何计算Apdex APM中，Apdex阈值即[自定义阈值](https://support.huaweicloud.com/usermanual-apm/apm_02_0016.html#section0)中设置的阈值，应用响应时延即服务时延，Apdex取值范围为0～1，计算公式如下：
  Apdex=（满意样本+可容忍样本\*0.5）/样本总数
  
其计算结果表示应用的不同性能状态，即用户对应用的体验结果，采用不同的颜色表示，如[表1]：
 表1Apdex说明 
| Apdex值              | 颜色 | 说明                          |
|:---|:---|:---|
| 0.75 ≤ Apdex ≤ 1    | 绿色 | 表示应用、实例或事务被调用时响应很快，用户体验较满意。 |
| 0.3 ≤ Apdex \< 0.75 | 黄色 | 表示应用、实例或事务被调用时响应较慢，用户体验一般。  |
| 0 ≤ Apdex \< 0.3    | 红色 | 表示应用、实例或事务被调用时响应极慢，用户体验较差。  |
| -                   | 黑色 | 表示没有调用应用、实例或者事务。            |
   
- APM中如何设置Apdex阈值
您可以可根据实际业务对Apdex阈值进行设置，设置方法详见[自定义阈值](https://support.huaweicloud.com/usermanual-apm/apm_02_0016.html#section0)。
#### 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，如下图示：
![](https://support.huaweicloud.com/productdesc-apm/zh-cn_image_0289766951.png "点击放大")
- A服务整体时延=T~a~，服务时延=T~a~-T~b1~-T~b2~-T~c~
- B服务整体时延=T~b1~+T~b2~+T~c~，服务时延=T~b1~+T~b2~
- C服务整体时延=Tc，服务时延=T~c~
 
#### 探针
探针通过字节码增强技术进行调用埋点，生成数据。该数据后续会被ICAgent采集，之后ICAgent会将数据上报并呈现在界面中。开启了内存检测机制后，如果检测到实例内存过大时探针会进入休眠状态，停止数据采集。
#### 网格
Istio网格是以非侵入的方式获取流入、流出应用程序的数据。ICAgent和CCE服务的Istio mixer组件会获取并处理网格数据，然后上报并呈现在APM服务界面中。启用Istio，开启网格数据的采集。
#### ICAgent
ICAgent是APM的采集代理，运行在应用所在的服务器上，用于实时采集探针所获取的数据，所采集的数据及用途见[服务声明](https://www.huaweicloud.com/declaration/tsa_apm.html)。[安装ICAgent](https://support.huaweicloud.com/usermanual-apm/apm_02_0013.html)是使用APM的前提。
