Back

Step by Step Guide to Building a New Relic API Integration in JS

Aug 7, 20246 minute read

Introduction

Hey there, fellow developer! Ready to supercharge your application monitoring? Let's dive into integrating the New Relic API using JavaScript. This powerful combo will give you deep insights into your app's performance, making your life a whole lot easier.

Prerequisites

Before we jump in, make sure you've got:

  • A Node.js environment up and running
  • A New Relic account with an API key (if you don't have one, go grab it!)
  • Your JavaScript skills polished and ready to go

Setting up the project

First things first, let's get our project set up:

mkdir new-relic-integration cd new-relic-integration npm init -y npm install newrelic

Easy peasy, right? You're already on your way to monitoring greatness!

Configuring New Relic

Now, let's create a newrelic.js file in your project root:

'use strict' exports.config = { app_name: ['Your App Name'], license_key: 'your_license_key_here', logging: { level: 'info' }, allow_all_headers: true, attributes: { exclude: [ 'request.headers.cookie', 'request.headers.authorization', 'request.headers.proxyAuthorization', 'request.headers.setCookie*', 'request.headers.x*', 'response.headers.cookie', 'response.headers.authorization', 'response.headers.proxyAuthorization', 'response.headers.setCookie*', 'response.headers.x*' ] } }

Don't forget to replace 'your_license_key_here' with your actual New Relic license key!

Instrumenting your application

Time to get your app New Relic-ready. At the very top of your main application file:

require('newrelic'); // Rest of your app code

Pro tip: Make sure this is the first line. New Relic needs to set up shop before anything else happens!

Making API calls to New Relic

Let's get our hands dirty with some API calls. First, we'll need to authenticate:

const https = require('https'); const options = { hostname: 'api.newrelic.com', port: 443, path: '/v2/applications.json', method: 'GET', headers: { 'X-Api-Key': 'your_api_key_here' } }; const req = https.request(options, (res) => { let data = ''; res.on('data', (chunk) => { data += chunk; }); res.on('end', () => { console.log(JSON.parse(data)); }); }); req.on('error', (error) => { console.error(error); }); req.end();

This will fetch your applications data. Cool, huh?

Handling responses

As you saw above, we're parsing the JSON response and logging it. In a real-world scenario, you'd probably want to do something more interesting with that data:

res.on('end', () => { const applications = JSON.parse(data).applications; applications.forEach(app => { console.log(`${app.name}: ${app.health_status}`); }); });

Advanced usage

Want to send custom events? No problem:

const event = { eventType: 'Purchase', account: 3, amount: 259.99 }; const data = JSON.stringify({events: [event]}); const options = { hostname: 'insights-collector.newrelic.com', port: 443, path: '/v1/accounts/your_account_id/events', method: 'POST', headers: { 'Content-Type': 'application/json', 'X-Insert-Key': 'your_insert_key_here' } }; // ... rest of the request code

Testing and debugging

Once you've got everything set up, head over to the New Relic UI. You should see your data flowing in like a beautiful, insightful river. If you're not seeing what you expect, double-check your API keys and make sure your requests are formatted correctly.

Conclusion

And there you have it! You've just built a New Relic API integration in JS. Pretty awesome, right? Remember, this is just scratching the surface. New Relic's API is packed with features, so don't be afraid to explore and experiment.

Keep coding, keep monitoring, and may your applications always run smoothly!