EMR Serverless StarRocks提供了告警设置功能,通过对重要的监控指标设置报警规则,可以实时了解实例的运行状况,及时处理潜在风险,保障实例稳定运行。本文介绍如何配置监控告警。
背景信息
EMR Serverless StarRocks的监控报警是通过阿里云ARMS产品实现的。通过ARMS,您可以设置监控项,在触发监控项报警规则时,通知报警联系组中的所有联系人。您也可以维护报警监控项对应的报警联系人组,以便发生报警时,能及时通知到相关联系人。
操作步骤
- 登录EMR Serverless控制台。
- 在顶部菜单栏处,根据实际情况选择地域。
- 在实例列表页面,单击目标实例ID。
- 在实例管控页面,单击监控告警页签。
- 在监控告警页面,单击告警设置页签。
- 在告警设置页面,单击右上角的创建StarRocks告警规则。
- 在创建StarRocks告警规则页面,设置监控告警规则。当前StarRocks支持自定义PromQL创建告警规则,告警规则各字段含义说明如下。
参数 说明 示例 告警名称 告警的名称。 BE实例的CPU空闲率小于40% 参考指标 可选。参考指标中包括了常见指标的自定义PromQL配置方法,您可以选择已有的类似指标来进行填充,然后参考对应指标的配置方式进行修改以完成告警配置。参考指标参数会根据选择的Prometheus实例类型自动过滤支持的告警指标。 无 自定义PromQL语句 使用PromQL语句设置告警规则表达式。 说明 您可以查看监控报表中图表的Inspect功能的JSON内容来获取PromQL如何写。常用监控告警语句,请参见常用监控告警语句。
sum(rate(starrocks_be_cpu{mode="idle", job="kubernetes-pods"}[1m])) by (job, kubernetes_pod_name) / sum(rate(starrocks_be_cpu{job="kubernetes-pods"}[1m])) by (job, kubernetes_pod_name) < 0.4
数据预览 数据预览区域展示告警条件对应的PromQL语句,并以时序曲线的形式展示当前告警规则配置的监控指标的值。默认仅展示一个资源的实时值,您可以在该区域的筛选框中选择目标资源以及时间区间来查看不同资源和不同时间区间的值。 说明 告警阈值将会以一条红色直线的形式显示在时序曲线中,满足告警阈值的时序曲线显示为深红色,不满足告警阈值的时序曲线显示为蓝色。将鼠标悬浮于时序曲线上,可以查看对应时间点的资源详情。在时序曲线上选中一段时间,可以查看对应时间段的时序曲线。无 持续时间 - 当告警条件满足时,直接产生告警事件:有任何一个数据点满足阈值,就会产生告警事件。
- 当告警条件满足持续N分钟时,才产生告警事件:只有当数据点满足阈值的时间大于等于N分钟时,才产生告警事件。
1 告警等级 自定义告警等级。默认告警等级为默认,告警严重程度按照默认、P4、P3、P2、P1逐级上升。 默认 告警内容 收到的告警信息。您可以使用Go template语法在告警内容中自定义告警参数变量。 命名空间: {{$labels.ClusterId}} BE实例的CPU空闲率小于40%,当前值{{ printf "%.2f" $value }}% 高级设置 告警检查周期 设置告警规则每隔多少分钟进行一次检查,判断数据是否满足告警条件。默认1分钟,最少设置1分钟。 默认 快速指定通知策略 - 不指定通知策略:当完成创建告警规则后,您可以在通知策略页面,新建通知策略并指定匹配规则和匹配条件(例如告警规则名称等)来匹配该告警规则。当该告警规则被触发产生告警事件后,告警信息会被发送给通知策略中指定的联系人或联系人组。更多信息,请参见通知策略。
- 指定某个通知策略:ARMS会自动在对应的通知策略添加一条匹配规则,匹配规则内容为告警规则ID(以告警规则名称的方式呈现),以确保当前告警规则产生的告警事件一定可以被选择的通知策略匹配到。
重要 快速指定通知策略只能保证当前告警规则产生的告警事件一定能够被所选的通知策略匹配到并且产生对应告警。但是,当前告警规则产生的事件同时也可能被其他设置了模糊匹配的通知策略匹配到并且产生告警。告警规则产生的告警事件和通知策略之间是多对多的匹配关系。不指定通知规则 标签 设置告警标签,设置的标签可用作通知策略匹配规则的选项。 ClusterId:xxxxxxx 注释 设置告警的注释。 无 - 单击保存,报警规则将自动生效。
常用监控告警语句
告警项 | PromQL |
---|---|
BE节点CPU空闲率小于20%告警 | sum(rate(starrocks_be_cpu{mode="idle", job="kubernetes-pods"}[1m])) by (job, kubernetes_pod_name) / sum(rate(starrocks_be_cpu{job="kubernetes-pods"}[1m])) by (job, kubernetes_pod_name) < 0.2 |
BE磁盘容量使用率大于80%告警 | (sum(starrocks_be_disks_total_capacity) by (kubernetes_pod_name, path) - SUM(starrocks_be_disks_avail_capacity) by (kubernetes_pod_name, path)) / sum(starrocks_be_disks_total_capacity) by (kubernetes_pod_name, path) >0.8 |
BE磁盘IO使用率大于80%告警 | starrocks_be_max_disk_io_util_percent > 80 |
每秒查询数大于1000告警 | rate(starrocks_fe_query_total[1m]) > 1000 |