从logstash中的时间戳提取文本格式的工作日

时间:2016-11-28 19:24:45

标签: logstash elastic-stack

我在我的logstash过滤器中以下面的格式获取@timestamp

"@timestamp" => "2016-11-28T19:19:05.627Z"

我想通过为周和月添加新字段来提取文本格式的工作日和月份值。我的输出应该像

week-day:monday
month:nov

我正在使用一些红宝石代码

ruby {
          code => '
              require "time"
              event["week-day"] = event["@timestamp"].strftime "%a"

              '
       }

但是收到错误

Ruby exception occurred: undefined method `strftime' for "2016-11-28T19:19:05.804Z":LogStash::Timestamp {:level=>:error}

有没有办法在grok或同一个ruby代码中做同样的事情?

任何帮助都会受到赞赏!!

1 个答案:

答案 0 :(得分:2)

你几乎就在那里,你只是错过了一些东西:

   ruby {
      code => '
          require "time"
          event["week-day"] = event["@timestamp"].time.strftime "%a"
          '
   }