New Relic provides integrations for many popular services and frameworks. If you have New Relic and want to report data from a service we don't have an integration for, there are several ways New Relic lets you create your own integration:
- With New Relic Infrastructure, you can use our lightweight Flex tool (recommended, documented below) or, to build a complete Infrastructure on-host integration, see our Integrations SDK.
- Telemetry (metrics, traces) monitoring solutions: Use our Telemetry SDKs.
What is Flex?
New Relic Flex is an application-agnostic, all-in-one tool that allows you to collect metric data from a wide variety of services. It comes bundled with the New Relic Infrastructure agent. You can instrument any app that exposes metrics over a standard protocol (HTTP, file, shell) in a standard format (for example, JSON or plain text): you create a YAML config file, start the Infrastructure agent, and your data is reported to New Relic.
Flex can send event and metric data to New Relic from a wide range of sources. Using a simple YAML config file, you can run HTTP/HTTPS requests, run shell commands, and parse file content. You can also use standard regex expressions to customize and control the data gathered from those inputs. See an example config.
After collecting and cleaning up the data, you can then query Flex data in New Relic, create custom charts for it, and use that data in your dashboards.
Flex comes bundled with our Infrastructure agent. To use Flex, you need:
- New Relic Infrastructure Pro
- Infrastructure agent version 1.10.7 or higher (update | check version) running on Linux, Windows, or Kubernetes.
How does Flex work?
Flex uses the Infrastructure agent to execute commands that generate the data you want to report. Here's a brief overview of how Flex works to report data:
- You define the data you want to report in a YAML configuration file, located in the Infrastructure agent package. See an example configuration:
- Example config
The following is an example of a Flex configuration for monitoring the uptime of a Linux server. This configuration is placed in a file named
flex-uptime.yml. This would be placed in the Infrastructure agent's integration configuration section, located at
integrations: - name: nri-flex config: name: linuxUptimeIntegration apis: - name: Uptime commands: - run: 'cat /proc/uptime' split: horizontal split_by: \s+ set_header: [uptimeSeconds,idletimeSeconds]
Some notes on what this configuration does:
rundefines the command to execute.
- The name indicated by
name: Uptimeis appended with
Sampleto generate an event called
split_by: \s+splits the fields based on the space character.
- The command generates attributes attached to the
UptimeSampleevent. The attributes are named
- The Infrastructure agent runs Flex at a frequency based on its own configuration (default: every 30 seconds) and sends the data to New Relic.
- You can then query your data, create custom charts with it, and add it to dashboards.
The Flex integration comes bundled with the Infrastructure agent. Learn more about requirements.
To learn more, see our complete documentation on GitHub: