
# RES07-01 定义关键指标与阈值并监控
对资源进行监控时，需要先定义资源的关键指标以及对应的阈值，以便快速有效地发现业务表现和系统状态，以便在异常状态下尽早干预恢复，或定位改进系统缺陷。
- **风险等级**
  中
  
- **关键策略**
  - 关键指标需要与系统内工作负载的关键性能指标相关，并能确定为系统性能下降的早期警告信号，如系统处理的API数量及成功率，相比CPU利用率、内存利用率等基础指标，能更真实的指示系统性能问题。
  
  - 从可用性保证出发，结合有效性和简化，建议应用系统至少从业务状态、服务状态、资源状态三个层面进行监控。根据业务规模，可以使用CES服务（侧重在I层服务）或AOM/APM服务（侧重在P层业务），也可以借助Prometheus、Zabbix、Zipkin等部件自行搭建，使用Grafana等部件进行界面展示和时序对齐。
  
  
  1、业务监控
  以下4个黄金指标，是针对大量分布式监控的经验总结，可以作为业务监控的参考，包括：
  - 延迟：注意需要区分请求成功的延迟和请求失败的延迟。
  
  - 流量：对系统业务负荷的监控。
  
  - 错误率：注意区分显示失败（如HTTP 500错误）和隐式失败（如HTTP 200中包含了错误内容）。
  
  - 饱和度：侧重在对系统中最为受限的瓶颈资源的监控。
  
  
  对于基于Java的应用系统，华为云用户可使用APM服务实现基于调用链的业务延迟和错误率监控。函数服务FunctionGraph、微服务引擎CSE提供了流量、延迟和错误率监控能力。基于API网关暴露接口的应用，可使用APIG服务提供的流量、延迟和错误率监控能力。如果云服务现有能力不能满足系统要求，用户也可以自行埋点或基于Zipkin开源框架实现调用链跟踪、延迟和流量监控。
  2、服务监控
  由于服务实例的冗余配置和应用系统的容错保护，业务指标正常并不意味着服务实例状态一定正常。例如，在配置了ELB的虚拟机集群中，ELB会主动隔离异常节点，虽然业务会在正常节点上分担，但应用系统实际已损失了部分处理容量。因此，云服务状态监控必不可少。
  云服务具体指标因功能特性而异。站在功能提供者的层面，通常同样需要重点关注延迟、流量、错误率、利用率等指标。此外，服务实例的动态伸缩、过负荷控制、故障自愈或迁移等可靠性关键事件也是服务健壮性的表征，如有异常需要预先干预。关键事件监控可以使用CES服务，或自行搭建。
  CES服务支持ECS、EVS、OBS、VPC、ELB、AS等IaaS服务，以及RDS数据库，DCS、DMS等高可用中间件的主要指标监控，支持用户上报自定义监控指标。如果用户自行搭建监控系统，也可以通过CES SDK获取指定服务的监控指标。
  AOM服务提供了微服务应用和节点的关键指标监控能力。云容器工作负载关键指标在CSE服务中查看。函数服务关键指标在FunctionGraph控制台中查看。
  3、资源监控
  资源监控通常用于识别资源瓶颈分析系统性能问题。对应用系统资源进行监控时，需要先定义资源的关键指标以及对应的阈值，以便快速有效地发现业务表现和系统状态，以便在异常状态下尽早干预恢复，或定位改进系统缺陷。
  常用USE方法（Utilization Saturation and Errors Method）对资源监控，包含：
  - 使用率Utilization：覆盖系统资源，包括但不限于CPU、内存、网络、磁盘等。
  
  - 饱和度Saturation：针对资源的饱和度，如CPU队列长度，注意与业务监控的黄金指标相区分。
  
  - 错误Errors：资源处理错误，如网络丢包率等。
  
  
  CES主动监控提供了虚机细粒度的监控能力，其他服务监控指标也不同程度涉及到资源使用率和错误监控。如果云服务现有能力不能满足系统要求，用户可使用CES或AOM服务的自定义指标监控能力。用户若自行搭建监控系统，需要覆盖主机资源、网络设备和Apache、Java、MySQL等第三方组件，开源的Zabbix是常见选择。
  
- **相关云服务和工具**
  - 云监控服务 CES
  
  - 应用运维管理 AOM
  
  - 应用性能管理 APM
   
 
