Ruby release notes

Ruby agent release notes

Monday, April 25, 2016 - 14:33 Download


  • Run explain plans on parameterized slow queries in AR4

    In our ActiveRecord 4 instrumentation, we moved to tracing slow queries using the payloads from ActiveSupport::Notifications sql.active_record events. As a result, we were unable to run explain plans on parameterized queries. This has now been updated to pass along and use the parameter values, when available, to get the explain plans.

  • Fix getMore metric grouping issue in Mongo 2.2.x instrumentation

    A metric grouping issue had cropped up when using the most recent Mongo gem (2.2.0) with the most recent release of the server (3.2.4). We now have a more future-proof setup for preventing these.

  • Restore older DataMapper support after password obfuscation fix

    Back in 3.14.3, we released a fix to avoid inadvertently sending sensitive information from DataMapper SQLErrors. Our implementation did not account for DataMapper versions below v0.10.0 not implementing the #options accessor. Thanks Bram de Vries for the fix to our fix!

  • Padrino 0.13.1 Support

    Users with Padrino 0.13.x apps were previously seeing the default transaction name "(unknown)" for all of their routes. We now provide the full Padrino route template in transaction names, including any parameter placeholders. Thanks Robert Schulze for the contribution!

  • Update transaction naming for Grape 0.16.x

    In Grape 0.16.x, route_ methods are no longer prefixed. Thanks to Daniel Doubrovkine for the contribution!

  • Fix name collision on method created for default metric name fix

    We had a name collision with the yard gem, which sets a class_name method on Module. We've renamed our internal method to derived_class_name instead.

Thursday, March 24, 2016 - 14:22 Download


  • Rack 2 alpha support

    This release includes experimental support for Rack 2 as of 2.0.0.alpha. Rack 2 is still in development, but the agent should work as expected for those who are experimenting with Rack 2.

  • Rails 5 beta 3 support

    We've tweaked our Action View instrumentation to accommodate changes introduced in Rails v5.0.0.beta3.

  • Defer referencing ::ActiveRecord::Base to avoid triggering its autoloading too soon

    In 3.12.1 and later versions of the agent, the agent references (and therefore loads) ActiveRecord::Base earlier on in the Rails loading process. This could jump ahead of initializers that should be run first. We now wait until ActiveRecord::Base is loaded elsewhere.

  • Fix explain plans for non-parameterized queries with single quote literals

    The agent does not run explain plans for queries still containing parameters (such as SELECT * FROM UNICORNS WHERE ID = $1 LIMIT 1). This check was unfortunately mutating the query to be obfuscated, causing an inability to collect an explain plan. This has now been fixed.

  • Fix default metric name for tracing class methods

    When using add_method_tracer on a class method but without passing in a metric_name_code, the default metric name will now look like Custom/ClassName/Class/method_name. We also addressed default metric names for anonymous classes and modules.

  • Fix issue when rendering SQL strings in developer mode

    When we obfuscate SQL statements, we rewrite the Statement objects as SQL strings inline in our sample buffers at harvest time. However, in developer mode, we also read out of these buffers when rendering pages. Depending on whether a harvest has run yet, the buffer will contain either Statement objects, SQL strings, or a mix. Now, developer mode can handle them all!

  • Fix DelayedJob Sampler reporting incorrect counts in Active Record 3 and below

    When fixing various deprecation warnings on ActiveRecord 4, we introduced a regression in our DelayedJob sampler which caused us to incorrectly report failed and locked job counts in ActiveRecord 3 and below. This is now fixed. Thanks Rangel Dokov for the contribution!

Wednesday, February 17, 2016 - 10:51 Download


  • Rails 5 support

    This release includes experimental support for Rails 5 as of 5.0.0.beta2. Please note that this release does not include any support for ActionCable, the WebSockets framework new to Rails 5.

  • Don't include extension from single format Grape API transaction names

    Starting with Grape 0.12.0, an API with a single format no longer declares methods with .:format, but with an extension such as .json. Thanks Daniel Doubrovkine for the contribution!

  • Fix warnings about shadowing outer local variable when running tests

    Thanks Rafael Almeida de Carvalho for the contribution!

  • Check config first for Rails middleware instrumentation installation

    Checking the config first avoids issues with mock classes that don't implement VERSION. Thanks Jesse Sanford for the contribution!

  • Remove a trailing whitespace in the template for generated newrelic.yml

    Thanks Paul Menzel for the contribution!

  • Reference external resources in comments and readme with HTTPS

    Thanks Benjamin Quorning for the contribution!

Tuesday, February 9, 2016 - 16:04 Download


  • Don't inadvertently send sensitive information from DataMapper SQLErrors

    DataObjects::SQLError captures the SQL query, and when using versions of data_objects prior to 0.10.8, built a URI attribute that contained the database connection password. The :query attribute now respects the obfuscation level set for slow SQL traces and splices out any password parameters to the URI when sending up traced errors to New Relic.

  • Improved SQL obfuscation algorithm

    To help standardize SQL obfuscation across New Relic language agents, we've improved the algorithm used and added more test cases.

  • Configurable longer sql_id attribute on slow SQL traces

    The sql_id attribute on slow SQL traces is used to aggregate normalized queries together. Previously, these IDs would generally be 9-10 digits long, due to a backend restriction. If slow_sql.use_longer_sql_id is set to true, these IDs will now be 18-19 digits long.

Monday, January 25, 2016 - 10:33 Download


  • Improved transaction names for Sinatra

    The agent will now use sinatra.route for transaction names on Sinatra 1.4.3+, which sets it in the request environment. This gives names that closer resemble the routes defined in the Sinatra DSL. Thanks to Brian Phillips for the suggestion!

  • Bugfix for error flag on transaction events

    There was an issue causing the error flag to always be set to false for Insights transaction events that has been fixed.

  • Official support for Sidekiq 4

    The Ruby agent now officially supports Sidekiq 4.

  • Additional attributes collected

    The agent now collects the following information in web transactions: Content-Length HTTP response and Content-Type HTTP request headers.

Thursday, December 10, 2015 - 12:41 Download


  • Add support for setting a display name on hosts

    You can now configure a display name for your hosts using process_host.display_name, to more easily distinguish dynamically assigned hosts. For more info, see Change display name of hosts

  • Fixes automatic middleware instrumentation for Puma 2.12.x

    Starting with version 2.12.x the Puma project inlines versions of Rack::Builder and Rack::URLMap under the Puma namespace. This had the unfortunate side effect of breaking automatic Rack middleware instrumentation. We now instrument Puma::Rack::Builder and Puma::Rack::URLMap and once again have automatic Rack middleware instrumentation for applications running on Puma.

  • Do not use a DelayedJob's display_name for naming the transaction

    A DelayedJob's name may be superseded by a display_name, which can lead to a metric grouping issue if the display_name contains unique identifiers. We no longer use job name methods that may lead to an arbitrary display_name. Instead, we use the appropriate class and/or method names, depending what makes sense for the job and how it's called.

  • Improvements to Mongo 2.1.x instrumentation

    Fixes issue where getMore operations in batched queries could create metric grouping issues. Previously when multiple Mongo queries executed in the same scope only a single query was recorded as part of a transaction trace. Now transaction trace nodes will be created for every query executed during a transaction.

  • Bugfix for NewRelic::Agent.notice_error

    Fixes issue introduced in v3.14.0 where calling NewRelic::Agent.notice_error outside of an active transaction results in a NoMethodError.

  • Bugfix for Resque Transaction Error events

    Fixes error preventing Transaction Error events generated in Resque tasks from being sent to New Relic.

Monday, October 19, 2015 - 11:32 Download


  • pruby marshaller removed

    The deprecated pruby marshaller has now been removed; the marshaller config option now only accepts json. Customers still running Ruby 1.8.7/REE must add the json gem to their Gemfile, or (preferably) upgrade to Ruby 1.9.3 or higher.

  • Log dates in ISO 8601 format

    The agent will now log dates in ISO 8601 (YYYY-MM-DD) format, instead of MM/DD/YY.

  • Additional attributes collected

    The agent now collects the following information in web transactions: Accept, Host, User-Agent, Content-Length HTTP request headers, HTTP request method, and Content-Type HTTP response header.

  • TransactionErrors reported for APM error advanced analytics

    With this release, the agent reports TransactionError events. These new events power the beta feature Advanced Analytics for APM errors. The error events are also available today through New Relic Insights.

    Advanced Analytics for APM errors lets you see all of your errors, with granular detail. Filter and group by any attribute to analyze them. Take action to resolve issues through collaboration.

    For more information, see View APM errors and error traces.

Monday, September 28, 2015 - 10:28 Download

Bug Fixes

  • Don't fail to send data when using mathn library

    Version 3.12.1 introduced a bug with applications using the mathn library that would prevent the agent from sending data to New Relic. This has been fixed.

Monday, September 21, 2015 - 14:32 Download


  • Don't use a pager when running git log command

    This would cause Capistrano deploys to hang when a large number of commits were being deployed. Thanks to John Naegle for reporting and fixing this issue!

  • Official support for JRuby

    The Ruby agent is now officially fully tested and supported on JRuby

  • Instrumentation for MongoDB 2.1.x

    Visibility in your MongoDB queries returns when using version 2.1.0 of the Mongo driver or newer. Thanks to Durran Jordan of MongoDB for contributing the Mongo Monitoring instrumentation!

  • Fix for ArgumentError "invalid byte sequence in UTF-8"

    This would come up when trying to parse out the operation from a database query containing characters that would trigger a invalid byte sequence in UTF-8 error. Thanks to Mario Izquierdo for reporting this issue!

  • Improved database metric names for ActiveRecord::Calculations queries

    Aggregate metrics recorded for queries made via the ActiveRecord::Calculations module (#count, #sum, #max, etc.) will now be associated with the correct model name, rather than being counted as generic 'select' operations.

  • Allow at_exit handlers to be installed for Rubinius

    Rubinius can support the at_exit block used by install_exit_handler. Thanks to Aidan Coyle for reporting and fixing this issue!

Monday, August 10, 2015 - 14:41 Download


  • Bugfix for uninitialized constant NewRelic::Agent::ParameterFiltering

    Users in some environments encountered a NameError: uninitialized constant NewRelic::Agent::ParameterFiltering from the Rails instrumentation while running v3.12.x of the Ruby agent. This issue has been fixed.

  • Rake task instrumentation

    The Ruby agent now provides opt-in tracing for Rake tasks. If you run long jobs via Rake, you can get all the visibility and goodness of New Relic that your other background jobs have. For more information, see Rake instrumentation.

  • Redis instrumentation

    Redis operations will now show up on the Databases tab and in transaction traces. By default, only command names will be captured; to capture command arguments, set transaction_tracer.record_redis_arguments to true in your configuration. For more information, see Redis instrumentation.

  • Fix for over-obfuscated SQL Traces and PostgreSQL

    An issue with the agent obfuscating column and table names from Slow SQL Traces when using PostgreSQL has been resolved.

  • Rubinius 2.5.8 VM metric renaming support

    Rubinius 2.5.8 changed some VM metric names and eliminated support for total allocated object counters. The agent has been updated accordingly.

  • Fix agent attributes with a value of false not being stored

    An issue introduced in v3.12.1 prevented attributes (like those added with add_custom_attributes) from being stored if their value was false. This has been fixed.

Tuesday, June 30, 2015 - 10:30 Download


  • More granular Database metrics for ActiveRecord 3 and 4

    Database metrics recorded for non-SELECT operations (UPDATE, INSERT, DELETE, etc.) on ActiveRecord 3 and 4 now include the model name that the query was being executed against, allowing you to view these queries broken down by model on the Datastores page. Thanks to Bill Kayser for reporting this issue!

  • Support for Multiverse testing third party gems

    The Ruby agent has rich support for testing multiple gem versions, but previously that wasn't accessible to third party gems. Now you can now simply require 'task/multiverse' in your Rakefile to access the same test:multiverse task that New Relic uses itself. For more details, see Multiverse: Test against multiple gem versions

  • Use Sidekiq 3.x's error handler

    Sidekiq versions 3.0 or higher provide an error handler for internal and middleware related failures. Failures at these points were previously unseen by the Ruby agent, but now they are properly traced.

  • Better error messages for common configuration problems with Capistrano

    Templating errors in newrelic.yml would result in obscure error messages during Capistrano deployments. These messages now more properly reflect the root cause of the errors.

  • newrelic_ignore methods allow strings

    The newrelic_ignore methods previously only supported passing symbols, and would quietly ignore any strings passed. Now strings can be passed as well to get the intuitive ignoring behavior you'd expect.

  • Replace DNS resolver for Resque jobs with Resolv

    In some circumstances customers with a very high number of short-lived Resque jobs were experiencing deadlocks during DNS resolution. Resolv is an all Ruby DNS resolver that replaces the libc implementation to prevent these deadlocks.

Thursday, May 7, 2015 - 11:48 Download


  • Flexible capturing of attributes

    The Ruby agent now allows you more control over exactly which request parameters and job arguments are attached to transaction traces, traced errors, and Insights events. For details, see:

  • Fixed missing URIs in traces for retried Excon requests

    If Excon's idempotent option retried a request, the transaction trace node for the call would miss having the URI assigned. This has been fixed.

  • Capturing request parameters from rescued exceptions in Grape

    If an exception was handled via a rescue_from in Grape, request parameters were not properly set on the error trace. This has been fixed. Thanks to Ankit Shah for helping us spot the bug.

Sunday, April 5, 2015 - 17:00 Download


  • Better naming for Rack::URLMap

    If a Rack app made direct use of Rack::URLMap, instrumentation would miss out on using the clearest naming based on the app class. This has been fixed.

  • Avoid performance regression in makara database adapter

    Delegation in the makara database adapter caused performance issues when the agent looked up a connection in the pool. The agent now uses a faster lookup to work around this problem in makara, and allocates less as well. Thanks Mike Nelson for the help in resolving this!

  • Allow audit logging to STDOUT

    Previously audit logs of the agent's communication with New Relic could only write to a file. This prevented using the feature on cloud providers like Heroku. Now STDOUT is an allowed destination for audit_log.path. Logging can also be restricted to certain endpoints via audit_log.endpoints.

    For more information see

  • Fix for crash during startup when Rails required but not used

    If an application requires Rails but wasn't actually running it, the Ruby agent would fail during startup. This has been fixed.

  • Use explicitly in the event loop

    If an application adds their own select method to Object/Kernel or mixes in a module that overrides the select method (as with ActionView::Helpers) we would previously have used their implementation instead of the intended, leading to all sorts of unusual errors. We now explicitly reference in the event loop to avoid these issues.

  • Fix for background thread hangs on old Linux kernels

    When running under Ruby 1.8.7 on Linux kernel versions 2.6.11 and earlier, the background thread used by the agent to report data would hang, leading to no data being reported. This has been be fixed.

Monday, March 23, 2015 - 11:24

Fix for segmentation fault with sequel_pg 1.6.11

The Ruby agent incorrectly rescued exceptions at a point which caused sequel_pg 1.6.11 to segfault. This has been fixed. Thanks to Oldrich Vetesnik for the report!

Wednesday, March 18, 2015 - 09:49

Unified view for SQL database and NoSQL datastore products.

The response time charts in the application overview page will now include NoSQL datastores, such as MongoDB, and also the product name of existing SQL databases such as MySQL, Postgres, etc.

The Databases page will now enable the filtering of metrics and operations by product, and includes a table listing all operations.

For existing SQL databases, in addition to the existing breakdown of SQL statements and operations, the queries are now also associated with the database product being used.

For NoSQL datastores, such as MongoDB, we have now added information about operations performed against those products, similar to what is being done for SQL databases.

Because this introduces a notable change to how SQL database metrics are collected, it is important that you upgrade the agent version on all hosts. If you are unable to transition to the latest agent version on all hosts at the same time, you can still access old and new metric data for SQL databases, but the information will be split across two separate views.

For more information see

Track background transactions as Key Transactions

In prior versions of the Ruby agent, only web transactions could be tracked as Key Transactions. This functionality is now available to all transactions, including custom Apdex values and X-Ray sessions.

For more information see

More support and documentation for third-party extensions

It's always been possible to write extension gems for the Ruby agent, but now there's one location with best practices and recommendations to guide you in writing extensions. Check out

We've also added simpler APIs for tracing datastores and testing your extensions. It's our way of giving back to everyone who's helped build on the agent over the years. <3

Fix for anonymous class middleware naming

Metric names based off anonymous middlewares lacked a class name in the UI. The Ruby agent will now look for a superclass, or default to AnonymousClass in those cases.

Improved exit behavior in the presence of Sinatra

The agent uses an at_exit hook to ensure data from the last < 60s before a process exits is sent to New Relic. Previously, this hook was skipped if Sinatra::Application was defined. This unfortunately missed data for short-lived background processes that required, but didn't run, Sinatra. Now the agent only skips its at_exit hook if Sinatra actually runs from at_exit.

Tuesday, February 17, 2015 - 13:21 Download


  • Support for the Grape framework

    We now instrument the Grape REST API framework! To avoid conflicts with the third-party newrelic-grape gem, our instrumentation will not be installed if newrelic-grape is present in the Gemfile.

    For more details, see

  • Automatic Cross Application Tracing support for all Rack applications

    Previously Rack apps not using Rails or Sinatra needed to include the AgentHooks middleware to get Cross Application Tracing support. With these changes, this is no longer necessary. Any explicit references to AgentHooks can be removed unless the disable_middleware_instrumentation setting is set to true.

  • Metrics no longer reported from Puma master processes

    When using Puma's cluster mode with the preload_app! configuration directive, the agent will no longer start its reporting thread in the Puma master process. This should result in more accurate instance counts, and more accurate stats on the Ruby VMs page (since the master process will be excluded).

  • Better support for Sinatra apps used with Rack::Cascade

    Previously, using a Sinatra application as part of a Rack::Cascade chain would cause all transactions to be named after the Sinatra application, rather than allowing downstream applications to set the transaction name when the Sinatra application returned a 404 response. This has been fixed.

  • Updated support for Rubinius 2.3+ metrics

    Rubinius 2.3 introduced a new system for gathering metrics from the underlying VM. Data capture for the Ruby VM's page has been updated to take advantage of these. Thanks Yorick Peterse for the contribution!

  • Fix for missing ActiveJob traced errors

    ActiveJobs processed by backends where the Ruby agent lacked existing instrumentation missed reporting traced errors. This did not impact ActiveJobs used with Sidekiq or Resque, and has been fixed.

  • Fix possible crash in middleware tracing

    In rare circumstances, a failure in the agent early during tracing of a web request could lead to a cascading error when trying to capture the HTTP status code of the request. This has been fixed. Thanks to Michal Cichra for the fix!

Wednesday, December 31, 2014 - 13:07 Download


  • Support for Ruby 2.2

    A new version of Ruby is available, and the Ruby agent is ready to run on it. We've been testing things out since the early previews so you can upgrade to the latest and greatest and use New Relic right away to see how the new Ruby's performing for you.

  • Support for Rails 4.2 and ActiveJob

    Not only is a new Ruby available, but a new Rails is out too! The Ruby agent provides all the usual support for Rails that you'd expect, and we instrument the newly released ActiveJob framework that's part of 4.2.

  • Security fix for handling of error responses from New Relic servers

    This release fixes a potential security issue wherein an attacker who was able to impersonate New Relic's servers could have triggered arbitrary code execution in agent's host processes by sending a specially-crafted error response to a data submission request.

    This issue is mitigated by the fact that the agent uses SSL certificate checking in order to verify the identity of the New Relic servers to which it connects. SSL is enabled by default by the agent. It can be enforced account-wide by enabling High Security mode for your account.

  • Fix for transactions with invalid URIs

    If an application used the agent's ignore_url_regexes config setting to ignore certain transactions, but received an invalid URI, the agent would fail to record the transaction. This has been fixed.

  • Fixed incompatibility with newrelic-grape

    The 3.9.8 release of the Ruby agent included disabled prototyped instrumentation for the Grape API framework. This introduced an incompatibility with the existing third party extension newrelic-grape. This has been fixed. Newrelic-grape continues to be the right solution until full agent support for Grape is available.

Wednesday, December 3, 2014 - 14:06 Download


  • Custom Insights events API

    In addition to attaching custom parameters to the events that the Ruby agent generates automatically for each transaction, you can now record custom event types into Insights with the new NewRelic::Agent.record_custom_event API.

    For details, see

  • Reduced memory usage for idling applications

    Idling applications using the agent could previously appear to leak memory because of native allocations during creation of new SSL connections to our servers. These native allocations didn't factor into triggering Ruby's garbage collector.

    The agent will now re-use a single TCP connection to our servers for as long as possible, resulting in improved memory usage for applications that are idling and not having GC triggered for other reasons.

  • Don't write to stderr during CPU sampling

    The Ruby agent's code for gathering CPU information would write error messages to stderr on some FreeBSD systems. This has been fixed.

  • LocalJumpError on Rails 2.x

    Under certain conditions, Rails 2.x controller instrumentation could fail with a LocalJumpError when an action was not being traced. This has been fixed.

  • Fixed config lookup in warbler packaged apps

    When running a Ruby application from a standalone warbler .jar file on JRuby, the packaged config/newrelic.yml was not properly found. This has been fixed, and thanks to Bob Beaty for the help getting it fixed!

  • Hash iteration failure in middleware

    If a background thread iterated over the keys in the Rack env hash, it could cause failures in New Relic's AgentHooks middleware. This has been fixed.

Friday, November 14, 2014 - 14:02 Download


  • Support for New Relic Synthetics

    The Ruby agent now gives you additional information for requests from New Relic Synthetics. More transaction traces and events give you a clearer look into how your application is performing around the world.

    For more details, see

  • Support for multiple job per fork gems with Resque

    The resque-jobs-per-fork and resque-multi-job-forks gems alter Resque to fork every N jobs instead of every job. This previously caused issues for the Ruby agent, but those have been resolved. These gems are fully supported.

    Running Resque with the FORK_PER_JOB=false environment variable setting is also supported now.

    For more details on our Resque support, see

  • Support agent when starting Resque Pool from Rake task

    When running resque-pool with its provided rake tasks, the agent would not start up properly. Thanks Tiago Sousa for the fix!

  • Fix for DelayedJob + Rails 4.x queue depth metrics

    The Ruby agent periodically records DelayedJob queuedepth as a metric, but this didn't work properly in Rails 4.x applications. This has been fixed. Thanks Jonathan del Strother for his help with the issue!

  • Fix for failure in background transactions with rules.ignore_url_regexes

    The recently added feature for ignoring transactions via URL regexes caused errors for non-web transactions. This has been fixed.

  • Rename the method to TransactionNamer.name_for

    The internal TransactionNamer class had a class method called 'name', with a different signature than the existing Class#name method and could cause problems when trying to introspect instances of the class.

    Thanks to Dennis Taylor for contributing this fix!

Monday, October 20, 2014 - 16:09 Download


  • Rails 4.2 ActiveJob support

    A new version of Rails is coming! One of the highlight features is ActiveJob, a framework for interacting with background job processors. This release of the Ruby agent adds instrumentation to give you insight into ActiveJob, whether you're just testing it out or running it for real.

    Metrics are recorded around enqueuing ActiveJobs, and background transactions are started for any ActiveJob performed where the agent didn't already provide specific instrumentation (such as DelayedJob, Resque and Sidekiq).

    Since Rails 4.2 is still in beta we'd love to hear any feedback on this instrumentation so it'll be rock solid for the general release!

  • Ruby 2.2.0-preview1 updates

    Ruby 2.2.0 is on its way later in the year, and the Ruby agent is ready for it. Updates to the GC stats and various other small changes have already been applied, and our automated tests are running against 2.2.0 so the agent will be ready on release day.

  • Ignoring transactions by URL

    While you could always ignore transactions by controller and action, the Ruby agent previously lacked a way to ignore by specific URLs or patterns without code changes. This release adds the config setting, rules.ignore_url_regexes to ignore specific transactions based on the request URL as well. For more information, see the documentation at:

  • Better dependency detection in non-Rack applications

    The Ruby agent runs dependency detection at key points in the Rack and Rails lifecycle, but non-Rails apps could occasionally miss out instrumenting late loaded libraries. The agent now runs an additional dependency detection during manual_start to more seamlessly install instrumentation in any app.

  • Excluding /newrelic routes from developer mode

    Recent changes to track time in middleware resulted in New Relic's developer mode capturing its own page views in the list. This has been fixed. Thanks to Ignatius Reza Lesmana for the report!

  • Spikes in external time

    Timeouts during certain external HTTP requests could result in incorrect large spikes in the time recorded by the agent. This has been fixed.

  • Recognize browser_monitoring.auto_instrument setting in non-Rails apps

    The browser_monitoring.auto_instrument config setting disables auto-injection of JavaScript into your pages, but was not properly obeyed in Sinatra and other non-Rails contexts. This has been fixed.

  • Failures to gather CPU thread time on JRuby

    JRuby running on certain JVM's and operating systems (FreeBSD in particular) did not always support the method being used to gather CPU burn metrics. This would result in a failure during those transactions. This has been fixed.

  • Fix for rare race condition in Resque instrumentation

    A race condition in the agent's Resque instrumentation that could cause rare Resque job failures in high-throughput Resque setups has been fixed. This bug would manifest as an exception with the following error message: "RuntimeError: can't add a new key into hash during iteration" and a backtrace leading through the PipeChannelManager class in the agent.