0

我是 fluentd 的新手,并使用它将数据摄取到弹性搜索。我有一个名为 request_time 的字段,其值为:110820120501 作为格式 [ddmmyyHHMMSS] 的数字。如何将其转换为日期字段。

这是我写的,但它不起作用。任何帮助表示赞赏。

示例 request_time 值:100820015642

    <filter>
        @type record_transformer
        enable_ruby true
        <record>
        request_time ${ require 'date'; DateTime.strptime('request_time', '%d%m%y%H%M%S')}
        </record>
    </filter>

我也尝试过以下方法:

    <filter>
        @type record_transformer
        enable_ruby true
        <record>
            time ${require 'date'; DateTime.parse('request_time').strftime('%d%m%y%H%M%S')}
        </record>
    </filter>

如何将 request_time 存储为转换为值的日期字段,例如。“request_time”:“2020-08-11T11:24:23.000+0100”?

4

1 回答 1

0

请尝试以下代码段。我已经给出了毫秒精度,但可以根据您的需要随意削减。

<filter>
    @type record_transformer
    enable_ruby true
    <record>
    date ${Time.at(record['request_time'].to_i/1000, record['request_time'].to_i%1000*1000).utc.strftime('%Y-%m-%dT%H:%M:%S.%LZ')}
    </record>
</filter>
于 2020-09-22T09:31:00.763 回答