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会主动隔离异常节点,虽然业务会在正常节点上分担,但应用系统实际已损失了部分处理容量。因此,云服务状态监控必不可少。
云服务具体指标因功能特性而异。站在功能提供者的层面,通常同样需要重点关注延迟、流量、错误率、利用率等指标。此外,服务实例的动态伸缩、过负荷控制、故障自愈或迁移等可靠性关键事件也是服务健壮性的表征,如有异常需要预先干预。关键事件监控可以使用CTS服务,或自行搭建。
CES服务支持ECS、EVS、OBS、VPC、ELB、AS等IaaS服务,以及RDS数据库,DCS、DMS等高可用中间件的主要指标监控,支持用户上报自定义监控指标。如果用户自行搭建监控系统,也可以通过CES SDK获取指定服务的监控指标。
AOM服务提供了微服务应用和节点的关键指标监控能力。云容器工作负载关键指标在CSE服务中查看。函数服务关键指标在FunctionGraph控制台中查看。
3、资源监控
资源监控通常用于识别资源瓶颈分析系统性能问题。对应用系统资源进行监控时,需要先定义资源的关键指标以及对应的阈值,以便快速有效的发现业务表现和系统状态,以便在异常状态下尽早干预恢复,或定位改进系统缺陷。
关键指标需要与系统内工作负载的关键性能指标相关,并能确定为系统性能下降的早期警告信号,如系统处理的API数量及成功率,相比CPU利用率、内存利用率等基础指标,能更真实的指示系统性能问题。
常用USE方法(Utilization Saturation and Errors Method)对资源监控,包含:
- 使用率Utilization:覆盖系统资源,包括但不限于CPU、内存、网络、磁盘等。
- 饱和度Saturation:针对资源的饱和度,如CPU队列长度,注意与业务监控的黄金指标相区分。
- 错误Errors:资源处理错误,如网络丢包率等。
CES主动监控提供了虚机细粒度的监控能力,其他服务监控指标也不同程度涉及到资源使用率和错误监控。如果云服务现有能力不能满足系统要求,用户可使用CES或AOM服务的自定义指标监控能力。用户若自行搭建监控系统,需要覆盖主机资源、网络设备和Apache、Java、MySQL等第三方组件,开源的Zabbix是常见选择。
- 相关云服务和工具
- 云监控服务 CES
- 应用运维管理 AOM
- 应用性能管理 APM