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 PHP agent automatically marks Drupal cron requests as background tasks, improves the categorization of PHP errors within the New Relic UI, and fixes several bugs. Additionally, the internals of the agent have been significantly refactored to improve the stability and performance of the agent.
New Features
Treat Drupal cron requests as background tasks
Drupal cron requests (identified by calls to
drupal_cron_run()
) will now be counted as background tasks (not web transactions) regardless of how they are started. Previously, it was necessary to use thenewrelic_background_job()
API to explicitly mark Drupal cron requests as background tasks.Use the exception class as the category for errors
Errors created using the
newrelic_notice_error()
API function with an exception will be grouped according to the exception's class. Previously, all errors were grouped under 'NoticedError'.See https://docs.newrelic.com/docs/php/the-php-api#api-notice-error
Limit the maximum number of nested PHP function calls
The agent will now limit the maximum number of nested function calls within PHP applications. This is to provide protection against stack overflows due to infinite recursion. Previously, this would result in a segmentation fault. The agent will now log an error and terminate the process by raising a fatal PHP error. By default, this limit is set to a very high value of 500. Exceeding this limit should be extremely rare.
Improve the stability and performance of the agent
The internals of the agent and its background daemon process have been significantly refactored to improve interprocess communication, stability and performance. The maximum number of connections to the background daemon process has been doubled to 4096.
Bug Fixes
Fix for installing on Ubuntu 13.10 when using PHP-FPM
Previously the installer would fail to install a newrelic.ini file in the configuration directory for PHP-FPM (/etc/php5/fpm/conf.d), if one was present. This has been fixed, and the installer will correctly install a newrelic.ini for CLI, DSO and FPM configuration directories.
Fix for
drupal_http_request()
always returningNULL
under PHP 5.5Version 3.9.5.13 added support for external calls made using
drupal_http_request()
. Due to the way the agent instruments this function under PHP 5.5, this function would always returnNULL
instead of the correct return value. This has been fixed.Fix for real user monitoring when a Content-Length response header is present.
When automatic real user monitoring is enabled, the agent will only perform JavaScript injection into HTML pages when a Content-Length header is not already present in the response. In some cases, this check was not working correctly leading to the value in the Content-Length header not matching the actual number of bytes sent to the client.
Fixed a segmentation fault when Zend Thread Safety is enabled.
Attempts to use the agent under Apache using a threaded MPM (e.g. worker or event) and mod_php would result in segmentation faults. This has been fixed, but New Relic does not recommend using the agent in these circumstances.
Fixed high CPU usage under heavy load
Under very high loads with thousands of PHP processes, the background daemon process could consume 100% CPU when the per-process file descriptor limit was exceeded. This has been fixed. The agent will now throttle the number of new connections accepted when per-process file descriptor limit is reached. A message is also printed to the log 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.
Notes
- Fix a segfault that could occur when the daemon was unable to bind to its listening socket during startup. The watcher process would then attempt to spawn a new daemon process leading to another segfault creating a loop. This loop would then cause the daemon log file to grow indefinitely. All customers are encouraged to upgrade.
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
- We've added support for Symfony 2. Symfony 2 controller names will now show up in the web transactions view. This is an intermediate step leading up towards future Drupal 8 support.
- We have improved Zend Framework 1 transaction naming in order to reduce instances of metric grouping issues.
- We have tidied up our code for handling slow SQL statements.
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
- Transaction traces containing many consecutive calls to curl_multi_exec will now show the cumulative time as a single node. Previously the transaction trace would show one node for each call.
- We fixed segmentation faults when restarting Apache on Darwin and FreeBSD.
- We corrected an issue in the newest Debian-based Linux distributions that prevented the newrelic.ini file from being installed properly.
- A warning message is put in the agent log when newrelic_name_transaction() fails.
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
- Support for histograms and percentiles
- PHP 5.5 support added
- PHP 5.1 deprecated
- Various bug fixes and stability improvements.
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
Support for two additional external calls has been added to cross application tracing.
- Zend_Http_Client::request()
- drupal_http_request()
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
- Preliminary support for Cross Application Tracing has been added. The following external calls are supported.
- curl_exec()
- file_get_contents()
- httprequest::send()
- Communication between the agent and the daemon process has been improved, fixing a rare issue that could affect data quality.
- Fixes a rare issue where too many daemon processes could be launched.
- Various bug fixes and stability improvements.
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
- Magento transaction naming has been refined
- MySQL errors will now be recorded properly under PHP 5.1
- Request queue timing can be specified with X-Request-Start as well as HTTP_X_REQUEST_START
- Other small bugfixes
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
- Data uploads to the New Relic collectors now default to SSL. SSL can be disabled through the configuration file.
- The agent now carries its own SSL certificate bundle, improving portability across platforms.
- Queuing time display has been corrected for certain dispatcher configurations.
- Various stability and performance enhancements.
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
- Patch release to fix an occasional segmentation fault when using Drupal.