Unfortunately, there are still various edge-cases where things randomly
break due to TruffleRuby differences or incompatibilities to other gems.
This time, it was an incompatibility with a json gem update described in
https://github.com/oracle/truffleruby/issues/1857.
We will still try to keep Rackstash compatible with TruffleRuby but will
not consider full support for it release-critical for now.
The middleware can be used in a Rack appliction wrap all log messages
emitted to the logger during a single request in a single emitted log
event. This ensures that all data concerning the request, including log
messages as well as additional fields and tags are logged as one single
event.
This ensures that the data is kept as a whole when the log event is
handled by later systems like Logstash. Each request can be analyzed as
a whole without having to group or parse complex multi-line log formats.
This is required since bundler support seems to be broken right now on
the default "image" of jruby-head on Travis. If we install it explicitly
(or update it to the latest version on all other Rubies), we will be
fine though.
We wnumerate exact Ruby versions in .travis.yml. This is required for
at least Ruby 2.4 which isn't currently recognized as a fuzzy match in
Travis' RVM version. When specifying it as an exact version, it will
install it though.
We specify all the other versions too since this makes our tests more
reproducable over time.