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中包含 |
| 由于 |