JVM 堆内存告警
告警指标:jvm-memory-heap-usage
告警等级:P2 >= 0.85, P1 >= 0.95
对应措施:JVM GC 无法回收堆内存,dump JVM 内存,交由开发同学进行分析,强制执行 JVM GC,若无法成功回收内存,则杀死该 Pod,并重新拉起
告警表达式:sum(jvm_memory_used_bytes{app=~"appName1|appName2|appName3", area="heap"}) by(app, Pod) / sum(jvm_memory_max_bytes{app=~"appName1|appName2|appName3", area="heap"}) by(app, Pod)
JVM 非堆内存告警
告警指标:jvm-memory-nonheap-usage
告警等级:P2 >= 0.85, P1 >= 0.95
对应措施:JVM GC 无法回收堆外内存,dump JVM 内存,交由开发同学进行分析,强制执行 JVM GC,若无法成功回收内存,则杀死该 Pod,并重新拉起
告警表达式:sum(jvm_memory_used_bytes{app=~"appName1|appName2|appName3", area="nonheap"}) by(app, Pod) / sum(jvm_memory_max_bytes{app=~"appName1|appName2|appName3", area="nonheap"}) by(app, Pod)
JVM Minor GC 次数警告
告警指标:jvm_minor_gc_seconds_count
告警等级:P2 >= 0.20, P1 >= 0.50
对应措施:JVM Minor GC 频繁,dump JVM 内存,通知开发同学分析 Minor GC 频繁的原因
告警表达式:irate(jvm_gc_pause_seconds_count{app=~"appName1|appName2|appName3", action="end of minor GC"}[2m])
JVM Major GC 次数警告
告警指标:jvm_major_gc_seconds_count
告警等级:P2 >= 0.01, P1 >= 0.02
对应措施:JVM Major GC 频繁,若 JVM 内存无法被成功回收,dump JVM 内存,交由开发同学进行分析,杀死该 Pod,并重新拉起
告警表达式:irate(jvm_gc_pause_seconds_count{app=~"appName1|appName2|appName3", action="end of major GC"}[2m])
服务 http 接口平均响应时间
告警指标:http_average_response_time
告警等级:P2 >= 2.00, P1 >= 5.00
对应措施:接口平均响应时间过长,若是服务本身性能问题造成响应不及时,通知开发同学查看监控,分析原因
告警表达式:sum(irate(http_server_requests_seconds_sum{app=~"appName1|appName2|appName3", uri!~".*actuator.*"}[2m])) by (app, Pod, uri) / sum(irate(http_server_requests_seconds_count{app=~"appName1|appName2|appName3", uri!~".*actuator.*"}[2m])) by (app, Pod, uri)
服务 http 接口单次最大响应时间
告警指标:http_current_response_time
告警等级:P2 >= 10.00, P1 >= 60.00
对应措施:接口单次响应时间过长,可能是由于网络问题,Pod 拒绝连接,node load 过高等问题,需要具体分析
告警表达式:http_server_requests_seconds_max{app=~"appName1|appName2|appName3"}
服务 http 接口响应异常
告警指标:http_response_exception
告警等级:P2 >= 0, P1 >= 0.2
对应措施:程序 bug,需要通知开发同学查看日志,分析问题
告警表达式:sum by(app, Pod, uri, exception) (irate(http_server_requests_seconds_count{app=~"appName1|appName2|appName3", exception!="None"}[2m]))
服务 http 接口 qps
告警指标:http_request_qps
告警等级:P2 >= 800.00, P1 >= 1000.00
对应措施:qps 高于压测阈值,扩容
告警表达式:sum(irate(http_server_requests_seconds_count{app=~"appName1|appName2|appName3", uri!~".*actuator.*"}[2m])) by (app, Pod)