文档

提取日志时间

更新时间:

您在使用Logtail采集日志时,可以使用processor_gotime插件或processor_strptime插件解析原始日志中的时间字段。本文介绍两种插件的参数说明和配置示例。

重要
  • 表单配置方式:采集文本日志和容器标准输出时可用。

  • JSON配置方式:采集文本日志时不可用。

功能入口

当您需要使用Logtail插件处理日志时,您可以在创建或修改Logtail配置时,添加插件配置。具体操作,请参见概述

Go语言时间格式

processor_gotime插件使用Go语言时间格式解析原始日志中的时间字段,并支持将解析结果设置为日志服务中的日志时间。

重要 Logtail 0.16.28及以上版本支持processor_gotime插件。

表单配置方式

  • 参数说明
    配置处理器类型提取日志时间(Go语言时间格式),相关参数说明如下表所示。
    参数说明
    原始时间字段原始字段名。
    原始时间格式原始时间的格式。
    原始时间时区原始时间的时区。选择机器时区时,表示Logtail所在主机或容器的时区。
    结果时间字段解析后的目标字段。
    结果时间格式解析后的时间格式。
    自定义结果时间时区解析后的时区。选择机器时区时,表示本机时区。
    设为日志时间选中该选项后,系统会将解析后的时间设置为日志时间。
    保留原始字段选中该选项后,解析后的日志中将保留原始字段。
    原始字段缺失报错选中该选项后,如果原始日志中无您所指定的原始字段,系统将报错。
    提取失败报错选中该选项后,如果提取日志时间失败,系统将报错。
  • 示例
    原始时间(s_key字段)的格式为2006-01-02 15:04:05(东八区),现将原始时间解析为2006/01/02 15:04:05(东九区)格式,添加到d_key字段中,并设置解析结果为日志服务中的日志时间。
    • 原始日志
      "s_key":"2022-07-05 19:28:01"
    • Logtail插件处理配置提取日志时间(Go语言时间格式)
    • 处理结果
      "s_key":"2022-07-05 19:28:01"
      "d_key":"2022/07/05 20:28:01"

JSON配置方式

  • 参数说明
    配置typeprocessor_gotimedetail说明如下表所示。
    参数类型是否必选说明
    SourceKeyString原始字段名。
    SourceFormatString原始时间的格式。
    SourceLocationInt原始时间的时区。参数值为空时,表示Logtail所在主机或容器的时区。
    DestKeyString解析后的目标字段。
    DestFormatString解析后的时间格式。
    DestLocationInt解析后的时区。参数值为空时,表示本机时区。
    SetTimeBoolean是否将解析后的时间设置为日志时间。
    • true(默认值):是
    • false:否
    KeepSourceBoolean被解析后的日志中是否保留原始字段。
    • true(默认值):保留
    • false:不保留
    NoKeyErrorBoolean原始日志中无您所指定的原始字段时,系统是否报错。
    • true(默认值):报错
    • false:不报错
    AlarmIfFailBoolean提取日志时间失败,系统是否报错。
    • true(默认值):报错
    • false:不报错
  • 示例
    原始时间(s_key字段)的格式为2006-01-02 15:04:05(东八区),现将原始时间解析为2006/01/02 15:04:05(东九区)格式,添加到d_key字段中,并设置解析结果为日志服务中的日志时间。
    • 原始日志
      "s_key":"2019-07-05 19:28:01"
    • Logtail插件处理配置
      {
        "processors":[
          {
            "type":"processor_gotime",
            "detail": {
              "SourceKey": "s_key",
              "SourceFormat":"2006-01-02 15:04:05",
              "SourceLocation":8,
              "DestKey":"d_key",
              "DestFormat":"2006/01/02 15:04:05",
              "DestLocation":9,
              "SetTime": true,
              "KeepSource": true,
              "NoKeyError": true,
              "AlarmIfFail": true
            }
          }
        ]
      }
    • 处理结果
      "s_key":"2019-07-05 19:28:01"
      "d_key":"2019/07/05 20:28:01"

strptime时间格式

processor_strptime插件使用Linux strptime时间格式解析日志中的时间字段,并支持将解析结果设置为日志时间。

重要 Logtail 0.16.28及以上版本支持processor_strptime插件。

表单配置方式

  • 参数说明
    配置处理器类型提取日志时间(strptime时间格式),相关参数说明如下表所示。
    参数说明
    原始字段原始字段名。
    原始时间格式原始时间的格式。
    保留原始字段选中该选项后,被解析后的日志中将保留原始字段。
    提取失败报错选中该选项后,如果提取日志时间失败,系统将报错。
    进行时间偏移选中该选项后,您可以设置时间偏移秒数。
    时间偏移秒数时间偏移秒数。例如28800表示东八区。
    提取高精度时间选中该选项后,该插件会将原始字段对应的字段值解析为毫秒级别的时间戳,并存入高精度时间字段名中设置的字段。更多信息,请参见Logtail日志采集支持高精度时间戳
    重要
    • 选中该参数前,请确保原始字段中对应的字段值(原始时间)支持相应的时间精度(ms、us或ns)。
    • 仅Logtail 1.0.32及以上版本支持。
    高精度时间字段名保存高精度时间戳的字段。默认值为precise_timestamp字段。
    时间单位高精度时间戳的单位,默认值为ms。取值包括ms(毫秒)、us(微秒)、ns(纳秒)。
  • 配置示例
    %Y/%m/%d %H:%M:%S格式的原始时间(log_time字段的值)解析为对应的日志时间,时区使用机器所在时区。假设时区为东八区。
    • 原始日志
      "log_time":"2022/01/02 12:59:59"
    • Logtail插件处理配置 strptime时间格式
    • 处理结果
      "log_time":"2022/01/02 12:59:59"
      Log.Time = 1451710799
  • 常见的时间表达式
    说明 processor_strptime插件支持%f格式解析,表示秒的小数部分,最高精度为纳秒。
    示例时间表达式
    2016/01/02 12:59:59%Y/%m/%d %H:%M:%S
    2016/01/02 12:59:59.1%Y/%m/%d %H:%M:%S.%f
    2016/01/02 12:59:59.987654321 +0700 (UTC)%Y/%m/%d %H:%M:%S.%f %z (%Z)
    2016/Jan/02 12:59:59,123456%Y/%b/%d %H:%M:%S,%f
    2019-07-15T04:16:47:123Z%Y-%m-%dT%H:%M:%S:%f

JSON配置方式

  • 参数说明
    配置typeprocessor_strptimedetail说明如下表所示。
    参数类型是否必选说明
    SourceKeyString原始字段名。
    FormatString原始时间的格式。
    AdjustUTCOffsetBoolean是否调整时区。
    • true:是。
    • false(默认值):否
    UTCOffsetInt用于调整的时区偏移秒数。例如28800表示东八区。
    AlarmIfFailBoolean提取日志失败时,系统是否报错。
    • true(默认值):报错。
    • false:不报错。
    KeepSourceBoolean被解析后的日志中,是否保留原始字段。
    • true(默认值):保留。
    • false:不保留。
    EnablePreciseTimestampBoolean是否提取高精度时间。
    • true:是。
    • false(默认值):否。
    设置为true后,该插件会将SourceKey参数对应的字段值解析为毫秒级别的时间戳,并存入PreciseTimestampKey参照中对应的字段。更多信息,请参见Logtail日志采集支持高精度时间戳
    重要
    • 设置该参数为true前,请确保SourceKey参数对应的字段值(原始时间)支持相应的时间精度(ms、us或ns)。
    • 仅Logtail 1.0.32及以上版本支持。
    PreciseTimestampKeyString保存高精度时间戳的字段。默认值为precise_timestamp字段。
    PreciseTimestampUnitString高精度时间戳的单位。默认值为ms。取值包括ms(毫秒)、us(微秒)、ns(纳秒)。
  • 示例
    %Y/%m/%d %H:%M:%S格式的原始时间(log_time字段的值)解析为对应的日志时间,时区使用机器所在时区。
    • 示例1:假设时区为东八区。
      • 原始日志
        "log_time":"2016/01/02 12:59:59"
      • Logtail插件处理配置
        {
          "processors":[
            {
              "type":"processor_strptime",
              "detail": {
                "SourceKey": "log_time",
                "Format": "%Y/%m/%d %H:%M:%S"
              }
            }
          ]
        }
      • 处理结果
        "log_time":"2016/01/02 12:59:59"
        Log.Time = 1451710799
    • 示例2:假设时区为东七区。
      • 原始日志
        "log_time":"2016/01/02 12:59:59"
      • Logtail插件处理配置
        {
          "processors":[
            {
              "type":"processor_strptime",
              "detail": {
                "SourceKey": "log_time",
                "Format": "%Y/%m/%d %H:%M:%S",
                "AdjustUTCOffset": true,
                "UTCOffset": 25200
              }
            }
          ]
        }
      • 处理结果
        "log_time":"2016/01/02 12:59:59"
        Log.Time = 1451714399
    • 示例3:假设时区为东七区。
      • 原始日志
        "log_time":"2016/01/02 12:59:59.123"
      • Logtail插件处理配置
        {
          "processors":[
            {
              "type":"processor_strptime",
              "detail": {
                "SourceKey": "log_time",
                "Format": "%Y/%m/%d %H:%M:%S.%f",
                "EnablePreciseTimestamp": true
              }
            }
          ]
        }
      • 处理结果
        "log_time":"2016/01/02 12:59:59.123"
        "precise_timestamp": 1451714399123
        Log.Time = 1451714399
  • 常见的时间表达式
    说明 processor_strptime插件支持%f格式解析,表示秒的小数部分,最高精度为纳秒。
    示例时间表达式
    2016/01/02 12:59:59%Y/%m/%d %H:%M:%S
    2016/01/02 12:59:59.1%Y/%m/%d %H:%M:%S.%f
    2016/01/02 12:59:59.987654321 +0700 (UTC)%Y/%m/%d %H:%M:%S.%f %z (%Z)
    2016/Jan/02 12:59:59,123456%Y/%b/%d %H:%M:%S,%f
    2019-07-15T04:16:47:123Z%Y-%m-%dT%H:%M:%S:%f
  • 本页导读 (1)
文档反馈