如果您需要检测的指标在正常状态下起伏不定(例如RT和QPS),不同的时间段需要适配的告警阈值不同,那么您可以使用区间检测功能,通过动态阈值对指标数据进行异常检测。当数据点的异常突变超出预设的上下边界时,系统将生成区间异常检测事件,这种检测主要用于监控趋势稳定的数据或指标。
应用场景
应用性能监控:网站管理员可以使用此功能来监测站点的响应时间、请求速度等黄金指标。当某个服务的响应时间突然超出正常范围,系统会立即发出异常警告,从而使管理员能够快速定位和解决问题。
服务器资源优化:可以监测服务器的CPU和内存使用情况。如果某台服务器的资源使用率持续超过预设阈值,那么系统会自动生成异常事件。有助于团队及时调整资源分配,避免潜在的系统崩溃。
应用连接池分析:可以利用此功能来监控查询速度、并发连接数等关键指标。当线程的某些指标超出正常范围,系统会自动触发异常事件,及时优化程序性能。
微服务架构监测:在微服务架构中,各个服务之间的交互和依赖关系复杂。通过此功能,团队可以监测每个服务的资源使用和响应性能。当某个服务出现异常,可以迅速定位问题,确保整个系统的稳定运行。
示例:
某工作网站的访问量在白天(例如10:00~18:00)访问量低于1000是异常的,但在夜间(例如22:00~06:00)访问量超过1000可能是被攻击了。在这种场景下,指标的正常水位会随着时间变化而不断变化。 如果配置一个固定阈值,例如低于1000就告警,那白天访问异常时可以正常收到告警通知,但夜间如果被攻击则无法及时收到告警通知;如果使用区间检测功能,就可以智能识别正常水位,自动更新阈值区间。
前提条件
已将应用数据上报至可观测链路 OpenTelemetry 版,具体操作,请参见接入指南。
配置区间检测
- 登录ARMS控制台。
在左侧导航栏中选择
。在应用监控告警规则页面,选择
。在创建告警规则页面自定义告警名称,并选择告警检测类型为区间检测。
在告警对象区域根据需求选择对应的告警应用、指标类型和筛选条件。
参数
说明
告警应用
选择需要检测的应用。目前区间检测只支持对单个应用配置告警。
指标类型
选择需要检测的指标类型。更多信息,请参见告警规则指标说明。
选择完成后,系统将自动计算上下边界并进行实时渲染,您可以在告警条件区域预览指标走势。
说明不同的指标类型,告警规则的条件字段和筛选条件不同。
初次渲染耗时较久,大约需要2~4秒。
上下线边界的计算原理,请参见阈值区间计算原理。
筛选条件
针对指标进行进一步的筛选过滤以缩短监控范围。
告警指标的维度:
遍历:会在告警内容中透出实际触发告警的维度内容。
无:告警内容中透出这个维度所有数值的和。
= :告警中只透出当前设置维度的内容。
!=:告警中只透出不等于设置维度的内容。
包含:告警中只透出包含设置维度的内容。
不包含:告警中只透出不包含设置维度的内容。
正则匹配:告警中只透出正则匹配设置维度的内容。
在告警规则区域设置告警条件。
参数
说明
告警触发模式
区间检测只支持单条件的触发,不支持多个触发模式的组合。
告警条件
配置具体的告警条件,包含以下几个因素:
最近X分钟:选定监控的时间范围,最多可选择60分钟。
指标度量:指代的是指标可以被量化的数据或值,此处根据不同指标类型有不同的度量方式,例如调用次数,调用响应时间等。
聚合方式:对指标数据的计算,包括平均值、最大值、最小值等,同样会取决于指标和度量。
比对方式:对计算后的数据进行比对以查找出异常的点,在区间检测中包括三种比对方式:
动态阈值上下界之外:系统会自动计算当前时间的上下界,如果发现有数据点位于上界或者下界之外,则为异常数据,触发告警。
动态阈值上界之外:系统会自动计算当前时间的上下界,如果发现有数据点位于上界之外,则为异常数据,触发告警。
动态阈值下界之外:系统会自动计算当前时间的上下界,如果发现有数据点位于下界之外,则为异常数据,触发告警。
告警等级:从P1~P4 的告警等级设置,代表不同的严重程度。
在数据预览区域,蓝色线条代表实际的数据点,绿色区域即上下边界范围。
容忍度
基于系统自动计算的上下界为基础进行边界拉伸或者收缩,如果容忍度越高(向右滑动),则上下边界越宽,那么数据被诊断为异常数据阈值越高,越不容易触发告警;如果容忍度越低(向左滑动),则上下边界越窄,那么数据被诊断为异常数据阈值越低,越容易触发告警。
告警数预测
查看选定时间段内指标预计超出阈值的次数,单击具体的告警数值,可以查询历史时间点触发告警的指标数值。
每一次新建或修改告警规则时,都推荐您使用告警数预测功能,该功能通过算法对历史数据进行分析,对选定时间段内进行告警数预测,方便您调整阈值。更多信息,请参见告警数预测功能说明。
设置告警通知和高级告警设置。
参数
说明
告警通知
极简模式
通知对象:创建通知对象的操作,请参见告警通知对象。
通知时段:选择告警通知时间段。
重复策略:
不需要升级策略,告警未恢复状态下只发送一次。
设置重复频率。当告警未恢复时,告警会以设置的重复频率循环发送告警信息直至告警恢复。
普通模式
通知策略:
不指定通知规则:告警被触发时不会发送告警,仅当通知策略的匹配规则被触发时才会发送告警。
指定通知规则发送告警:告警被触发时,ARMS通过指定通知策略的通知方式发送告警信息。您可以选择已有的通知策略,也可以新建一个通知策略。更多信息,请参见通知策略。
高级告警设置
无数据情况
用于无数据、复合指标和环比同比等异常数据的修复。当告警指标没有达到设置的条件时,告警数据修复为0、1或不触发告警。
更多详细信息,请参见告警管理名词解释。
设置完成后单击保存。
阈值区间计算原理
ARMS的区间检测功能主要基于Prophet算法。配置区间检测任务之后,ARMS会在后台以每24h一次的频率,学习指标历史7天数据的特征,提取指标趋势性、季节性等特征,得到指标未来24h的预测曲线。再根据指标自身的波动情况,也就是误差方差的大小,为未来一天指标的数据做出一个估计区间。在配置区间检测告警时,可以预览算法计算出来的上下边界。下图中,蓝线是指标的实际值,绿色的阴影是上下边界。
与静态阈值推荐功能不同的地方在于,当业务变化导致指标正常水位发生变化后,无需通过手动编辑告警规则的方式更新阈值。这是因为ARMS持续地在以每天一次的频率学习指标的特征,并只预测未来一天的上下边界,因此,您无需多次手动调整阈值。
告警数预测功能说明
告警数预测功能通过算法对历史数据进行分析,从而实现在选定时间段内对告警数进行预测,并展示历史告警发生的时刻。帮助您设置告警静态阈值或调整区间检测的告警灵敏度。
告警数预测原理
ARMS会根据指标历史24h数据,计算指标会超出每个阈值的次数来预测在该设定下告警的数量。并且,ARMS提供了指标详细信息,您可以看到指标实际值超出阈值的具体时间。您可以根据这些信息调整阈值,以适配实际业务需求。