Important
We recommend updating to the latest agent version as soon as it's available. If you can't upgrade to the latest version, update your agents to a version at most 90 days old. Read more about keeping agent up to date.
As of this release, the oldest supported version is 6.10.0
v9.0.0
Version 9.0.0 of the agent removes several deprecated configuration options and API methods, enables Thread tracing by default, adds Fiber instrumentation, removes support for Ruby versions 2.2 and 2.3, removes instrumentation for several deprecated gems, changes how the API method set_transaction_name
works, and updates rails_defer_initialization
to be an environment variable only configuration option.
Remove deprecated configuration options
The following configuration options have been removed and will no longer work. Please update all configs to use the replacements listed below. PR#1782
Removed | Replacement |
|
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Enable Thread instrumentation by default
The configuration option
instrumentation.thread.tracing
is now enabled by default. This configuration allows the agent to properly monitor code occurring inside threads. In Ruby agent 9.0, instrumented code within threads will be recorded and associated with the current transaction when the thread was created.This may be a breaking change if you are currently using custom thread instrumentation. New transactions inside of threads will no longer be started if one already exists. PR#1767
Add Fiber instrumentation
Fiber
instances are now automatically instrumented similarly toThread
instances. This can be configured usinginstrumentation.fiber
. PR#1802Removed support for Ruby 2.2 and 2.3
Ruby 2.2 and 2.3 are no longer supported by the Ruby agent. To continue using the latest Ruby Agent version, please update to Ruby 2.4.0 or above. PR#1778
Removed deprecated instrumentation
Instrumentation for the following gems had been previously deprecated and has now been removed. PR#1788
- Acts As Solr
- Authlogic
- DataMapper
- Rainbows
- Sunspot
Versions of the following technologies had been previously deprecated and are no longer supported.
- Passenger: 2.2.x - 4.0.x
- Puma: 2.0.x
- Grape: 0.2.0
- Padrino: 0.14.x
- Rails: 3.2.x
- Sinatra: 1.4.x, 1.5.x
- Mongo: 1.8.x - 2.3.x
- Sequel: 3.37.x, 4.0.x
- Delayed_Job: 2.0.x - 4.0.x
- Sidekiq: 4.2.x
- Excon: below 0.55.0
- HttpClient: 2.2.0 - 2.8.0
- HttpRb: 0.9.9 - 2.2.1
- Typhoeus: 0.5.3 - 1.2.x
- Bunny: 2.0.x - 2.6.x
- ActiveMerchant: 1.25.0 - 1.64.x
Updated API method
set_transaction_name
When the method
NewRelic::Agent.set_transaction_name
is called, it will now always change the name and category of the currently running transaction to what is passed into the method. This is a change from previous agent versions.Previously, if
set_transaction_name
was called with a new transaction name and a new category that did not match the category already assigned to a transaction, neither the new name nor category would be saved to the transaction. If this method is being called in a situation in which it was previously ignored due to category differences, this will now change the name and category of the transaction. PR#1797Removed API method:
NewRelic::Agent.disable_transaction_tracing
The deprecated API method
NewRelic::Agent.disable_transaction_tracing
has been removed. Instead use eitherNewRelic::Agent#ignore_transaction
to disable the recording of the current transaction orNewRelic::Agent.disable_all_tracing
to yield a block without collecting any metrics or traces in any of the subsequent calls. PR#1792Renamed ActiveJob metrics
Previously, ActiveJob was categorized as a message broker, which is inaccurate. We've updated the naming of ActiveJob traces from leading with
MessageBroker/ActiveJob
to simply leading withActiveJob
. PR#1811Code cleanup
Thank you to community member @esquith for contributing some cleanup of orphaned constants in our code base. PR#1793 PR#1794 PR#1808
Community member @fchatterji helped standardize how we reference
NewRelic
throughout our codebase PR#1795 and updated our README's community header PR#1815. Thanks fchatterji!Bugfix: Allow rails initialization to be deferred by environment variable
The Ruby agent may force some Rails libraries to load on agent initialization, preventing some settings defined in
config/initializers
from being applied. Changing the initialization process to run afterconfig/initializers
, however, may break the configuration for other gems (ex. Roadie Rails).For those having troubles with agent initialization and Rails initializers, you can now pass the environment variable
NEW_RELIC_DEFER_RAILS_INITIALIZATION=true
to make the agent initialize afterconfig/initializers
are run. This config option can only be set using an environment variable and can't be set using YAML. PR#1791Thanks to @jdelStrother for bringing this issue to our attention and testing our fixes along the way. Issue#662