时间戳编辑

此功能处于测试阶段,可能会发生变化。其设计和代码不如正式的 GA 功能成熟,因此按原样提供,不提供任何保证。测试版功能不受正式 GA 功能支持 SLA 的约束。

timestamp 处理器从字段中解析时间戳。默认情况下,时间戳处理器将解析后的结果写入 @timestamp 字段。您可以通过设置 target_field 参数来指定不同的字段。时间戳值将根据 layouts 参数进行解析。可以指定多个布局,它们将按顺序用于尝试解析时间戳字段。

此处理器使用的时间戳布局与 Logstash 和 Elasticsearch Ingest Node 中日期处理器支持的格式不同。

layouts 使用基于以下特定时间的参考时间来描述

Mon Jan 2 15:04:05 MST 2006

由于 MST 是 GMT-0700,因此参考时间为

01/02 03:04:05PM '06 -0700

要定义自己的布局,请使用与您希望解析的时间戳相匹配的格式重写参考时间。有关更多布局示例和详细信息,请参阅Go 时间包文档

如果布局不包含年份,则会将指定 timezone 中的当前年份添加到时间值中。

示例编辑

以下示例解析 start_time 字段并将结果写入 @timestamp 字段,然后删除 start_time 字段。加载处理器时,它将立即验证两个 test 时间戳是否使用此配置进行解析。

  - timestamp:
      field: start_time
      layouts:
        - '2006-01-02T15:04:05Z'
        - '2006-01-02T15:04:05.999Z'
        - '2006-01-02T15:04:05.999-07:00'
      test:
        - '2019-06-22T16:33:51Z'
        - '2019-11-18T04:59:51.123Z'
        - '2020-08-03T07:10:20.123456+02:00'
  - drop_fields:
      fields: [start_time]

配置设置编辑

Elastic Agent 处理器在摄取管道*之前*执行,这意味着您的处理器配置不能引用由摄取管道或 Logstash 创建的字段。有关更多限制,请参阅使用处理器有哪些限制?

名称 必需 默认 描述

field

包含要解析的时间的源字段。

target_field

@timestamp

解析后的时间值的目标字段。目标值始终以 UTC 格式写入。

layouts

定义预期时间值格式的时间戳布局。除了布局之外,还接受 UNIXUNIX_MS

timezone

UTC

解析不包含时区的 时间时使用的 IANA 时区名称(例如,America/New_York)或固定时间偏移量(例如,+0200)。指定 Local 以使用机器的本地时区。

ignore_missing

false

当源字段缺失时是否忽略错误。

ignore_failure

false

是否忽略处理器产生的所有错误。

test

加载处理器时必须成功解析的时间戳列表。

id

此处理器实例的标识符。对调试很有用。