
# 基本概念
#### 应用拓扑
应用拓扑是针对应用的调用关系和依赖关系的可视化展示。应用拓扑图主要是由圆圈、箭头连线、资源组成。每个箭头连线代表一个调用关系。连线上的数据表示请求量、平均RT和error数。拓扑使用平均RT进行量化，使用不同颜色对不同区间RT值进行标识，方便用户快速发现问题，并进行定位。
- 数据库：当数据库调用时间≥100ms时会被标记为黄色，当数据库调用时间≥200ms时会被标记为红色。
- 缓存：当缓存调用时间≥10ms时会被标记为黄色，当缓存调用时间≥30ms时会被标记为红色。
- 其他接口调用：当其他接口调用时间≥500ms时会被标记为黄色，当其他接口调用时间≥1000ms时会被标记为红色。
- 当出现error数大于0时会被标记为红色。
图1应用拓扑   
![](https://support.huaweicloud.com/productdesc-apm2/zh-cn_image_0000001196297610.png "点击放大")
#### 调用链
调用链跟踪并记录应用的调用过程，可视化地还原应用请求在系统中的执行路线和对应状态，用于性能及故障快速定位。
#### APM Agent
APM Agent通过字节码增强技术进行调用埋点，运行在应用所在的服务器上，实时采集应用性能相关的数据，所采集的数据及用途参见[服务声明](https://www.huaweicloud.com/declaration/tsa_apm.html)。安装APM Agent是使用APM服务的前提。
#### URL跟踪
在应用的调用关系追踪场景中，可以将某个重要的调用关系进行标示，称之为URL跟踪，比如电子商务系统的创建订单的接口调用，是从"用户请求 \> webserver \> DB \> webserver \> 用户请求"的完整过程。
被标示为URL跟踪的调用关系，APM会重点跟踪由此引起的下游的一系列调用。通过URL跟踪可以让用户跟踪某一些重要接口调用与下游的服务调用关系，从更细粒度角度发现问题。
#### 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-apm2/zh-cn_image_0000001470571029.png "点击放大")
  
- APM如何计算Apdex APM中，Apdex阈值即请求响应达到满意程度的最大时间。应用响应时延即服务时延，Apdex取值范围为0～1，计算公式如下：
  Apdex=（满意样本+可容忍样本\*0.5）/样本总数
  
 
#### CMDB配置管理数据库
CMDB全称是Configuration Management DataBase，通过CMDB，可以结构化的组织并展示应用相关的资源配置信息，方便用户对应用进行全方位的监控和管理。主要概念如下：
- **应用**： 一个应用代表一个逻辑单元，是一个全局概念，各个region都可以看到相同的应用信息，比如一个租户下面比较独立的功能模块可以定义为一个应用。应用可以跟企业项目关联，也可以不关联，关联企业项目后，按企业项目的权限进行管理，如果不关联企业项目，那么按照IAM权限进行管理。
- **子应用**：在一个应用下面可以创建多个子应用，主要起文件夹和管理的功能。子应用为全局概念，当前最多支持三层子应用。
- **组件**：组件指一个应用程序或者微服务，为全局概念，一般跟下面的环境一起组合使用，一个组件可以包含一个或者多个环境。比如一个订单的应用程序，包含功能测试环境，压力测试环境，预发环境以及现网环境等。
- **环境**：一个组件或者程序，由于部署不同的配置参数，形成多个环境。每个环境都有region属性，可以通过region信息实现环境的过滤，也可以在环境上打上一个或多个标签，通过标签进行环境过滤。
- **实例**：实例是环境下的一个进程，名称由主机名+ip+实例名称组成。一个环境一般是部署在不同主机上或不同容器中，如果部署在同一主机上，会通过实例名称进行区分。
- **环境标签**：环境标签是在环境上的一个属性，多个环境可能具有相同的标签，可以通过标签对环境进行过滤。标签也承载公共配置能力，比如在某个标签上设置的配置，各个具有标签的环境都共享。需注意环境标签定义在应用层面，也就是说一个标签只能添加在本应用下的环境，不能跨应用进行。
 
