报警管理
本文从业务持续性、集群可用性、机器负载等多个维度介绍需要关注的报警项及其处理办法。
备注
以下示例中,所有变量均以 $ 为前缀,请自行根据业务环境自行替换。例如,$job_name 需替换为 Prometheus 配置中对应的 Job Name,$fe_leader 需替换为对应 Leader FE 的 IP 地址。
服务挂起报警
FE 服务挂起
PromSQL
count(up{group="fe", job="$job_name"}) >= 3
报警描述
当存活的 FE 节点个数小于该值时发送报警。您可以根据实际 FE 节点个数调整。
处理办法
尝试拉起挂掉的 FE 节点。
BE 服务挂起
PromSQL
node_info{type="be_node_num", job="$job_name",state="dead"} > 1
报警描述
当挂起的 BE 节点个数大于 1 时发送报警。
处理办法
尝试拉起挂掉的 BE 节点。问题排查参考 BE Crash 问题排查。
机器负载报警
BE CPU 报警
PromSQL
(1-(sum(rate(starrocks_be_cpu{mode="idle", job="$job_name",instance=~".*"}[5m])) by (job, instance)) / (sum(rate(starrocks_be_cpu{job="$job_name",host=~".*"}[5m])) by (job, instance))) * 100 > 90
报警描述
当 BE CPU Utilization 超过 90% 时发送报警。
处理办法
查看当下是否有大查询或者进行过大量数据导入,并发送给支持人员进行定位。
-
通过
top命令查看进程的资源占用状况。top -Hp $be_pid -
通过
perf命令收集分析性能数据。# 建议执行以下命令 1-2 分钟,然后通过 CTRL+C 终止。
sudo perf top -p $be_pid -g >/tmp/perf.txt
备注
紧急情况下,为尽快恢复服务,可尝试在保留 Stack 后重启对应的 BE 节点。此处紧急情况是指 BE 节点进程 CPU 监控持续异常打满,无法通过有效手段定位异常并降低 CPU 使用率。
内存报警
PromSQL
(1-node_memory_MemAvailable_bytes{instance=~".*"}/node_memory_MemTotal_bytes{instance=~".*"})*100 > 90
报警描述
当内存使用率超过 90% 时发送报警。
处理办法
您可以参考 内存问题排查 或者 获取 Heap Profile 排查。
备注
- 紧急情况下,为尽快恢复服务,可尝试重启对应的 BE 服务。此处紧急情况是指 BE 节点进程内存监控持续异常打满,无法通过有效手段定位异常并降低内存使用。
- 如果是其他混合部署的服务影响了系统,紧急情况下可优先考虑终止其他服务。