Bug Fixes
- On the first request served by a PHP process, a Drupal 6 or 7 hook that was invoked with
module_invoke()
before it had been invoked bymodule_invoke_all()
could have its module name reported as an empty string. This has been fixed. - On PHP 7.0 and 7.1, a Drupal 6 or 7 hook invoked via
module_invoke_all()
could report the module name as an empty string in some situations. This has been fixed.
Bug Fixes
- Users of Guzzle 4 or 5 may have seen crashes in version 7.3.0 of the PHP agent due to a bug in the agent's request shutdown instrumentation for that library. This has been fixed.
Upgrade Notices
Laravel Queue instrumentation has been updated to better interoperate with other New Relic APM features. It is possible that messages sent from PHP installs running version 7.3 (or later) of the PHP agent may not be correctly linked to the message queue worker transaction if the worker is running with version 7.2 or earlier of the PHP agent.
If you use the Laravel Queue instrumentation, we recommend ensuring that all agents used to produce and consume messages are upgraded to version 7.3 simultaneously to avoid unexpected service map issues.
Bug Fixes
- Compatibility with extensions that install opcode handlers on PHP 7 has been improved, most notably with uopz. While we still do not recommend using other extensions that hook deeply into PHP (such as uopz, runkit, or xdebug) with the New Relic PHP agent, this change should result in improved functionality.
- A potential segfault when using Predis in a session handler invoked at request shutdown has been fixed.
- External requests issued using Guzzle 6 are now properly instrumented when the
GuzzleHttp\Client
class has been extended.
Upgrade Notices
Users of the
newrelic-php5
Debian package with PHP 5.2: due to discontinued support of PHP 5.2, upgrading to version 7.x of the PHP agent may result in your applications no longer reporting to New Relic. We advise that you upgrade to a supported version of PHP.If upgrading PHP is not possible, you can use
apt-get
anddpkg
to install version 6.9 of the PHP agent and then hold that installed version by running these commands as root:apt-get updateapt-get upgrade newrelic-php5-common=6.9.0.182 newrelic-daemon=6.9.0.182 newrelic-php5=6.9.0.182echo 'newrelic-php5-common hold' | dpkg --set-selections
Bug Fixes
- Automatic transaction naming has been fixed for Symfony 1 users who replaced the controller class via
factories.yml
with one that did not callsfFrontWebController::dispatch()
orsfController::forward()
. - Datastore metrics could not be generated for Predis 0.7 and 0.8 in version 7.1 of the PHP agent. This has been fixed.
- The agent would not report
Zend_Http_Client
external calls when the Zend Framework was used directly as a library or indirectly by a framework like Symfony or Magento. This has been fixed.
New Features
Added support for the MongoDB library
The PHP agent now supports the MongoDB userland library, which is the recommended interface to the mongodb extension. Users of this library will see new metrics in the Databases tab, nodes in transaction traces, and breakdown metrics on individual transaction pages.
Database instance information available for Redis, Predis, and MongoDB
Queries and commands issued using the PECL Redis extension, the Predis library, and the MongoDB library now capture instance information. Transaction traces now include the name of the host (including the port or socket) and database that the query was run against.
Collection of host information can be disabled by setting
newrelic.datastore_tracer.instance_reporting.enabled = false
in thenewrelic.ini
. Similarly, the database name can be omitted withnewrelic.datastore_tracer.database_name_reporting.enabled = false
.
Upgrade Notices
- Commands in Predis pipelines are now reported individually, rather than being rolled into a single
pipeline
query.
Bug Fixes
- When using PHP 7.0 or 7.1, calling
curl_setopt()
with theCURLOPT_HTTPHEADER
option and an array with elements that have been accessed by reference (for example, withforeach ($array as $k => &$v)
) would result in the headers used by New Relic to track external calls overwriting other custom headers. This has been fixed.
New Relic PHP Agent Release Notes
End of Life Notices
- The New Relic PHP agent no longer supports PHP 5.2. New Relic highly encourages upgrading to a supported version of PHP - 5.6 or higher. If you would like to continue running the New Relic PHP agent with PHP 5.2, we recommend using version 6.9 of the agent, however please note that we can only offer limited support in this case.
New Features
Automatic transaction naming for Magento 2 has been improved. Previously, only requests that were handled by Magento's normal routing were automatically named, which resulted in request types that utilized Magento's interceptor/plugin functionality being named as
unknown
. This primarily affected users of the REST or SOAP web services.REST and SOAP requests will now be named in the
Webapi/Rest
andWebapi/Soap
namespaces, respectively, and will be named according to the service class and method that handle the request.Third party modules that add an interceptor on
Magento\Framework\App\FrontControllerInterface
to override thedispatch()
method will result in transaction names that are based on the interceptor class name. New Relic recommends using thenewrelic_name_transaction()
API function from within the module to name the transaction if you require more precision.
End of Life Notices
- Support for PHP 5.2 in the New Relic PHP agent is deprecated and will be removed in a future version. New Relic highly encourages upgrading to a supported version of PHP - 5.6 or higher. If you would like to continue running the New Relic PHP agent with PHP 5.2, we recommend using version 6.9 of the agent, however please note that we can only offer limited support in this case.
New Features
Instance information for the pgsql and PDO pgsql extensions is now captured. Slow database queries and transaction traces now include the name of the host (including the port or socket) and database that the query was run against.
Collection of host information can be disabled by setting
newrelic.datastore_tracer.instance_reporting.enabled = false
in thenewrelic.ini
. Similarly, the database name can be omitted withnewrelic.datastore_tracer.database_name_reporting.enabled = false
.
End of Life Notices
- Support for PHP 5.2 in the New Relic PHP agent is deprecated and will be removed in a future version. New Relic highly encourages upgrading to a supported version of PHP - 5.6 or higher. If you would like to continue running the New Relic PHP agent with PHP 5.2, we recommend using version 6.8 of the agent, however please note that we can only offer limited support in this case.
New Features
Support for PHP 7.1 has been added.
The elapsed time after which an application will be considered inactive can now be configured using the
newrelic.daemon.app_timeout
setting. This setting is useful when the only transactions being executed are very infrequent, such background processing using a cron job. Previously, an application was considering inactive after ten minutes with no transactions.Instance information for the mysql, mysqli, and PDO mysql extensions is now captured. Slow database queries and transaction traces now include the name of the host (including the port or socket) and database that the query was run against.
Collection of host information can be disabled by setting
newrelic.datastore_tracer.instance_reporting.enabled = false
in thenewrelic.ini
. Similarly, the database name can be omitted withnewrelic.datastore_tracer.database_name_reporting.enabled = false
.
Bug Fixes
- Automatic transaction naming for MediaWiki versions 1.18 and later was broken in version 6.3 of the New Relic PHP agent. This has been fixed.
New Features
PHPUnit test events
Support has been added for the popular unit test library PHPUnit (versions 3.7 to 5.5, inclusive). When enabled, the agent reports test results as custom Insights events. Test suite summary data are sent as
TestSuite
events, while individual test cases are sent asTest
events.You can enable this feature in your newrelic.ini file with
newrelic.phpunit_events.enabled = true
. Depending on your events retention policy, enabling this setting may impact your New Relic billing statement.Read more about this feature on our documentation site.
Support has been added for Slim Framework 2.x and 3.x.
Upgrade Notices
- To avoid potential deadlocks, MySQL SELECT queries that use the
FOR UPDATE
orLOCK IN SHARE MODE
suffixes will no longer generate explain plans.
Bug Fixes
- Automatic page load timing instrumentation was broken on PHP 5.4-7.0 in certain edge cases: most notably, when the
<head>
element was not in the first 40kB of the page content, or when the</body>
element was not in the last few kilobytes of content. This has been fixed. - Prevent real user monitoring JavaScript injection when the Content-Type is first set to text/html then subsequently changed to something else (for example, application/json). This was a regression introduced in version 6.2.
Bug Fixes
- When using version 6.6.0 of the PHP agent, instantiating a PDO object with options set could result in PHP crashing at the end of handling a request. This has been fixed.