More flexibility for container deployments
- The daemon and the instrumented application no longer have to reside on the same host and can now communicate over an IPv4 or IPv6 TCP socket. For the instrumented application this can be configured via the
daemon_socketargument of the
newrelic_initfunction. For the daemon this can be configured via the
--addresscommand line option.
- When terminating the 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 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 C SDK now offers
newrelic_set_transaction_namewith which users may change the name of an already started transaction.
- The daemon now synchronously handles critical code paths related to harvesting and merging transaction data. This prevents crashes caused by race conditions.
The daemon has introduced a new configuration
--addresswhich serves as an alias to
--port. Customers may use either to specify the location of the daemon. If both values are set,
When starting the daemon, it 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 0 to prevent any blocking. If the option is omitted, the default value is
Daemons started in foreground mode (with the
--foregroundflag) are unaffected, and will behave as before.