Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Fixes
(Fix) RUM Stops Working After 3.4.2.1 Agent Upgrade
v3.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
When the Ruby Agent detects Unicorn as the dispatcher it creates an INFO level log message with additional information
To help customers using Unicorn, if the agent detects it (Unicorn) is being used as the dispatcher an INFO level log message it created that includes a link to New Relic online doc that has additional steps that may be required to get performance data reporting.
(Fix) In version 3.4.2 of the Ruby Agent the server side value for Apdex T was disgregarded
With version 3.4.2 of the agent, the value set in the newrelic.yml file took precedence over the value set in the New Relic UI. As of version 3.5.0 only the value for Apdex T set in the New Relic UI will be used. Any setting in the yaml file will be ignored.
Improved Error Detection/Reporting capabilities for Rails 3 apps
Some errors are missed by the agent's exception reporting handlers because they are generated in the rails stack, outside of the instrumented controller action. A Rack middleware is now included that can detect these errors as they bubble out of the middleware stack. Note that this does not include Routing Errors.
The Ruby Agent now logs certain information it receives from the New Relic servers
After connecting to the New Relic servers the agent logs the New Relic URL of the app it is reporting to.
GC profiling overhead for Ruby 1.9 reduced
For Ruby 1.9 the amount of time spent in GC profiling has been reduced.
Know issue with Ruby 1.8.7-p334, sqlite3-ruby 1.3.0 or older, and resque 1.23.0
The Ruby Agent will not work in conjunction with Ruby 1.8.7-p334, sqlite3-ruby 1.3.3 or earlier, and resque 1.23.0. Your app will likely stop functioning. This is a known problem with Ruby versions up to 1.8.7-p334. Upgrading to the last release of Ruby 1.8.7 is recommended. This issue has been present in every version of the agent we've tested going back for a year.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Fixes
Fix issue when app_name is nil
If 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 the NEW_RELIC_APP_NAME environment variable set. A nil app_name is now detected and an error logged specifying remediation.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Fixes
Support for Apdex T in server side configuration
For 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 robustly sanitized to prevent potential XSS vulnerabilities
The code that scrubs the token used in Real User Monitoring has been enhanced to be more robust.
Refactoring of agent config code
The code that reads the configuration information and configures the agent got substantially reorganized, consolidated, simplified, and made more robust.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Bug Fixes
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. The issue seems to be triggered when the X-UA-Compatible meta tag is present and the
</head>
tag is missing.Fixed reference to
@service.request_timeout
to@request_timeout in new_relic_service.rb
. (Thanks to Matthew Savage)When a timeout occurred during connection to the collector an "undefined method
request_timeout for nil:NilClass
" would get raised.preserve visibility on traced methods.
Aliased methods now have the same visibility as the original traced method. A couple of the esoteric methods created in the process weren't getting the visibility set properly.
Agent service does not connect to directed shard collector after connecting to proxy
After connecting to collector proxy name of real collector was updated, but ip address was not being updated causing connections to go to the proxy. Agent now looks up ip address for real collector.
corrupt marshal data from pipe children crashing agent
If the agent received corrupted data from the Reqsue worker child agent it could crash the agent itself. fixed.
should reset RubyBench GC counter between polls
On Ruby REE, the GC profiler does not reset the counter between polls. This is only a problem if GC could happen between transactions, as in, for example, out-of-band GC in Unicorn. fixed.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Fixes
- Prevent the agent from resolving the collector address when disabled.
- Fix for error collector configuration that was introduced during beta.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
New Feature(s)
- 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, dramatically improving their experience.
Bug Fixes
- Resolve issue with configuring the Error Collector when using server-side configuration.
Changes
- Moved Resque instrumentation from rpm_contrib to main agent. Resque users should discontinue use of rpm_contrib or upgrade to 2.1.11.
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Fixes
- 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 methods ending in '?' or '!'
- Limit scanning first 50k of the response in RUM auto-instrumentation.
- Fix keeping exception from being raised when when extracting metrics from SQL queries with non UTF-8 bytes
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Fixes
- Bug fix when rendering empty collection in Rails 3.1+
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Fixes
- Rails 3 view instrumentation
Important
The end-of-life date for this agent version is July 29, 2019. To update to the latest agent version, see Update the agent. For more information, see End-of-life policy.
Fixes
- Improved Sinatra instrumentation
- Limit the number of nodes collected in long running transactions to prevent leaking memory