# Logstash ruby code DateTime fails

**URL:** https://discuss.elastic.co/t/logstash-ruby-code-datetime-fails/301137
**Category:** Logstash
**Created:** [March 30, 2022, 6:05pm UTC](https://discuss.elastic.co/t/logstash-ruby-code-datetime-fails/301137 "2022-03-30T18:05:27Z")
**Posts on this page:** 6
**Page:** 1

<div class="post-metadata">

### Author: ![scottfred](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/scottfred/32/102384_2.png) [@scottfred](https://discuss.elastic.co/u/scottfred)
#### Post date: [March 30, 2022, 6:05pm UTC](https://discuss.elastic.co/t/logstash-ruby-code-datetime-fails/301137/1 "2022-03-30T18:05:27Z")

</div>

I've tried parsing this date string, "2022-01-25 08:30:22.126714" a few different ways in Logstash, but I keep coming up short. I don't want to use filter { date {} }...

I should be able to use this ruby code because it works fine in the Ruby REPLs.

 ![Screen Shot 2022-03-30 at 12.09.34 PM](https://us1.discourse-cdn.com/elastic/original/3X/6/8/682d7ccdf870ef7690a5de8d2d9fdc5484fc6171.png)

But, When I run this via Logstash is giving me indications that it can't find the DateTime class?

```auto
...
filter {
  ruby {
    code => '
      require "date"
      format = "%Y-%m-%d %H:%M:%S.%N"
      date_str = "2022-01-25 08:30:22.126714"
      date = DateTime.strptime(date_str, format)
      event.set("date", date)
   '
  }
}
...

```

Why do I get this error?

[2022-03-30T17:01:43,531][ERROR][logstash.filters.ruby][dat][4a8ac1aa1fb3beab739961df87b7f49c643f5692d60de14e423d4042cb78dc38] **Ruby exception occurred: Missing Converter handling for full class name=org.jruby.ext.date.RubyDateTime, simple name=RubyDateTime {:class=\>"Java::OrgLogstash::MissingConverterException", :backtrace=\>** ["org.logstash.Valuefier.fallbackConvert(Valuefier.java:118)", "org.logstash.Valuefier.convert(Valuefier.java:96)", "org.logstash.ConvertedList.newFromRubyArray(ConvertedList.java:64)", "org.logstash.Valuefier.lambda$initConverters$16(Valuefier.java:183)", "org.logstash.Valuefier.convert(Valuefier.java:94)", "org.logstash.ext.JrubyEventExtLibrary$RubyEvent.safeValueifierConvert(JrubyEventExtLibrary.java:367)", "org.logstash.ext.JrubyEventExtLibrary$RubyEvent.ruby\_set\_field(JrubyEventExtLibrary.java:126)", "org.logstash.ext.JrubyEventExtLibrary$RubyEvent$INVOKER$i$2$0$ruby\_set\_field.call(JrubyEventExtLibrary$RubyEvent$INVOKER$i$2$0$ruby\_set\_field.gen)", "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:397)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:206)", "org.jruby.ir.interpreter.InterpreterEngine.processCall(InterpreterEngine.java:325)", "org.jruby.ir.interpreter.StartupInterpreterEngine.interpret(StartupInterpreterEngine.java:72)", "org.jruby.ir.interpreter.Interpreter.INTERPRET\_BLOCK(Interpreter.java:116)", "org.jruby.runtime.MixedModeIRBlockBody.commonYieldPath(MixedModeIRBlockBody.java:137)", "org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:60)", "org.jruby.runtime.Block.call(Block.java:143)", "org.jruby.RubyProc.call(RubyProc.java:339)", "org.jruby.internal.runtime.methods.ProcMethod.call(ProcMethod.java:64)", "org.jruby.ir.targets.InvokeSite.invoke(InvokeSite.java:207)", "usr.share.logstash.vendor.bundle.jruby.$2\_dot\_5\_dot\_0.gems.logstash\_minus\_filter\_minus\_ruby\_minus\_3\_dot\_1\_dot\_8.lib.logstash.filters.ruby.RUBY$method$inline\_script$0(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-filter-ruby-3.1.8/lib/logstash/filters/ruby.rb:96)", "usr.share.logstash.vendor.bundle.jruby.$2\_dot\_5\_dot\_0.gems.logstash\_minus\_filter\_minus\_ruby\_minus\_3\_dot\_1\_dot\_8.lib.logstash.filters.ruby.RUBY$method$inline\_script$0$ **VARARGS** (/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-filter-ruby-3.1.8/lib/logstash/filters/ruby.rb:95)", "org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:80)", "org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:70)", "org.jruby.ir.targets.InvokeSite.invoke(InvokeSite.java:207)", "usr.share.logstash.vendor.bundle.jruby.$2\_dot\_5\_dot\_0.gems.logstash\_minus\_filter\_minus\_ruby\_minus\_3\_dot\_1\_dot\_8.lib.logstash.filters.ruby.RUBY$method$filter$0(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-filter-ruby-3.1.8/lib/logstash/filters/ruby.rb:89)", "org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:106)", "org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:140)", "org.jruby.ir.targets.InvokeSite.fail(InvokeSite.java:278)", "usr.share.logstash.logstash\_minus\_core.lib.logstash.filters.base.RUBY$method$do\_filter$0(/usr/share/logstash/logstash-core/lib/logstash/filters/base.rb:159)", "org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:106)", "org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:140)", "org.jruby.ir.targets.InvokeSite.fail(InvokeSite.java:278)", "usr.share.logstash.logstash\_minus\_core.lib.logstash.filters.base.RUBY$block$multi\_filter$1(/usr/share/logstash/logstash-core/lib/logstash/filters/base.rb:178)", "org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:148)", "org.jruby.runtime.BlockBody.yield(BlockBody.java:106)", "org.jruby.runtime.Block.yield(Block.java:184)", "org.jruby.RubyArray.each(RubyArray.java:1821)", "usr.share.logstash.logstash\_minus\_core.lib.logstash.filters.base.RUBY$method$multi\_filter$0(/usr/share/logstash/logstash-core/lib/logstash/filters/base.rb:175)", "org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:106)", "org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:140)", "org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:200)", "org.logstash.config.ir.compiler.FilterDelegatorExt.doMultiFilter(FilterDelegatorExt.java:127)", "org.logstash.config.ir.compiler.AbstractFilterDelegatorExt.multiFilter(AbstractFilterDelegatorExt.java:134)", "org.logstash.generated.CompiledDataset3.compute(Unknown Source)", "org.logstash.generated.CompiledDataset3.compute(Unknown Source)", "org.logstash.generated.CompiledDataset3.compute(Unknown Source)", "org.logstash.generated.CompiledDataset3.compute(Unknown Source)", "org.logstash.generated.CompiledDataset3.compute(Unknown Source)", "org.logstash.config.ir.CompiledPipeline$CompiledUnorderedExecution.compute(CompiledPipeline.java:332)", "org.logstash.config.ir.CompiledPipeline$CompiledUnorderedExecution.compute(CompiledPipeline.java:326)", "org.logstash.execution.WorkerLoop.run(WorkerLoop.java:87)", "java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)", "java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)", "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)", "java.base/java.lang.reflect.Method.invoke(Method.java:566)", "org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(JavaMethod.java:441)", "org.jruby.javasupport.JavaMethod.invokeDirect(JavaMethod.java:305)", "org.jruby.java.invokers.InstanceMethodInvoker.call(InstanceMethodInvoker.java:32)", "usr.share.logstash.logstash\_minus\_core.lib.logstash.java\_pipeline.RUBY$block$start\_workers$5(/usr/share/logstash/logstash-core/lib/logstash/java\_pipeline.rb:299)", "org.jruby.runtime.CompiledIRBlockBody.callDirect(CompiledIRBlockBody.java:138)", "org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:58)", "org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:52)", "org.jruby.runtime.Block.call(Block.java:139)", "org.jruby.RubyProc.call(RubyProc.java:318)", "org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:105)", "java.base/java.lang.Thread.run(Thread.java:829)"]}

---

<div class="post-metadata">

### Author: ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)
#### Post date: [March 30, 2022, 6:57pm UTC](https://discuss.elastic.co/t/logstash-ruby-code-datetime-fails/301137/2 "2022-03-30T18:57:37Z")

</div>

> [@scottfred](#):
>
> Why do I get this error?

logstash does not have a default way to convert a ruby DateTime to something it can store in an event. Try

```
event.set("date", date.to_s)

```

---

<div class="post-metadata">

### Author: ![scottfred](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/scottfred/32/102384_2.png) [@scottfred](https://discuss.elastic.co/u/scottfred)
#### Post date: [March 30, 2022, 7:41pm UTC](https://discuss.elastic.co/t/logstash-ruby-code-datetime-fails/301137/3 "2022-03-30T19:41:34Z")

</div>

Thanks @Badger , but won't this change the date data type back to a string? What I want is a Ruby datetime object for the next Logstash processing step.

---

<div class="post-metadata">

### Author: ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)
#### Post date: [March 30, 2022, 8:17pm UTC](https://discuss.elastic.co/t/logstash-ruby-code-datetime-fails/301137/4 "2022-03-30T20:17:08Z")

</div>

You cannot store arbitrary Ruby objects in an event. Fields on an event can be integer, float, string, boolean, or LogStash::Timestamp (and maybe nil). If you need it as a DateTime in ruby code in another filter then you will need to store it as a string, or use a date filter to store is as a LogStash::Timestamp and then create a new DateTime in the other filter.

---

<div class="post-metadata">

### Author: ![scottfred](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/scottfred/32/102384_2.png) [@scottfred](https://discuss.elastic.co/u/scottfred)
#### Post date: [March 30, 2022, 8:19pm UTC](https://discuss.elastic.co/t/logstash-ruby-code-datetime-fails/301137/5 "2022-03-30T20:19:16Z")

</div>

@Badger Okay, thanks for the additional explanation

---

<div class="post-metadata">

### Author: ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)
#### Post date: [April 27, 2022, 8:19pm UTC](https://discuss.elastic.co/t/logstash-ruby-code-datetime-fails/301137/6 "2022-04-27T20:19:49Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
