C SDK release notes

C SDK release notes

Thursday, October 10, 2019 - 12:00 Download

New Features

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_socket argument of the newrelic_init function. For the daemon this can be configured via the --address command line option.
  • When terminating the daemon via the SIGTERM signal (and/or the SIGINT signal if started with the -f, --foreground flag), 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 --foreground configuration 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_name with which users may change the name of an already started transaction.

Bug Fixes

  • The daemon now synchronously handles critical code paths related to harvesting and merging transaction data. This prevents crashes caused by race conditions.

Upgrade Notices

  • The daemon has introduced a new configuration --address which serves as an alias to --port. Customers may use either to specify the location of the daemon. If both values are set, --address takes precedence.

  • 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-port setting with a duration. This duration may be 0 to prevent any blocking. If the option is omitted, the default value is 3s.

    Daemons started in foreground mode (with the --foreground flag) are unaffected, and will behave as before.

Tuesday, June 4, 2019 - 12:00 Download

New Features

  • 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

  • The log_filename and log_level fields of newrelic_app_config_t are 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 newrelic_configure_log().
Tuesday, April 23, 2019 - 10:00

New Features

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.