SpringBoot Actuator Prometheus 常用告警指标

643 阅读2分钟

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)