使用 ruby 过滤器将纪元时间转换为 logstash 中的日期
Converting epoch time to date in logstash using ruby filter
我的配置中有一个字段名称 "timestamp"。它以纪元时间(毫秒)保存一组数据。我想使用 Ruby 过滤器将数组中的每个纪元时间转换为 Kibana 可使用的日期格式。我正在尝试转换每个日期字段并将其作为数组存储在新字段中。我收到语法错误。谁能帮我吗 ?我是 Ruby.
的新手
ruby {
code => {'
event.get("timestamp").each do |x| {
event["timestamp1"] = Time.at(x)
}
'}
}
我不知道 logstash,但是您在引号中包含的 Ruby 代码无效。试试这个:
ruby {
code => {'
event.get("timestamp").each { |x| event["timestamp1"] = Time.at(x) }
'}
}
如果您希望时间戳键递增,那么您需要包含一个索引:
ruby {
code => {'
event.get("timestamp").each_with_index { |x, i| event["timestamp#{i}"] = Time.at(x) }
'}
}
//这将采用一个时间戳数组,其中包含从纪元时间开始的以毫秒为单位的值,并创建一个具有解析时间的新字段。此代码是 ruby 过滤器的一部分注意:这不会转换为日期字段格式
code => '
timestamps = Array.new
event.get("timestamp").each_with_index { |x, i|
timestamps.push(Time.at(x.to_i / 1000)) }
event.set( "timestamp1" , timestamps)
'
我的配置中有一个字段名称 "timestamp"。它以纪元时间(毫秒)保存一组数据。我想使用 Ruby 过滤器将数组中的每个纪元时间转换为 Kibana 可使用的日期格式。我正在尝试转换每个日期字段并将其作为数组存储在新字段中。我收到语法错误。谁能帮我吗 ?我是 Ruby.
的新手ruby {
code => {'
event.get("timestamp").each do |x| {
event["timestamp1"] = Time.at(x)
}
'}
}
我不知道 logstash,但是您在引号中包含的 Ruby 代码无效。试试这个:
ruby {
code => {'
event.get("timestamp").each { |x| event["timestamp1"] = Time.at(x) }
'}
}
如果您希望时间戳键递增,那么您需要包含一个索引:
ruby {
code => {'
event.get("timestamp").each_with_index { |x, i| event["timestamp#{i}"] = Time.at(x) }
'}
}
//这将采用一个时间戳数组,其中包含从纪元时间开始的以毫秒为单位的值,并创建一个具有解析时间的新字段。此代码是 ruby 过滤器的一部分注意:这不会转换为日期字段格式
code => '
timestamps = Array.new
event.get("timestamp").each_with_index { |x, i|
timestamps.push(Time.at(x.to_i / 1000)) }
event.set( "timestamp1" , timestamps)
'