Low commit activity in last 3 years
There's a lot of open issues
No release in over a year
fluent filter plugin to ensure @timestamp is in proper format
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.3
~> 11.0
~> 3.2

Runtime

>= 0.14.0, < 2
 Project Readme

fluent-plugin-elasticsearch-timestamp-check

Fluent plugin to ensure @timestamp is in correct format for elasticsearch

Install

gem install fluent-plugin-elasticsearch-timestamp-check

Description

The purpose of this filter is to make sure the @timestamp field exists in the record which is necessary for the record to be indexed properly by elasticsearch.

  • If @timestamp field already exists, it will ensure the format is correct by parse and convert to format '%Y-%m-%dT%H:%M:%S%z'. As of version 0.2.4, it will support epoch second / epoch millis format as a valid timestamp value. If such value is detected, it will be converted to iso8601 format for easier consumption of elasticsearch when dynamic mapping is used.

  • By default, it will check whether fields named timestamp, time, or syslog_timestamp exists, if so it will parse that field and conver it to format '%Y-%m-%dT%H:%M:%S.%L%z' then store it in @timestamp field. In addition, a field fluent_converted_timestamp is added to the object with the same value.

  • (>=0.3.0) the list of fields can be overriden by setting the timestamp_fields parameter. It accepts a list of strings, the default is set to: ['@timestamp', 'timestamp', 'time', 'syslog_timestamp']

  • If none of the above field exists, it will insert current event time in '%Y-%m-%dT%H:%M:%S.%L%z' format as the @timestamp field. A field fluent_added_timestamp is added to the object with same value.

(>=0.2.6) Subsecond Precision

subsecond_precision controls the subsecond precision during the conversion. Default value is set to 3 (millisecond).

Other subsecond_precision sample values are:

  • 6 (microsecond)
  • 9 (nanosecond)
  • 12 (picosecond)

and more high precision is also supported.

Usage

<filter **>
  type elasticsearch_timestamp_check
  subsecond_precision 3
</filter>