Importante
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.
Notes
- The previous fix for the daemon spin was incomplete. This release correctly fixes the problem we identified.
Importante
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.
Notes
- Fixed a bug that was causing the daemon to spin and consume 100% of a CPU
- Removed the 45 application limit
Importante
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.
Notes
- Increase visibility into errors by adding error type (eg E_WARNING) to captured errors.
- Refactor changes to local daemon to increase simplicity and stability.
- Prevent duplicate log file descriptors on Apache restart.
Importante
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.
Notes
- Prevent potential memory leak by daemon when connecting applications.
- Ensure that the agent will not block when attempting to connect to the daemon.
- Fix potential locking bug during daemon's application harvest cycle.
Importante
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.
Notes
- Show full URL of external calls in transaction trace nodes. Username, password, and query parameters are stripped from the URL.
- Fixed a bug causing time spent in background CLI tasks to be included in main overview graph.
- Fixed a bug causing incorrect custom tracer metrics in the event of out of order clock times.
- Look for and respond to 'X-NewRelic-ID' header in all incoming http requests. This change helps improve the correlation of performance between services in a service-oriented architecture for a forthcoming feature. In the meantime, if you wish to disable the header, set 'newrelic.cross_process.enabled=0' in your .ini file.
Importante
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.
Bugfixes
- Correctly destroy a thread mutex that was sometimes not being destroyed.
- Correctly obey newrelic.capture_params INI setting in regards to URL get parameters.
Importante
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.
Bugfixes
- Fixed an issue where massive log files were created if the agent received a SIGSEGV.
- Fixed an issue that occasionally caused SIGSEGV's when using RUM2.
Importante
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.
Notes
- Revert to using a UNIX-domain socket for agent to daemon communication. This is the same mechanism used in the 2.x and 1.x series of agents. This was done for speed purposes. The default socket path is the same as it was for the older versions of the agent:
/tmp/.newrelic.sock
. Thenewrelic.daemon.port
option in the INI file and theport
option in the daemon configuration file (newrelic.cfg) can now take either a path to a UNIX-domain socket, or an integer in the range 1-65534. If you use a path, then a UNIX-doman socket will be used. If you use an integer, then a TCP socket will be used on the specified port. - Correct the "banner" displayed in the log file to show the version of the running PHP. Previously it was incorrectly showing the version that we had compiled with.
- On platforms that support it, now attempt to display a stack dump in the unlikely event that the agent receives a SIGSEGV signal due to a bug. Displaying this stack is not always possible but when it works it is a big help for technical support to diagnose the exact cause of the problem. This feature existed in the 2.x series of agent but was not working correctly in the 3.x series until now.
- Fixed a problem where a communications failure between the agent and daemon when sending a transaction trace would result in a core dump (rare).
- Fixed a problem with Memcache metrics using the wrong metric name.
- Fixed a coredump that would occur when sending SQL tracers that were both un-obfuscated and contained lots of UNICODE characters (very rare).
- If a SIGSEGV signal is ever received make sure the daemon exits completely so that it can be respawned. Under certain conditions it could become "stuck" which would slow down the agent and stop all data from being sent to New Relic.
Importante
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.
Bugfixes
This release is a bug-fix release only and adds no new features to the agent. The following bugs introduced in 3.0/3.1 have been fixed:
- Fixed two segmentation violations that would occur after calling the
newrelic_set_appname()
API call. One had the potential to affect all users, the other was restricted to customers who used prepared SQL statements both before and after the call tonewrelic_set_appname()
. - Fixed a problem with the Solaris init scripts which made the incorrect assumption about the process ID of init.
- Fixed a small memory leak that affected CodeIgniter, CakePHP and Drupal applications.
Importante
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.
Notes
This release of the New Relic PHP agent adds two major new features, and includes several important bug fixes and stability improvements. The new features are:
- Key Transaction Support, and
- Real User Monitoring improvements.
Key transactions (discussed here) allow you to mark transactions that are important to your specific business needs and can have their own Apdex settings and error metrics.
The Real User Monitoring (RUM) improvements allow you to link select transaction traces with browser traces. Other improvements include the ability for RUM to work with multiple application names, and delivery of the RUM JavaScript file will only use the https protocol if the main page was also delivered via https. The new newrelic_set_user_attributes()
API call can now also be used to add additional data to browser traces. Please see this page for details.
The following smaller improvements and bug fixes have been made:
- Fixed an agent segmentation fault that occurred during Slow SQL processing at the end of a transaction.
- Fixed a daemon segmentation fault that occurred if the agent communication with the daemon was interrupted for any reason.
- Fixed a memory leak in the agent when the maximum number of Slow SQL statements for a transaction was reached.
- Fixed an error that was preventing the daemon from re-spawning a copy of itself if the worker daemon died due to a segmentation fault.
- Updated the
newrelic_set_appname
API call to no longer send the transaction thus far to the daemon unless you give it an argument explicitly requesting this behavior. This considerably reduces the overhead of changing application names on the fly. - Updated the
newrelic_end_transaction
API call to allow you to decide whether or not the transaction should be sent to the daemon. It is by default. - Fixed an error in the installer script where the license key was not being inserted into the INI file correctly.
- Functions with custom instrumentation (
newrelic.transaction_tracer.custom
) will now produce metrics that can be used in custom dashboards. - If your application produces a
Content-Length
header, automatic RUM ("auto-RUM") will no longer inject the RUM header and footer, which would invalidate the content length calculated by your application. - The NR_INSTALL_KEY environment variable is now correctly obeyed.
- The daemon is now compiled to support showing a backtrace in the event of a segmentation violation.