809
阿裏雲
自定義清洗的使用__創建監控任務_用戶指南_業務實時監控服務 ARMS-阿裏雲
當智能切分器提供的切分方案無法滿足用戶實際的切分需求時,您可以使用ARMS提供的自定義清洗配置器,定製你自己的日誌清洗流程。
自定義清洗配置器采用所見即所得的可視化配置方式,本文檔將詳細介紹如何使用自定義清洗配置器。
常見切分問題
特殊字符(不可見字符)作為分隔符如何切分?
假如不可見字符是ascii碼的1,則對應的分隔符為u0001,如果是2,則是u0002…以此類推,tab作為分隔符的話請使用t作為分隔符。
特殊字符在流程配置頁麵上如何測試?
因為無法在瀏覽器裏粘貼不可見字符,因此您隻能暫時將測試文本的分隔符替換為可見字符進行測試,全部流程測試通過後,再將分隔符替換為不可見字符進行部署。
下圖中key的列表中如何添加更多的key?
試試點擊積木塊上的藍底白色五角星。
JSON格式的日誌可以切分嗎?
可以,不過沒有直接的專屬JSON切分器來支持,需要使用邏輯表達式+KV切分器配合使用。請閱讀完下麵KV切分器的說明,憑借您的智慧,一定可以成功地切分JSON格式的日誌。
跨行日誌(如異常堆棧)支持嗎?
暫不支持。
單分隔符切分器
說明
將單一字符串作為輸入,當匹配用戶指定分隔字符串時進行切分,切分結果為多個Key-Values.
實例
該配置以|為分隔符,將切分後0號位置的字符串按照yyyy-MM-dd HH:mm:ss的格式轉為date(內部實際將以long型保存),2號位置的字符串轉為保存為key為username的string,3號位置轉為key為userid的long,5號位置保存為key為event的string…
因此使用該配置可以將日誌:
2014-07-25 17:25:00|aaa|用戶a|1234567|abcd|購買
切分為如下結果:
=> [ username - 用戶a ] [ _hostIp - 127.0.0.1 ] [ event - 購買 ] [ date - 1406280300000 ] [ userid - 1234567 ]
說明:
對不可見字符的支持:本切分器支持不可見字符的切分,例如t,u001f(ascii char=31),一些不可見字符的切分將無法在頁麵測試中被正確驗證(因為頁麵文本框內無法正確輸入不可見字符),所以建議用戶可以在測試頁麵先使用可見字符進行調試,然後換成不可見字符保存後進行部署。
多字符分隔符:本切分器分隔符可以為多字符,如a::b::c為輸入,以::為分隔符切分。
多分隔符切分器
說明
將單一字符串作為輸入,當匹配任意一個用戶指定分隔字符時進行切分,切分結果為多個Key-Values.
實例
使用該配置可以將日誌:
2014-07-25 17:25:00,aaa|b~1
切分為:=> [ item - b ] [ _hostIp - 127.0.0.1 ] [ userId - aaa ] [ quantity - 1 ] [ date - 1406280300000 ]
順序分隔符切分器
說明
對於較複雜的切分場景(如accesslog),ARMS提供“順序分隔符切分器”,以O(n)的複雜度將日誌進行切分。
實例
假如 accesslog 如下:
117.74.77.48 835158 - [26 May 2014:14:05:28 +0800] “GET https://trade.taobao.com/trade/detail/trade_snap.htm?spm=a1z0f.2.100003.9.8BpicQ&trade_id=664793864233811“ 302 0
我們想在這個日誌中切分出如下結果:
=> [ url - https://trade.taobao.com/trade/detail/trade_snap.htm?spm=a1z0f.2.100003.9.8BpicQ&trade_id=664793864233811 ] [ _hostIp - 127.0.0.1 ] [ ip - 117.74.77.48 ] [ date - 1401084328000 ] [ rt - 835158 ]
我們會發現:
用單分隔符切分器顯然無法滿足需求;
用多分隔符切分器也不能滿足需求:我們如果想切出rt=835158這組KV,必須以” “(空格)作為切分字符之一,但是這樣做會錯誤地把26 May 2014:14:05:28 +0800這個字符串給切成幾段,因此我們將無法得到date - 1401084328000;
如果使用正則表達式來匹配kv,效率太低,需要遍曆多次。
ARMS提供了”順序分隔符切分”的方式,使用如下配置,就可以得到本實例正確的結果。
用戶定義了5個分隔符字符串,依次將輸入字符串切分為了6段子串,隨後用戶將指定的子串分別賦給不同的key即可。
KV切分器
當需要切分如下多組key=value形式的日誌:
key1=aaaa;key2=bbbb;key3=cccc;key4=dddd;….
且各個key-value的位置不固定時,可以使用KV切分器:
切分配置如下:
注意:
當沒有配置文本字符<->Key映射時,KV切分器將視所有的key為“未定義key”,所有key對應的value將被切為StringKey類型
如果選擇取消勾選”是否切分未定義的Key”,那麼未定義Key將不會被切分,也就是說如果沒有配置文本字符<->Key映射,並且未勾選”是否切分未定義的Key”,本切分器將不做任何事。
這裏展示一個需要將製定的Key轉換成對應類型的例子:
假如有日誌如下:name=abc;item=iphone6;quantity=15;date=201412120000;….
需要將quantity變為LongKey,date變為DateKey:
JSON切分器
如果您的日誌中包含JSON字符串,使用JSON切分器可以讓您快速切分出該JSON中的“葉子節點”。
例一:全自動切分
{ “title”: “Example Schema”, “type”: “object”, “quantity”: 200, “date”:”2015-12-12 12:12:12”, “properties”: { “firstName”: { “type”: “string” }, “lastName”: { “type”: “string” }, “age”: { “description”: “Age in years”, “type”: “integer”, “minimum”: 0 } }, “required”: [“firstName”, “lastName”]}
將該json放在一行文本中,使用JSON切分器進行切分:
切分結果如下:
=> [ minimum - 0 ] [ date - 2015-12-12 12:12:12 ] [ type - string ] [ title - ExampleSchema ] [ description - Ageinyears ] [ quantity - 200 ]
由於勾選了“切分未定義字段”,JSON切分器將自動切出所有的“非array類型的葉子節點”,並自動轉成對應的類型(stringkey或longkey),注意本例中的required字段由於是array類型所以沒有切分,另外,date這個字段由於
例二:自定義切分
如果您隻想切分JSON中指定的某些字段,可以像如下這樣配置:
=> [ date - 1449893532000 ] [ title - ExampleSchema ] [ quantity - 200 ]
本例中,我們去掉了“切分未定義字段”的勾選,並且自定義了title,date和quantity三個字段,並指定了類型。ARMS會隻切分自定義的字段,並轉成對應的類型(本例中date字段被轉成了ARMS內置的long型)
最後更新:2016-11-23 17:31:50
上一篇:
步驟 3-3:創建和查詢多維數據集__創建監控任務_用戶指南_業務實時監控服務 ARMS-阿裏雲
下一篇:
監控任務管理__管理監控任務_用戶指南_業務實時監控服務 ARMS-阿裏雲
查詢彈性公網IP列表__彈性公網IP相關接口_API參考_專有網絡 VPC-阿裏雲
獲取主題屬性__主題使用幫助_控製台使用幫助_消息服務-阿裏雲
8.2 數據導入任務生產指南__第八章 在生產中使用分析型數據庫_使用手冊_分析型數據庫-阿裏雲
產品術語__產品簡介_數據集成-阿裏雲
查看實例詳情__實例管理_開放API_分布式關係型數據庫 DRDS-阿裏雲
讀寫權限分離__權限管理_最佳實踐_對象存儲 OSS-阿裏雲
參數(Parameters)__模板語法_資源編排-阿裏雲
怎樣為一個子用戶授予隻讀訪問SLB的權限___負載均衡(SLB)授權問題_授權常見問題_訪問控製-阿裏雲
PermissionType__數據類型_API 參考_雲服務器 ECS-阿裏雲
定位及解決 HSF 問題__HSF 常見問題_開發常見問題_產品常見問題_企業級分布式應用服務 EDAS-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲