阅读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-阿里云