Per-dyno data on Heroku
When 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 treated in the same way that distinct hosts on other platforms work.
By default, 'scheduler' and 'run' dyno names will be aggregated into
run.*to avoid unbounded growth in the number of reported hostnames.
Read more about this feature on our Heroku docs page: https://docs.newrelic.com/docs/agents/ruby-agent/miscellaneous/ruby-agen...
HTTP response codes in Insights events
The Ruby agent will now capture HTTP response codes from Rack applications (including Rails and Sinatra apps) and include them under the httpResponseCode attribute on events sent to Insights.
Stricter limits on memory usage of metrics and SQL traces
The agent now imposes stricter limits on the number of distinct SQL traces and metrics that it will buffer in memory at any point in time, leading to more predictable memory consumption even in exceptional circumstances.
Improved reliability of thread profiling
Several issues that would previously have prevented the successful completion and transmission of thread profiles to New Relic's servers have been fixed.
These issues were related to the use of recursion in processing thread profiles, and have been addressed by both limiting the maximum depth of the backtraces recorded in thread profiles, and eliminating the agent's use of recursion in processing profile data.
Allow tracing Rails view helpers with add_method_tracer
Previously, attempting to trace a Rails view helper method using add_method_tracer on the view helper module would lead to a NoMethodError when the traced method was called (undefined method `trace_execution_scoped'). This has been fixed.
This issue was an instance of the Ruby 'dynamic module inclusion' or 'double inclusion' problem. Usage of add_method_tracer now no longer relies upon the target class having actually picked up the trace_execution_scoped method from the NewRelic::Agent::MethodTracer module.
Improved performance of queue time parsing
The number of objects allocated while parsing the front-end timestamps on incoming HTTP requests has been significantly reduced.
Thanks to Aleksei Magusev for the contribution!