【问题标题】:Converting epoch time to date in logstash using ruby filter使用 ruby​​ 过滤器在logstash中将纪元时间转换为日期
【发布时间】:2018-02-22 18:32:47
【问题描述】:

我的配置中有一个字段名称“时间戳”。它以纪元时间(毫秒)保存一组数据。我想使用 Ruby 过滤器将数组中的每个纪元时间转换为 Kibana 可使用的日期格式。我正在尝试转换每个日期字段并将其作为数组存储在一个新字段中。我收到语法错误。谁能帮我吗 ?我是 Ruby 新手。

ruby {
code => {'
event.get("timestamp").each do |x| {    
event["timestamp1"] = Time.at(x)
    } 
'}
}

【问题讨论】:

    标签: ruby logstash logstash-configuration


    【解决方案1】:

    我不了解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) } 
    '}
    }
    

    【讨论】:

    • 我会试试的。谢谢
    • 它与 Logstash 不兼容
    【解决方案2】:

    //这将采用时间戳数组,其值从纪元时间开始以毫秒为单位,并创建一个具有解析时间的新字段。此代码是 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)
      '
    

    【讨论】:

      猜你喜欢
      • 2018-04-24
      • 2011-12-06
      • 2012-09-06
      • 2012-11-08
      • 2019-01-15
      • 2021-03-15
      • 2011-12-19
      • 2012-07-29
      相关资源
      最近更新 更多