Importante
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 no more than 90 days old. Read more about keeping agents up to date.
See the New Relic Ruby agent EOL policy for information about agent releases and support dates.
v9.14.0
Version 9.14.0 adds Apache Kafka instrumentation for the rdkafka and ruby-kafka gems, introduces a configuration-based, automatic way to add custom instrumentation method tracers, correctly captures MIME type for ActionDispatch 7.0+ requests, properly handles Boolean coercion for newrelic.yml
configuration, fixes a JRuby bug in the configuration manager, fixes a bug related to Bundler.rubygems.installed_specs
, and fixes a bug to make the agent compatible with ViewComponent v3.15.0+.
Feature: Add Apache Kafka instrumentation for the rdkafka and ruby-kafka gems
The agent now has instrumentation for both the rdkafka and ruby-kafka gems. The agent will record transactions and message broker segments for produce and consume calls made using these gems. PR#2824 PR#2842
Feature: Add a configuration option to permit custom method tracers to be defined automatically
A new
:automatic_custom_instrumentation_method_list
configuration parameter has been added to permit the user to define a list of fully qualified (namespaced) Ruby methods for the agent to automatically add custom instrumentation for without requiring any code modifications to be made to the classes that define the methods.The list should be an array of
CLASS#METHOD
(for instance methods) and/orCLASS.METHOD
(for class methods) strings.Use fully qualified class names (using the
::
delimiter) that include any module or class namespacing.Here is some Ruby source code that defines a
render_png
instance method for anImage
class and anotify
class method for aUser
class, both within aMyCompany
module namespace:module MyCompanyclass Imagedef render_png# code to render a PNGendendclass Userdef self.notify# code to notify usersendendendGiven that source code, the
newrelic.yml
config file might request instrumentation for both of these methods like so:automatic_custom_instrumentation_method_list:- MyCompany::Image#render_png- MyCompany::User.notifyThat configuration example uses YAML array syntax to specify both methods. Alternatively, a comma-delimited string can be used instead:
automatic_custom_instrumentation_method_list: 'MyCompany::Image#render_png, MyCompany::User.notify'Whitespace around the comma(s) in the list is optional. When configuring the agent with a list of methods via the
NEW_RELIC_AUTOMATIC_CUSTOM_INSTRUMENTATION_METHOD_LIST
environment variable, this comma-delimited string format should be used:export NEW_RELIC_AUTOMATIC_CUSTOM_INSTRUMENTATION_METHOD_LIST='MyCompany::Image#render_png, MyCompany::User.notify'Feature: Collect just MIME type for ActionDispatch 7.0+ requests
Rails 7.0 introduced changes to the behavior of
ActionDispatch::Request#content_type
, adding extra request-related details the agent wasn't expecting to collect. Additionally, the agent's use ofcontent_type
was triggering deprecation warnings. The agent now usesActionDispatch::Request#media_type
to capture the MIME type. Thanks to @internethostage for letting us know about this change. Issue#2500 PR#2855Bugfix: Corrected Boolean coercion for
newrelic.yml
configurationPreviously, any String assigned to New Relic configurations expecting a Boolean value were evaluated as
true
. This could lead to unexpected behavior. For example, settingapplication_logging.enabled: 'false'
innewrelic.yml
would incorrectly evaluate toapplication_logging.enabled: true
due to the truthy nature of Strings.Now, the agent strictly interprets Boolean configuration values. It recognizes both actual Boolean values and certain Strings/Symbols:
'true'
,'yes'
, or'on'
(evaluates totrue
)'false'
,'no'
, or'off'
(evaluates tofalse
)
Any other inputs will revert to the setting's default configuration value. PR#2847
Bugfix: JRuby not saving configuration values correctly in configuration manager
Previously, a change made to fix a different JRuby bug caused the agent to not save configuration values correctly in the configuration manager when running on JRuby. This has been fixed. PR#2848
Bugfix: Update condition to verify Bundler.rubygems.installed_specs is available
To address a recent Bundler deprecation warning, we started using
Bundler.rubygems.installed_specs
instead ofBundler.rubygems.all_specs
in environments that seemed appropriate. We discovered the version constraint we used was too low. Now, rather than check the version, we check for the method usingrespond_to?
. PR#2853Bugfix: Support view_component v3.15.0+
Previously the agent had been making use of a private API to obtain a component identifier value. This private API was dropped in v3.15.0 of view_component, resulting in errors from the New Relic Ruby agent's continued attempts to use it. Many thanks to community member @navidemad for bringing this issue to our attention and supplying a bugfix with PR#2870.