除了智能切分器,ARMS 还提供了自定义切分器,用于自定义日志清洗流程来满足复杂的切分需求。
自定义清洗配置器采用所见即所得的可视化配置方式,本文档将详细介绍如何使用自定义清洗配置器。
配置界面简介
自定义清洗配置界面包含三个部分:
- A:样例日志区域
- B:可视化清洗流程编辑区域
- C:清洗结果预览区域

在可视化流程编辑区域(以下简称“编辑区”),可以使用一个或多个“积木块”组装出日志清洗的逻辑,将原始日志区域中的日志“清洗”为结构化的键值对(Key-Value Pair)。
在编辑区编辑的过程中,可以随时单击清洗结果预览区域上方的日志切分预览按钮,预览每一行原始日志通过当前编辑区的流程清洗后的键值对结果。
在通过预览结果确认清洗流程准确无误后,单击页面下方的下一步按钮启动任务。ARMS 将使用在编辑区保存的流程来处理每一条从数据源中消费的日志。
示例一:简单的日志清洗流程
样例日志:
2016-11-08 11:00:01|user_abc|123456|下单 2016-11-08 11:00:02|user_abc|123456|支付 2016-11-08 11:10:01|user_abc|123456|退货
以第一行数据为例,假设需要切分出以下键值对:
Key 类型 | Key | Value |
---|---|---|
Date | date | 2016-11-08 11:00:01 |
String | username | user_abc |
Long | userid | 123456 |
String | event | 下单 |
通过观察发现,键值对之间均使用竖线(|)分隔,因此可以使用单分隔符切分器按照以下步骤切分键值对。
- 在编辑区左侧的工具栏中,单击切分器,将单分隔符切分器拖拽至编辑区。
说明 切分器积木块必须连接在开始清洗模块上才能生效。
图 2. 简单的日志清洗流程 切分逻辑说明:
- 以竖线(|)为分隔符,以 _line 作为入参(_line 代表原始日志行本身)。
- 切分后 0 号位置的字符串按照
yyyy-MM-dd HH:mm:ss
的格式转为 date (内部实际将以 Long 型保存)。 - 1 号位置的字符串转为以 username 为 Key 的字符串。
- 2 号位置转为以 userid 为 Key 的 Long。
- 3 号位置转为以 event 为 Key 的字符串。
- 单击日志切分预览,可以看到每行日志的切分结果如下:
图 3. 单分隔符切分器切分结果 - 单击保存或下一步,令清洗流程生效。
到此为止,一个简单的日志切分流程就配置完成了。
示例二:复杂的日志清洗流程
样例日志:
2016-11-08 11:00:01|下单|user_abc|123456 2016-11-08 11:00:02|支付|200 2016-11-08 11:10:01|退货
在此示例中,不同行上的日志由于操作类型不一样,字段的个数、同位置各字段的含义都不同(这在业务系统中非常常见)。这时可以通过 if-then/if-else 逻辑区分不同类型的日志。

切分逻辑说明:
- 首先使用单分隔符切分器切分出 date 与 event 字段。
- 接着使用逻辑模块中的 if-then 模块,针对不同的 event 使用不同的单分隔符切分器切分出不同的字段。


第一行与第二行切分出的键值对组合是不同的。第一行中有 username 和 userid,而第二行中有 price。
在文档使用中是否遇到以下问题
更多建议
匿名提交