閱讀852 返回首頁    go 阿裏雲 go 技術社區[雲棲]


日誌清洗中關於時間字段date設置的常見問題與解決方法__最佳實踐_業務實時監控服務 ARMS-阿裏雲

任務設置中“日誌清洗”是非常重要的環節,“日誌清洗”將用戶日誌轉化為標準的Key-Value格式,由於日誌計算按照時間維度聚合,所以要求用戶在進行日誌清洗後產生的Key-Value中必須包含時間字段,係統默認采用字段名稱為date。所以如果日誌中不存在時間字段或者時間字段切分後名稱不為date,係統會提示“切分後的字段中不包含時間字段date!”。

下麵就上述遇到的問題列舉幾種常見的案例和解決方法:

日誌中不存在時間字段

建議修改日誌格式,添加相應的時間字段即可;

如原有日誌為:

  1. 北京|電子產品|211

修改為:

  1. 2016-07-28 12:12:12|北京|電子產品|211

日誌中存在時間

1、案例(1):日誌中時間字段為Date型,該種情況比較簡單,樣例日誌如下:

  1. 2016-08-09 11:21:17|kevin.yang|26

該情況通常會被“智能切分”自動識別出來,其自定義切分形式如下::

date正常形式

2、案例(2):日誌中時間字段為long型10位

  1. 1477480004|kevin.yang|26

備注:

1)第一個字段為時間,第二個字段為名稱name,第三個字段為年齡age;

2)最終的時間字段date轉化後為13位long類型

原有自定義切分方案為:

long10

解決方法:需要將logtime變為13位的long

long13

3、案例(3):日誌中時間字段為long型13位

  1. 1477480004000|kevin.yang|26

該種情況處理也比較簡單,自定義切分時將其命名為date即可(如果使用智能切分,將係統生成的該字段對應的名稱重命名為date):

long13不需要修改

4、案例(4):日誌中時間字段存在於JSON字符串中(時間字段為Date類型),樣例日誌如下:

  1. {
  2. "name":"kevin.yang",
  3. "logtime":"2016-10-26 11:28:51.103 ",
  4. "age":"26"
  5. }

其自定義切分的方案通常為:

自定義切分

解決方法:將logtime賦值給date:

自定義切分修改

5、案例(5):日誌中時間字段存在於KV中(時間字段為Date類型),樣例日誌如下:

  1. name=kevin;logtime=2016-10-26 11:28:51.103;age=26

其自定義切分的方案通常為:

KV自定義切分

解決方法:將logtime賦值給date

KV修改後的自定義

最後更新:2016-11-23 18:55:11

  上一篇:go 日誌清洗最佳實踐__最佳實踐_業務實時監控服務 ARMS-阿裏雲
  下一篇:go 智能切分日期格式__最佳實踐_業務實時監控服務 ARMS-阿裏雲