跳转至

区间检测 V2


V2 版本的区间检测是以当前检测指标的的历史数据建立的置信区间来预测正常波动范围。观测云系统会对比当前时间段的数据特征与历史数据,检测数据是否超出了预定的置信区间。如果数据点超出了这个范围,系统将判定为异常并可能触发警报;若数据点在正常范围内,则系统会继续监控,确保实时数据的稳定性和安全性。

主要特点:

  • 深入分析:以检测指标的的历史数据建立的置信区间来预测正常波动范围;
  • 持续更新:由观测云算法团队持续更新,以提供更多的数据处理能力。

概念先解

置信区间范围 (confidence_interval):一个衡量指标,用于界定时序数据在特定检测范围内的置信区间的上下界限的容忍度。该参数的取值范围是1%至100%。对于波动性较大且随机性强的数据,可以适当选择较大的容忍度值;相反,对于波动较为规律的数据,则可以相应减小容忍度范围。

设置较大的置信区间范围会导致上下边界较宽,从而减少检测到的异常点数量。如果置信区间设置得过小,可能会检测出大量异常值。而如果置信区间设置得过大,则可能无法检测到任何异常。因此,根据数据的不同特性,合理设置 confidence_interval 参数至关重要。正确的参数设置能够确保既不遗漏重要的异常信号,也不对数据中的正常波动过度敏感。

图例:

新建

点击监控器 > 新建监控器 > 区间检测,进入区间检测规则配置页面。

步骤一:检测配置

1)检测频率:检测规则的执行频率,默认 10 min,不可更改。

2)检测指标:监控的指标数据。

字段 说明
数据类型 当前检测的数据类型,仅支持指标数据。
指标集 当前检测指标所在的指标集。
指标 当前检测所针对的指标。
聚合算法 包含 Avg by(取平均值)、Min by(取最小值)、Max by(取最大值)、Sum by(求和)、Last(取最后一个值)、First by(取第一个值)、Count by(取数据点数)、Count_distinct by(取非重复的数据点数)、p50(取中位数值)、p75(取处于75%位置的值)、p90(取处于 90% 位置的值)、p99(取处于 99% 位置的值)。
检测维度 配置数据里对应的字符串类型(keyword)字段都可以作为检测维度进行选择,目前检测维度最多支持选择三个字段。通过多个检测维度的字段组合,可以确定一个确定的检测对象,观测云会判断某个检测对象对应的统计指标是否满足触发条件的阈值,若满足条件则产生事件。(例如选择检测维度【host】与【host_ip】,则检测对象可以为 {host: host1, host_ip: 127.0.0.1})
筛选条件 基于指标的标签对检测指标的数据进行筛选,限定检测的数据范围;支持添加一个或多个标签筛选;支持模糊匹配和模糊不匹配的筛选条件。
别名 自定义检测指标名称。
查询方式 支持简单查询和表达式查询,详情参考 查询

3)触发条件:设置告警级别的触发条件:您可任意配置紧急、重要、警告、正常的其中一种触发条件。支持向上(数据升高)、向下(数据下降)、向上或向下 3 种形式的数据比较。

配置触发条件及严重程度,当查询结果为多个值时,任一值满足触发条件则产生事件。

更多详情,可参考 事件等级说明

告警级别

1、告警级别紧急(红色)、重要(橙色)、警告(黄色):基于配置条件判断运算符。

2、告警级别正常(绿色):基于配置检测次数,说明如下:

  • 每执行一次检测任务即为 1 次检测,如【检测频率 = 5 分钟】,则 1 次检测= 5 分钟;
  • 可以自定义检测次数,如【检测频率 = 5 分钟】,则 3 次检测 = 15 分钟。
级别 描述
正常 检测规则生效后,产生紧急、重要、警告异常事件后,在配置的自定义检测次数内,数据检测结果恢复正常,则产生恢复告警事件。
⚠ 恢复告警事件不受告警沉默限制。若未设置恢复告警事件检测次数,则告警事件不会恢复,且一直会出现在事件 > 未恢复事件列表中。

4)数据断档:针对数据断档状态,支持七种配置策略。

  • 联动检测区间时间范围,判断检测指标最近分钟数的查询结果,不触发事件

  • 联动检测区间时间范围,判断检测指标最近分钟数的查询结果,查询结果视为 0;此时查询结果将重新与上方触发条件中配置的阈值做比较,从而判断是否触发异常事件。

  • 自定义填充检测区间值,触发数据断档事件、触发紧急事件、触发重要事件、触发警告事件及触发恢复事件;选择该类配置策略,自定义数据断档时间配置建议 >= 检测区间时间间隔,若配置时间 <= 检测区间时间间隔,可能存在同时满足数据断档和异常情况,此情况下仅会应用数据断档处理结果。

5)信息生成:开启此选项后,将未匹配到以上触发条件的检测结果生成 “信息” 事件写入。

注意:若同时配置触发条件、数据断档、信息生成时,按照如下优先级判断触发:数据断档 > 触发条件 > 信息事件生成。

步骤二:事件通知

1)事件标题:设置告警触发条件的事件名称,支持使用预置的模板变量

注意:最新版本中监控器名称将由事件标题输入后同步生成。旧的监控器中可能存在监控器名称和事件标题不一致的情况,为了给您更好的使用体验,请尽快同步至最新。

2)事件内容:满足触发条件时发送的事件通知内容。支持输入 Markdown 格式文本信息并预览效果,支持使用预置的关联链接,支持使用预置的模板变量

注意:不同告警通知对象支持的 Markdown 语法不同,例如:企业微信不支持无序列表。

数据断档通知配置:支持自定义数据断档通知内容,若没有配置,则自动使用官方默认的通知模版。

3)关联异常追踪:开启关联后,若该监控器下产生了异常事件,将同步创建 Issue。选择 Issue 的等级以及需要投递的目标频道,产生的 Issue 可以前往异常追踪 > 您选定的频道进行查看。

在事件恢复后,可以同步关闭 Issue。

事件内容自定义高级配置

观测云支持在事件内容中通过高级配置添加关联日志或错误堆栈,以便查看异常情况发生时的上下文数据情况:

  • 添加关联日志:

查询:

如:获取一条索引为 default 的日志 message

{% set dql_data = DQL("L::RE(`.*`):(`message`) { `index` = 'default' } LIMIT 1") %}

关联日志:

{{ dql_data.message | limit_lines(10) }}
  • 添加关联错误堆栈

查询:

{% set dql_data = DQL("T::re(`.*`):(`error_message`,`error_stack`){ (`source` NOT IN ['service_map', 'tracing_stat', 'service_list_1m', 'service_list_1d', 'service_list_1h', 'profile']) AND (`error_stack` = exists()) } LIMIT 1") %}

关联错误堆栈:

{{ dql_data.error_message | limit_lines(10) }}

{{ dql_data.error_stack | limit_lines(10) }}

步骤三:告警配置

告警策略:监控满足触发条件后,立即发送告警消息给指定的通知对象。告警策略中包含需要通知的事件等级、通知对象、以及告警沉默周期。

告警策略支持单选或多选,点击策略名可展开详情页。若需修改策略点击编辑告警策略即可。

步骤四:关联

关联仪表板:每一个监控器都支持关联一个仪表板,可快速跳转查看。

文档评价

文档内容是否对您有帮助? ×