Support for Real Time Streaming
- Event data is now sent to New Relic every five seconds, instead of every minute. As a result, transaction, error, and custom events will now be available in New Relic dashboards in near real time. For more information on how to view your events with a five-second refresh, see the real time streaming documentation.
- Note that the overall limits on how many events can be sent per minute have not changed. Also, span events, metrics, and trace data is unaffected, and will still be sent every minute.
A default configuration created with
newrelic_create_app_config()will now work as expected with license keys for non-US accounts.
For inbound distributed tracing payloads with invalid or missing values for
sa(sampled) the agent used to assign a default priority of -1 and/or a default sampled value of
falseto the transaction.
This has been fixed: the agent now keeps initial priority and sampled values if the respective values in the inbound distributed tracing payload are missing or invalid.
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.
Support for Distributed tracing
Distributed tracing lets you see the path that a request takes as it travels through your distributed system. By showing the distributed activity through a unified view, you can troubleshoot and understand a complex system better than ever before.
Distributed tracing is available with an APM Pro or equivalent subscription. To see a complete distributed trace, you need to enable the feature on a set of neighboring services.
Refer to the New Relic C SDK documentation for more information on enabling distributed tracing for the C SDK.
End of Life Notice
newrelic_app_config_tare currently deprecated. Future versions of the C SDK will permanently remove these fields. To specify the log file and log level to use with the C SDK, use
This is the first release of the New Relic C SDK! If your application does not use other New Relic APM agent languages, you can use the C SDK to take advantage of New Relic's monitoring capabilities and features to instrument a wide range of applications.
For more information, see:
- Documentation: How to get started with the C SDK, install and configure it, instrument transactions, segments, and errors, use the C SDK API, and do some basic troubleshooting.
- GitHub: SDK files, data structure, field definitions and parameters, code examples, functions, variables.
End of Life Notice
The previous APM Agent SDK is deprecated beta software. If you were previously using the Agent SDK, you can switch to the C SDK. Check the compatibility and requirements, and then instrument, compile and link your application's code to use the C SDK. The C SDK currently does not support New Relic's HSM feature; this may impact how you schedule your transition away from the Agent SDK.