Introduction to the New Relic Agent SDK

BETA

This is pre-release software and should be treated as such. We are giving you early access to the beta to enable you to view web transactions. Please use this beta as an opportunity to provide feedback and guide us as we add more features and work toward a production release of the SDK.

New Relic offers support for many of the popular agent languages, including Java, .NET, Node.js, PHP, Python, and Ruby. However, some users are looking for insights into web apps written in a variety of languages and environments, which is why New Relic created an SDK that could be hooked into any language.

Compatibility and requirements

The Agent SDK helps you use New Relic to gain visibility into application performance for apps that were not written in one of our supported languages. Make sure your app meets these requirements.

Note: As a standard security measure for data collection, New Relic requires that your application server supports SHA-2 (256-bit). SHA-1 is not supported.

Category Requirements
Language

The instructions in this tutorial assume your application is written in C or C++. If you are not using C or C++, then you will need to create a wrapper around the APIs.

How to create your wrapper will vary from language to language. For example, with perl you can use SWIG or XS. Other languages have direct support for calling native functions.

Operating system and compiler support

The SDK only supports 64 bit Linux at this time.

The SDK libraries for build environments use glibc 2.12 or higher. If you need a release built using an older version of glibc, create a request via the standard support channels.

Libraries

You will need to install:

  • Boost, because although the SDK statically links to boost, boost itself dynamically links to the rt and pthreads libraries.
  • cURL, because the SDK uses libcurl for http requests (for supported versions, see the Libraries table, below).

Libraries

The SDK dynamically links to the openssl and cURL libraries. The SDK works with the following libraries:

Library Compiled against Known to work
libopenssl 1.0.2a 1.0.0r, 1.0.1e, 1.0.1m
libcurl 7.39.0 7.19.0

Thread safety

Some portions of the Agent SDK's transaction library are thread-safe, while others are not. The following activities should be considered thread-safe:

  • Starting transactions on different threads
  • Starting, modifying, and ending segments on different threads for different transactions

The following activities should not be considered thread-safe:

  • Modifying and ending a single transaction from different threads
  • Starting, modifying, and ending segments on different threads within the same transaction

For more help

Additional documentation resources include:

Troubleshoot and ask questions about the Agent SDK in New Relic's Online Technical Community!

If you need additional help, get support at support.newrelic.com.