🐛 Bug Fixes
- Fix edge case in RUM auto instrumentation where X-UA-Compatible meta tag is present but 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 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.
- 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.
- Moved Resque instrumentation from rpm_contrib to main agent. Resque users should discontinue use of rpm_contrib or upgrade to 2.1.11.
- Resolve issue with configuring the Error Collector when using server-side configuration.
- Prevent the agent from resolving the collector address when disabled.
- Fix for error collector configuration that was introduced during beta.
- Preserve method visibility when methods are traced with #add_method_tracer and #add_transaction_tracer
- [FIX] Allow tracing of methods ending in ! and ?
- [PERF] Give up after scanning first 50k of the response in RUM auto-instrumentation.
- [FIX] Don't raise when extracting metrics from SQL queries with non UTF-8 bytes.
- Replaced "Custom/DJ Locked Jobs" metric with new metrics for monitoring DelayedJob: queue_length, failed_jobs, and locked_jobs, all under Workers/DelayedJob. queue_length is also broken out by queue name or priority depending on the version of DelayedJob deployed.
- Rails 3 view instrumentation
- Bug fix when rendering empty collection in Rails 3.1+
- Improved Sinatra instrumentation
- Limit the number of nodes collected in long running transactions to prevent leaking memory
- 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 RedHat kernel bug which prevented blocking reads of /proc fs
- Do not trap signals when handling exceptions
- [SECURITY] fix for cookie handling by End User Monitoring instrumentation
- improved Ruby 1.8.6 support
- fix for issues with RAILS_ROOT deprecation warnings
- fixed incorrect 1.9 GC time reporting
- obfuscation for Slow SQL queries respects transaction trace config
- fix for RUM instrumentation reporting bad timing info in some cases
- refactored ActiveRecord instrumentation, no longer requires Rails