本文介绍如何使用Lindorm ML进行时序异常检测。
背景信息
时序异常检测作为有效的时序数据分析功能,被广泛应用于各种重要的领域,例如网络安全检测、大型工业设备的日常维护等。 时序异常检测通常还应用于AIOps场景,例如,在需要同时监控多个系统的场景中,不同的系统有着不同的表现和需求,如资源使用率的高低、特殊时间段内有无负载等等。传统基于静态阈值的监控告警功能需要针对不同的业务分别配置不同的规则,这导致了系统的运维效率低、易产生误报、漏报、告警风暴等问题。 而时序异常检测能够在连续的时序指标中通过AI算法自动发现异常点,并通过数据库内机器学习算法自动学习每条时间线的特征,进行异常值检测,规则灵活,检测及时且结果准确,帮助运维人员更好的提高运维效率。
前提条件
- 已开通数据库内机器学习服务。开通方式,请参见开通方式。
- 时序引擎的版本为3.4.21及以上版本。查看或升级时序引擎版本的方法,请参见时序引擎版本说明和升级小版本。
- 已通过lindorm-cli连接访问Lindorm时序引擎,创建数据库表并导入数据。具体操作,请参见通过Lindorm-cli连接并使用Lindorm时序引擎。
数据准备
示例表service_monitor的结构如下:
+--------------+-----------+------------+------------+
| columnName | typeName | columnKind | primaryKey |
+--------------+-----------+------------+------------+
| time | TIMESTAMP | TIMESTAMP | false |
| service_name | VARCHAR | TAG | false |
| op_name | VARCHAR | TAG | false |
| host_ip | VARCHAR | TAG | false |
| qps | DOUBLE | FIELD | false |
| rt | DOUBLE | FIELD | false |
+--------------+-----------+------------+------------+
示例数据如下:
+---------------------------+---------------+-----------+----------+-----+----+
| time | service_name | op_name | host_ip | qps | rt |
+---------------------------+----------------------------------+--------------+
| 2021-01-01T00:00:00+08:00 | service_1 | put | 10.0.0.1 | 500 | 10 |
| 2021-01-01T00:00:05+08:00 | service_1 | put | 10.0.0.1 | 600 | 8 |
| 2021-01-01T00:00:10+08:00 | service_1 | put | 10.0.0.1 | 400 | 12 |
| 2021-01-01T00:00:15+08:00 | service_1 | put | 10.0.0.1 | 700 | 7 |
| 2021-01-01T00:00:20+08:00 | service_1 | put | 10.0.0.1 | 900 | 5 |
+---------------------------+---------------+-----------+----------+-----+----+
操作步骤
以下以某个业务监控系统的异常检测场景为例,介绍如何使用Lindorm ML进行时序异常检测。