【发布时间】:2016-09-26 21:53:40
【问题描述】:
我正在使用 fluentd 从一组传感器推送一些数据。我推送的数据包含一个“时间戳”字段(以毫秒为单位),我需要在其日期组件(年、月等)中展开该字段。我在推送数据时使用过滤器来执行此操作,因此通过一些 ruby 代码我可以轻松地分解时间戳,例如
<filter *>
@type record_transformer
enable_ruby
<record>
year ${Time.at(Integer(record['timestamp'])/1000.0).strftime("%Y")}
monthnumber ${Time.at(Integer(record['timestamp'])/1000.0).strftime("%-m")}
monthname ${Time.at(Integer(record['timestamp'])/1000.0).strftime("%B")}
daynumber ${Time.at(Integer(record['timestamp'])/1000.0).strftime("%-d")}
dayname ${Time.at(Integer(record['timestamp'])/1000.0).strftime("%A")}
hour ${Time.at(Integer(record['timestamp'])/1000.0).strftime("%-k")}
minutes ${Time.at(Integer(record['timestamp'])/1000.0).strftime("%-M")}
seconds ${Time.at(Integer(record['timestamp'])/1000.0).strftime("%-S")}
</record>
</filter>
我的问题是它将包含在 json 中的新字段分配有字符串类型,而对于某些我严格需要整数(例如,对于年、月数、日数等)。有什么办法告诉fluentd这些字段必须以整数形式添加?
我试过了:
year ${Integer(Time.at(Integer(record['timestamp'])/1000.0).strftime("%Y"))}
但是没有用。
【问题讨论】: