When querying AWS for instance metadata, include a token in the request headers. If an AWS user configures instances to require a token, the agent will now work. For instances that do not require the …
This release includes Rails 7.0 as a tested Rails version. Updates build upon the agent's current Rails instrumentation and do not include additional instrumentation for new features. This method is c…
Most of the changes involved updating the multiverse suite to exclude runs for older versions of instrumented gems that are not compatible with Ruby 3.1.0. In addition, Infinite Tracing testing was up…
Template rendering using Tilt is now instrumented. Tilt 2.x is supported for Ruby versions 2.2 and above and 1.x is supported for Ruby versions below 2.7. See PR #847 for details. This setting has be…
The agent will now automatically instrument Logger, recording number of lines and size of logging output, with breakdown by severity. A bug was introduced to the way the agent installs padrino instrum…
This release overhauls the implementation of add_method_tracer, as detailed in issue #502. The main breaking updates are as follows:A metric name passed to add_method_tracer will no longer be interpol…
This release adds support for configuration of expected/ignored errors by class name, status code, and message. The following configuration options are now available:error_collector.ignore_classes. e…
We now support passing in a nonce to our API method browser_timing_header to allow the Browser agent to run on applications using CSP nonces. This allows users to inject the Browser agent themselves a…
Please see our Ruby Agent 6.x to 7.x migration guide for helpful strategies and tips for migrating from earlier versions of the Ruby agent to 7.0.0. We cover new configuration settings, diagnosiing a…
The Ruby agent has been verified to run on Ruby 3.0.0. The Ruby agent has been verified to run with Rails 6.1. Special thanks to @hasghari for setting this up!. The Ruby agent has been verified to run…
Previously, when calling add_method_tracer with certain combination of arguments, it would lead to the wrapped method's arguments being cloned rather than passed to the original method for manipulatio…
A recent change to the Ruby agent to obfuscate URIs sent to external services had the unintended side-effect of removing query parameters from the original URI. This is fixed to obfuscate while also p…
When connecting to New Relic, the Ruby Agent uses the value in Agent.config[:host] to post a request to the New Relic preconnect endpoint. This endpoint returns a "redirect host" which is the URL to w…
The New Relic Ruby agent is now open source under the Apache 2 license and you can now observe the project roadmap. See our Contributing guide and Code of Conduct for details on contributing!. All ver…
This release adds support for Infinite Tracing. Infinite Tracing observes 100% of your distributed traces and provides visualizations for the most actionable data. With Infinite Tracing, you get examp…
Error attributes error.class and error.message are now included on the span event in which an error or exception was noticed, and, in the case of unhandled exceptions, on any ancestor spans that also …
Distributed tracing now supports W3C Trace Context headers for HTTP protocols when distributed tracing is enabled. Our implementation can accept and emit both the W3C trace header format and the New R…
The Ruby agent has been verified to run with Ruby 2.7.0-preview1. New API method for adding custom attributes to spans. Previously, custom attributes were only available at the Transaction level. Now,…
Event data is now sent to New Relic every five seconds, instead of every minute. As a result, transaction, error, and custom events will now be available in New Relic One and Insights dashboards in ne…
Previous versions of the agent sometimes caused application crashes with some versions of ActionCable. The application would exit quickly after startup with the error: uninitialized constant ActionCab…
Due to incompatibilities between the faster ActiveRecord connection resolution released in Ruby agent v6.3.0 and other gems that patch ActiveRecord, backport_fast_active_record_connection_lookup will …
The agent now collects environment variables prefixed by NEW_RELIC_METADATA_. These may be added to transaction events to provide context between your Kubernetes cluster and your services. For details…
This version of the agent has been verified against the Rails 6.0.0 release.As ActiveRecord 4, 5, and 6 use the same New Relic instrumentation, the disable_active_record_4 and disable_active_record_5 …
Bugfix for superfluous Empty JSON response error messagesVersion 6.1.0 of the agent frequently logged error messages about an empty JSON response, when no error had occurred. These logs no longer appe…
Performance monitoring on KubernetesThis release adds Transaction event attributes that provide context between your Kubernetes cluster and services. For details on the benefits, see this blog post. B…
Tracer API for flexible custom instrumentationWith agent version 6.0, we are introducing the Tracer class, an officially supported public API for more flexible custom instrumentation. By calling its i…
Ruby 2.6 supportWe have tested the agent with the official release of Ruby 2.6.0 made on December 25, 2018. Support for loading Sequel core standaloneThe agent will now enable Sequel instrumentation w…
Bugfix for transactions with ActionController::LivePreviously, transactions containing ActionController::Live resulted in incorrect calculations of capacity analysis as well as error backtraces appear…
Bugfix for perform instrumentation with curb gemUse of curb's perform method now no longer results in nil headers getting returned. Bugfix for parsing Docker container IDsThe agent now parses Docker c…
Capacity analysis for multi-threaded dispatchersMetrics around capacity analysis did not previously account for multi-threaded dispatchers and consequently could result in capacities of over 100% bein…
Distributed tracingDistributed tracing lets you see the path that a request takes as it travels through your distributed system. By showing the distributed activity through a unified view, you can tro…
Use priority sampling for errors and custom eventsPriority sampling replaces the older reservoir event sampling method. With this change, the agent will maintain randomness across a given time period …
Rails 5.2 supportThe Ruby agent has been validated against the latest release of Ruby on Rails!. Support for newer libraries and frameworksWe have updated the multiverse suite to test the agent agains…
SSL connections to New Relic are now mandatoryPrior to this version, using an SSL connection to New Relic was the default behavior, but could be overridden. SSL connections are now enforced (not overr…
Initialize New Relic Agent before config initializersWhen running in a Rails environment, the agent registers an initializer that starts the agent. This initializer is now defined to run before config…
Bugfix for Manual Browser InstrumentationThere was a previous bug that required setting both rum.enabled: false and browser.auto_instrument: false to completely disable browser monitoring. An attempt …
Expected Error APIThe agent now sends up error.expected as an intrinsic attribute on error events and error traces. When you pass expected: true to the notice_error method, both Insights and APM will …
Public API for External RequestsThe agent now has public API for instrumenting external requests and linking up transactions via cross application tracing. See the API Guide for more details on this n…
Send synthetics headers even when CAT disabledThe agent now sends synthetics headers whenever they are received from an external request, even if cross-application tracing is disabled. Bugfix for Dela…
Include test helper for 3rd party useIn 4.2.0, all test files were excluded from being packaged in the gem. An agent class method NewRelic::Agent.require_test_helper was used by 3rd party gem authors …
Instrumentation for the Bunny AMQP ClientThe Bunny AMQP Client is now automatically instrumented. The agent will report data for messages sent and received by an application. Data on messages is avail…
Sinatra 2.0 and Padrino 0.14.x SupportThe agent has been verified against the latest versions of Sinatra and Padrino. Rails 5.1 SupportThe Ruby agent has been validated against the latest release of R…
Developer Mode removedThe Ruby Agent's Developer Mode, which provided a very limited view of your application performance data, has been removed. For more information, check out our community forum. S…
Require Ruby 2.0.0+The agent no longer supports Ruby versions prior to 2.0, JRuby 1.7 and earlier, and all versions of Rubinius. Customers using affected Rubies can continue to run 3.x agent versions,…
Ensure Mongo aggregate queries are properly obfuscatedInstrumentation for the Mongo 2.x driver had a bug where the pipeline attribute of Mongo aggregate queries was not properly obfuscated. Users who …
Ruby 2.4.0 supportThe agent is now tested against the official release of ruby 2.4.0, excluding incompatible packages. Agent-based metrics will not be recorded outside of active transactionsThe agent …
Compatibility with Ruby 2.4.0-preview3The Ruby agent has been updated to work on Ruby 2.4.0-preview3. Early Access Sinatra 2.0 instrumentationOur Sinatra instrumentation has been updated to work with …
Datastore instance reporting for Redis, MongoDB, and memcachedThe agent now collects datastore instance information for Redis, MongoDB, and memcached. This information is displayed in transaction trac…
Datastore instance reporting for ActiveRecordThe agent now collects database instance information for ActiveRecord operations, when using the MySQL and Postgres adapters. This information (database se…
Add :trace_only option to notice_error APIPreviously, calling notice_error would record the trace, increment the error count, and consider the transaction failing for Apdex purposes. This method now a…
Fix for "Unexpected frame in traced method stack" errorsOur ActiveRecord 4.x instrumentation could have generated "Unexpected frame in traced method stack" errors when used outside of an active transa…
Internal datastore instrumentation rewritesThe agent's internal tracing of datastore segments has been rewritten, and instrumentation updated to utilize the new classes. Fix Grape endpoint versions in…
Official Rails 5.0 supportThis version of the agent has been verified against the Rails 5.0.0 release. Early access Action Cable instrumentationThe Ruby agent instruments Action Cable channel actions …
Run explain plans on parameterized slow queries in AR4In our ActiveRecord 4 instrumentation, we moved to tracing slow queries using the payloads from ActiveSupport::Notifications sql.active_record eve…
Rack 2 alpha supportThis 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 …
Rails 5 supportThis 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 Rai…
Don't inadvertently send sensitive information from DataMapper SQLErrorsDataObjects::SQLError captures the SQL query, and when using versions of data_objects prior to 0.10.8, built a URI attribute tha…
Improved transaction names for SinatraThe 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 …
Add support for setting a display name on hostsYou can now configure a display name for your hosts using process_host.display_name, to more easily distinguish dynamically assigned hosts. For more info…
marshaller removedThe 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 Gemfi…
Don't fail to send data when using libraryVersion 3.12.1 introduced a bug with applications using the library that would prevent the agent from sending data to New Relic. This has been fixed
Don't use a pager when running git log commandThis 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!…
Bugfix for uninitialized constant NewRelic::Agent::ParameterFilteringUsers in some environments encountered a NameError: uninitialized constant NewRelic::Agent::ParameterFiltering from the Rails instr…
More granular Database metrics for ActiveRecord 3 and 4Database metrics recorded for non-SELECT operations (UPDATE, INSERT, DELETE, etc.) on ActiveRecord 3 and 4 now include the model name that the qu…
Flexible capturing of attributesThe Ruby agent now allows you more control over exactly which request parameters and job arguments are attached to transaction traces, traced errors, and Insights event…
Better naming for Rack::URLMapIf 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 …
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!
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.
Support for the Grape frameworkWe 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 i…
Support for Ruby 2.2A 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 a…
Custom Insights events APIIn 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…
Support for New Relic SyntheticsThe 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 app…
Rails 4.2 ActiveJob supportA 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…
Per-dyno data on HerokuWhen running on Heroku, data from the agent can now be broken out by dyno name, allowing you to more easily see what's happening on a per-dyno level. Dynos on Heroku are now tre…
Allow agent to use alternate certificate storesWhen connecting via SSL to New Relic, the Ruby agent verifies its connection via a certificate bundle shipped with the agent. This caused problems with c…
Fix to prevent proxy credentials transmissionThis update prevents proxy credentials set in the agent config file from being transmitted to New Relic
Added API for ignoring transactionsThis release adds three new API calls for ignoring transactions:NewRelic::Agent.ignore_transaction. NewRelic::Agent.ignore_apdex. NewRelic::Agent.ignore_enduserignor…
Ruby 1.8.7 users: upgrade or add JSON gem nowRuby 1.8.7 is end-of-lifed, and not receiving security updates, so we strongly encourage all users with apps on 1.8.7 to upgrade.If you're not able to upgr…
Rack middleware instrumentationThe Ruby agent now automatically instruments Rack middlewares!This means that the agent can now give you a more complete picture of your application's response time, inc…
Better handling for Rack applications implemented as middlewaresWhen using a Sinatra application as a middleware around another app (for example, a Rails app), or manually instrumenting a Rack middlew…
Better support for forking and daemonizing dispatchers (e.g. Puma, Unicorn)The agent should now work out-of-the box with no special configuration on servers that fork or daemonize themselves (such as …
Fix for Puma 2.8.0 cluster mode (3.7.3.204)Puma's 2.8.0 release renamed a hook New Relic used to support Puma's cluster mode. This resulted in missing data for users running Puma. Thanks Benjamin Kudr…
Obfuscation for PostgreSQL explain plansFixes an agent bug with PostgreSQL where parameters from the original query could appear in explain plans sent to New Relic servers, even when SQL obfuscation w…
Update gem signing cert (3.7.2.195)The certificate used to sign newrelic_rpm expired in February. This patch updates that for clients installing with verification
Mongo instrumentation improvementsUsers of the 'mongo' MongoDB client gem will get more detailed instrumentation including support for some operations that were not previously captured, and separation…
Correct first reported metric timespan for forking dispatchers (3.7.1.188)The first time a newly-forked process (in some configurations) reported metric data, it would use the startup time of the pare…
Fix for Mongo ensure_index instrumentation (3.7.1.182)The Mongo instrumentation for ensure_index in 3.7.1.180 was not properly calling through to the uninstrumented version of this method. This has be…
MongoDB supportThe Ruby agent provides support for the mongo gem, versions 1.8 and 1.9! Mongo calls are captured for transaction traces along with their parameters, and time spent in Mongo shows up on…
Official Rubinius support (for Rubinius >= 2.2.1)We're happy to say that all known issues with the Ruby agent running on Rubinius have been resolved as of Rubinius version 2.2.1! See New Relic on Rubi…
Experimental Rubinius 2.x supportThe agent is now being tested against the latest version of Rubinius. While support is still considered experimental, you can track the progress at https://docs.newrel…
Percentiles and HistogramsThe Ruby Agent now captures data that provides percentile and histogram views in the New Relic UI. Missing Resque transaction tracesA bug in 3.6.8.164 prevented transaction t…
X-Ray Sessions supportX-Ray Sessions provide more targeted transaction trace samples and thread profiling for web transactions. For full details see our X-Ray sessions documentation at https://newreli…
Additional locking option for ResqueThere have been reports of worker process deadlocks in Resque when using the Ruby agent. An optional lock is now available to avoid those deadlocks. See https://new…
Resque-pool supportResque processes started via the resque-pool gem weren't recognized by the Ruby agent. The agent now starts correctly in those worker processes. Environment-based configurationAll s…
HTTPClient and Curb supportThe Ruby agent now supports the HTTPClient and Curb HTTP libraries! Cross application tracing and more is fully supported for these libraries. For more details see https://n…
Rails 4.0 SupportThe Ruby agent is all set for the recent general release of Rails 4.0! We've been tracking the RC's, and that work paid off. Versions 3.6.5 and 3.6.4 of the Ruby agent should work fin…
Exception listWe've improved exception message handling for applications running in high security mode. Enabling 'high_security' now removes exception messages entirely rather than simply obfuscating …
Better Sinatra SupportA number of improvements have been made to our Sinatra instrumentation. More details: https://newrelic.com/docs/ruby/sinatra-support-in-the-ruby-agentSinatra instrumentation has …
Sequel supportThe Ruby agent now supports Sequel, a database toolkit for Ruby. This includes capturing SQL calls and model operations in transaction traces, and recording slow SQL calls. See https://n…
Full URIs for HTTP requests are recorded in transaction tracesWhen recording a transaction trace node for an outgoing HTTP call via Net::HTTP, the agent will now save the full URI (instead of just the…
Sidekiq supprtThe Ruby agent now supports the Sidekiq background job framework. Traces from Sidekiq jobs will automatically show up in the Background tasks on New Relic similar to Resque and Delayed::…
Key TransactionsThe Ruby agent now supports Key Transactions! Check out more details on the feature at https://newrelic.com/docs/site/key-transactions. Ruby 2.0The Ruby agent is compatible with Ruby 2…
Resolved some issues with tracking of front-end queue time, particularly when the agent is running on an app hosted on Heroku. The agent will now more reliably parse the headers described in https://n…
Use HTTPS by defaultThe agent now defaults to using SSL when it communicates with New Relic's servers. By defaults already configured, New Relic does not transmit any sensitive information (e.g. SQL p…
Add thread profiling supportThread profiling performs statistical sampling of backtraces of all threads within your Ruby processes. This feature requires MRI >= 1.9.2, and is controlled via the New Re…
Fix incompatibility with logging gem by renaming NewRelic::Agent::Thread to NewRelic::Agent::AgentThread
Add queue time support for sinatra appsSinatra applications can now take advantage of front-end queue time reporting. Thanks to Winfield Peterson for this contribution. Simplify queue time configurati…
Update the collector protocol to use JSON and Ruby primitivesThe communication between the agent and the NewRelic will not longer be marshaled Ruby objects, but rather JSON in the case of Ruby 1.9 and…
Simplified process of running agent test suite and documented code contribution process in GUIDELINES_FOR_CONTRIBUTING
Enabling Memory Profiling on Lion and Mountain LionThe agent's list of supported platforms for memory profiling wasn't correctly checking for more recent versions of OS X. Fixed an arity issue encount…
(performance) Gradual slowdown on Phusion PassengerThis release resolves a performance issue that effected sites running on some versions of Phusion Passenger. The issue manifests as a slow degradatio…
(Fix) RUM Stops Working After 3.4.2.1 Agent Upgradev3.4.2.1 introduced a bug that caused the browser monitor auto instrumentation (for RUM) default to be false. The correct value of true is now used. …
Fix issue when app_name is nilIf the app_name setting ends up being nil an exception got generated and the application wouldn't run. This would notably occur when running a Heroku app locally without …
Support for Apdex T in server side configurationFor those using server side configuration the Ruby Agent now supports setting the Apdex T value via the New Relic UI. The RUM NRAGENT tk value gets more…
Fix edge case in RUM auto instrumentation where X-UA-Compatible meta tag is present but </head> tag is missing.There is a somewhat obscure edge case where RUM auto instrumentation will crash a request…
Prevent the agent from resolving the collector address when disabled. Fix for error collector configuration that was introduced during beta
Major refactor of data transmission mechanism. This enabled child processes to send data to parent processes, which then send the data to the New Relic service. This should only affect Resque users, d…
Replaced "Custom/DJ Locked Jobs" metric with three new metrics for monitoring DelayedJob: queue_length, failed_jobs, and locked_jobs, all under Workers/DelayedJob. Fix allowing instrumentation of meth…
Bug fix when rendering empty collection in Rails 3.1+
Rails 3 view instrumentation
Improved Sinatra instrumentation. Limit the number of nodes collected in long running transactions to prevent leaking memory
fix for cookie handling by End User Monitoring instrumentation
deployments recipe change: truncate git SHAs to 7 characters. Fixes for obfuscation of PostgreSQL and SQLite queries. Fix for lost database connections when using a forking framework. Workaround for R…
Performance and stability improvements. Restored compatibility with Ruby 1.8.6
New slow SQL tracing feature. New expanded browser tracing
Yet more work on Delayed Job instrumentation. Threading fixes. More Heroku friendly logging system
The agent now works with the Rails 3.1 release candidates. More reliable loading of several types of instrumentation, most notably Delayed Job
Support for aggregating data from short-running processes to reduce reporting overhead. Fixed: Issue with RUM and empty response bodies. Patch: Clear GC::Profiler statistics under 1.9.2 to prevent mem…
Updated Real User Monitoring to reduce JavaScript size and improve compatibility, fix a few known bugs
Support for Real User Monitoring. Back-end work on internals to improve reliability. Added a log_file_name and log_file_path configuration variable to allow setting the path and name of the agent log …