New Relic Infrastructure provides a software development kit (SDK) for creating an Infrastructure integration that reports custom host and server data, including metric, event, and inventory (system state) data. That data can then be found in New Relic Infrastructure and in New Relic Insights.
Data from custom on-host integrations is available only with Infrastructure Pro. For more subscription details, see the Infrastructure product page.
What is an Infrastructure integration?
In New Relic Infrastructure, an integration is a package that sends specific host, server, and system data to New Relic. An integration allows you to supplement Infrastructure's default, out-of-the-box monitoring. Some integrations are created by New Relic (for example, the Amazon integrations and assorted on-host integrations) and some have been created by the open-source community (see list of open-source on-host integrations). You can also create your own integrations using the Infrastructure Integrations SDK.
You can use the Integrations SDK to build a custom integration for reporting data from specific technologies like Kafka or RabbitMQ. For example, you might use a custom integration for your RabbitMQ instance to get the total number of published messages, or the number of messages sent per second. Using integration inventory data, you might track configuration changes to understand how installs or updates are related to performance issues.
A custom on-host integration consists of these files:
- One or more executable files, written in any language, that exports JSON data in a format expected by the Infrastructure agent.
- A definition file (YAML format) provides descriptive information about the integration, such as: what version of the protocol it supports, a list of commands it can execute, and arguments that it accepts.
- A configuration file (YAML format) that specifies which executables to run and the parameters required to run them.
Create a custom integration
Custom integration data is available only with a New Relic Infrastructure Pro subscription.
To learn how to create an integration, use these resources:
- Read the Integration file structure documentation, which explains the files required to create an integration, and how to activate an integration.
- Complete the tutorial, which walks you through creating a Redis integration in the Go language (recommended integration language).
- If you build an integration but it isn't generating data, see Troubleshooting.
What data can be reported?
There are three types of data a custom integration can generate:
- Metrics: Metric data is used for numerical measurement data. Examples: how many requests are in a queue, or the number of hits on a database per minute. This data can be found in New Relic Insights, where you can explore your data with the data explorer, create queries, create custom dashboards for your data, and set up NRQL alert conditions.
- Inventory: Live system state and configuration information. This data can be found on the Infrastructure Inventory UI page.
- Events: Events are used to record important activities on a system. Examples: a service starting or a new table being created. Inventory changes are reported as events and shown in the Infrastructure events feed.
For general information on integration data, see Understand integration data.
For information on how custom on-host integrations collect and report data to New Relic, see Integration data collection.