将数字日期转换为Fluentd中的字符串日期字段以存储到Elasticsearch中

问题描述

我是新手,可以使用它来将数据提取到Elasticsearch。我有一个名为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”?

解决方法

请尝试以下代码段。我已经给出了毫秒精度,但是请随时根据您的需要进行调整。

<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>

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...