ADP(Application Dependency and Performance)的监控指标与告警策略设计围绕资源使用、应用性能及业务健康状态展开,其核心内容如下:
一、核心监控指标
1. 资源使用类
- 计算资源
- CPU:请求量(component:cpu_request:sum)、限制量(component:cpu_limit:sum)、实际使用率(component:cpu_utilisation:ratio)
- 内存:请求量(component:memory_request:sum)、实际使用量(component:memory_working_set_bytes:sum)、内存泄漏率(通过Memory Leak Status检测)
- 存储资源
- 持久卷总容量(component:storage_total:sum)、剩余可用容量(component:storage_available:sum)、使用率(component:storage_usage:ratio)
- 网络资源
- 网络发送/接收速率(component:net_bytes_transmitted:sum、component:net_bytes_received:sum)
2. 应用性能类
- 响应时间:平均响应时间、P95/P99分位延迟(通过Performance Characterization分析)
- 吞吐量:每秒请求数(QPS)、事务处理速率(Requests Serviced)
- 错误率:HTTP错误码(4xx/5xx)、异常堆栈捕获(Errors健康指标)
3. 业务健康类
- 可用性:服务存活状态(Availability箭头标识)、集群节点健康度
- 负载均衡:Pod实例数量(component:pod_count:sum)、请求分发均衡度
- 业务指标:自定义指标(如订单处理成功率、API调用成功率)
二、告警策略设计
1. 阈值触发告警
- 静态阈值:
- CPU使用率>95%持续2分钟触发扩容告警
- 内存泄漏率>0持续5分钟触发内存清理告警
- 动态阈值:
- 基于历史数据自动调整基线(如工作日/周末流量差异)
2. 复合条件告警
- 关联规则:
- 磁盘使用率>80% 且 CPU使用率>70%时触发资源紧张告警
- 响应时间突增200% 或 错误率>5%时触发业务异常告警
3. 多级告警分级
- 紧急(Critical):服务不可用(如Availability红箭头),需立即处理
- 警告(Warning):资源使用率超80%,建议扩容
- 提示(Info):非关键日志异常(如临时性网络抖动)
三、告警通知与处理
1. 通知渠道
- 即时通讯:钉钉机器人(支持Markdown格式消息)、企业微信
- 邮件告警:自定义邮件模板(HTML/纯文本),支持附件(如堆栈日志)
- 集成第三方:通过Webhook对接PagerDuty、OpsGenie等运维平台
2. 告警抑制与静默
- 重复告警抑制:同一问题5分钟内仅通知一次
- 静默规则:维护窗口期自动屏蔽非关键告警
3. 自动化处理
- 自愈脚本:内存泄漏触发自动重启服务、磁盘满时清理日志
- 扩容策略:K8s HPA自动扩展Pod实例(基于CPU/内存阈值)
四、典型场景示例
场景1:数据库性能瓶颈
- 监控指标:
- 数据库连接池耗尽(Active Sessions达阈值)
- 慢查询比例>10%(通过Performance Histogram识别)
- 告警动作:
- 触发扩容请求(增加只读副本)
- 通知DBA团队并附慢查询日志
场景2:微服务响应延迟
- 监控指标:
- 服务调用链延迟超过SLA(通过Delay Analysis定位瓶颈节点)
- 线程池阻塞率>80%
- 告警动作:
- 自动触发熔断机制
- 通知开发团队进行代码审查