0

我正在尝试创建一个流利的位配置,它使用记录的时间戳到使用过滤器的自定义键。就像是:

[INPUT]
  Name tail
  Path /some/path
  ... 

[FILTER]
  Name record_modifier
  Match *
  Record fluenbit_orig_ts SOME_MAGIC_WAY_TO_GET_UNIXTIME

[OUTPUT]
  Name           stdout
  Match          *

我使用多个解析器的理由是,每个解析器都有自己的时间格式 ( Time_Format,因为它在正则表达式解析器中使用。即使我使用Time_Keep,它也无济于事,因为不同服务指定的时间不同,不同Time_Format)。我希望到达的记录[OUTPUT}具有相同的键来描述时间戳。在此示例中,该键将是fluenbit_orig_ts

这可能吗?

4

2 回答 2

1

我有同样的问题。根据@BugoK,我已经解决了。

这是lua脚本。

function append_tag(tag, timestamp, record)
    new_record = record
    new_record["log_time"] = os.date("%Y-%m-%d %H:%M:%S")
    return 1, timestamp, new_record
end

这是 td-agent-bit 配置。

[FILTER]                                                                                                 
Name lua                                                                                             
Match nginx.access                                                                                   
script override_time.lua                                                                             
call append_tag

然后重启 td-agent-bit。有效~!

于 2021-04-29T07:54:47.480 回答
0

我从 fluent-bit slack 频道得到了答案。

似乎这可以使用lua 过滤器。具体来说,这个例子似乎是相关的:https ://github.com/fluent/fluent-bit/blob/master/scripts/append_tag.lua

于 2020-09-03T18:16:33.693 回答