ARMS会将用户体验监控数据写入用户名下的日志服务SLS进行存储,因此监控详情页面上所有图表、列表数据均需要通过SLS的查询语法来查询。本文介绍如何使用RUM的模糊查询功能。
模糊查询原理介绍
用户体验监控数据在SLS中的存储路径请参见ARMS可观测数据存储概述。您可以在监控详情页面通过SLS的查询语法来筛选监控数据,也可以基于已存储的全量数据进行二次开发。
查询语句和分析语句以|分割。其格式为:
查询语句|分析语句查询语句可单独使用,分析语句必须与查询语句一起使用。即分析功能是基于查询结果或全量数据进行的。
- 查询语句中建议不超过30个条件。 
- 分析语句中无需填写FROM子句和WHERE子句,默认分析当前Logstore中的数据。分析语句不支持使用offset,不区分大小写,末尾无需加分号。 
SLS实现模糊查询的方式有以下两种:
- 通过查询语法实现:在查询语句中添加模糊查询的条件。 
- 通过SQL分析语法实现:在SQL Where条件中添加模糊查询的条件。 
但由于RUM已预先定义过监控详情页面上的图表、列表对应的数据格式,因此目前RUM仅支持通过第一种方式查询,即在查询语句中添加模糊查询的筛选条件,不支持用户自定义SQL分析语句。
key: value*(用户输入的模糊匹配条件)| SQL(系统预定义,不支持修改)模糊查询使用限制
- 仅支持前缀匹配,首字符必须填写,不支持后缀匹配方式(如 - *abc),但是支持多个中间位置模糊匹配(如- a*bc*)。
- 匹配的文本长度不超过48个字符,超出将无法匹配到数据。 
- 模糊匹配的文本中,不能带有特殊字符(例如 - :),如果包含,需要将特殊字符替换为- ?或- *。
- 需要匹配的文本中如果包含了 - ?、- &、- #、- =这类分词符,匹配时只能匹配分词符前面或后面的部分,不能跨分词匹配,如果需要跨分词匹配,则需拆分为多个查询条件,详见下方的示例4。
模糊查询使用示例
| 示例 | Explorer模块 | 查询需求 | 查询语句 | 说明 | 
| 示例1 | 页面访问 | 筛选路径以 |  | 使用前缀匹配,添加 | 
| 示例2 | API请求 | 筛选URL以 |  | SLS查询语句不允许带有 | 
| 示例3 | API请求 | 筛选URL中包含  |  | 由于RUM的模糊匹配目前仅支持前缀匹配,因此需要将域名的前缀加上,否则无法查询数据。 | 
| 示例4 | API请求 | 筛选URL中包含  |  | 由于 |