New features in 9.2
More flexibility for container deployments
The PHP daemon and agent no longer have to reside on the same host and can now communicate over a IPv4 or IPv6 TCP socket. This can be configured via the
newrelic.daemon.addresssetting in the agent and the
--addresscommand line option for the daemon.
When terminating the New Relic PHP daemon via the
SIGTERMsignal (and/or the
SIGINTsignal if started with the
--foregroundflag), the daemon will now send all buffered data to New Relic prior to exiting.
The PHP daemon has introduced a new configuration
--watchdog-foreground. This keeps the daemon watchdog process in the foreground, whereas the
--foregroundconfiguration keeps the daemon worker process in the foreground. The new configuration makes it possible to use the daemon in a blocking way, without losing the additional stability provided by the watchdog process.
The PHP agent has introduced a new configuration
newrelic.daemon.addresswhich serves as an alias to
newrelic.daemon.port. You may use either to specify the location of the New Relic PHP daemon. If both values are set,
Similarly, the PHP daemon has introduced a new configuration
--addresswhich serves as an alias to
--port. Customers may use either to specify the location of the New Relic PHP daemon. If both values are set,
When starting the daemon as an external process, the daemon will now wait for up to three seconds for the listening port to be ready to receive connections before forking into the background. This usually occurs in (much) less than a second, and most users with this configuration will notice no difference in practice.
The time that the daemon will wait can be controlled by setting the
--wait-for-portsetting with a duration. This duration may be
0to prevent any blocking. If the option is omitted, the default value is
Note that this is not the default configuration shipped with the PHP agent, and generally is only used in conjunction with the PHP agent configured with
Daemons started in foreground mode (with the
--foregroundflag) are unaffected, and will behave as before.
When duplicating database connections to generate explain plans, the agent will no longer make those connections persistent, even if the original connection was persistent.
The daemon now synchronously handles critical code paths related to harvesting and merging transaction data. This prevents crashes caused by race conditions.
Previously, the PHP agent was silently ignoring the setting
newrelic.daemon.portif the value was outside of the range 1 - 65535. In this case, it used the default value of
/tmp/.newrelic.sock. The PHP agent no longer silently ignores these port values; it now logs these errors in
Known issues and workarounds
- Potential memory exhaustion for long running transactions. See description under Known issues and workarounds in the PHP 18.104.22.168 release notes.