Extra, Extra, Read all about it: Ruby Agent v6.15 Release

Ruby Agent v6.15 Release

Ruby 3.0 was released on Christmas Day. The New Relic Ruby agent 6.15 has been verified with Ruby 3.0 and we officially support Ruby 3.0 with this version.

We also added support for Rails 6.1. A special thanks to @hasghari from the Ruby community for setting this up!

We’ve also added support for Sidekiq 6.0, and 6.1

Other notable fixes:

  1. No longer overwrites sidekiq trace data
    Distributed tracing data is now added to the job trace info rather than overwriting the existing data.

  2. Fixes cases where errors are reported for spans with no other attributes
    Previously, in cases where a span does not have any agent/custom attributes on it, but an error is noticed and recorded against the span, a FrozenError: can't modify frozen Hash is thrown. This is now fixed and errors are now correctly recorded against such span events.

  3. DistributedTracing.insert_distributed_trace_headers Supportability metric now recorded Previously, API calls to DistributedTracing.insert_distributed_trace_headers would lead to an exception about the missing supportability metric rather than flowing through the API implementation as intended. This would potentially lead to broken distributed traces as the trace headers were not inserted on the API call. DistributedTracing.insert_distributed_trace_headers now correctly records the supportability metric and inserts the distributed trace headers as intended.

  4. Child completions after parent completes sometimes throws exception attempting to access nil parent
    In scenarios where the child segment/span is completing after the parent in jRuby, the parent may have already been freed and no longer accessible. This would lead to attempting to call descendant_complete on a Nil object. This is fixed to protect against calling the descendant_complete in such cases.

Feature enhancement:

  1. Implement force_install_exit_handler config flag.
    The force_install_exit_handler configuration flag allows an application to instruct the agent to install its graceful shutdown exit handler, which will send any locally cached data to the New Relic collector prior to the application shutting down. This useful when the primary framework has an embedded Sinatra application that is otherwise detected and skips installing the exit hook for graceful shutdowns.

  2. Default prepend_net_instrumentation to false
    Previously, prepend_net_instrumentation defaulted to true. However, many gems are still using monkey patching on Net::HTTP, which causes compatibility issues with using prepend. Defaulting this to false minimizes instances of unexpected compatibility issues.
    Note: we will be updating more instrumented gems to prepend method in the upcoming release.

Visit our Open Source Ruby Agent Repository