npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ember-new-relic

v0.7.0

Published

Adds New Relic to your Ember CLI app based on the app's environment

Downloads

1,734

Readme

Ember New Relic Build Status npm

This Ember addon adds New Relic Browser to your app. All PRs and issues are welcome.

Installation

ember install ember-new-relic

Usage

Basic Usage

Add your applicationId and licenseKey to config/environment.js:

/* config/environment.js */

module.exports = function(environment) {
  environment === 'development';

  var ENV = {
    newRelic: {
      applicationId: '97bfuo3FFd3',
      licenseKey: 'ef234SgE4'
    }
  };
}

Configuration

You might also want to specify your agent, beacon, or other properties:

/* config/environment.js */

module.exports = function(environment) {
  environment === 'development';

  var ENV = {
    newRelic: {
      agent: 'js-agent.newrelic.com/nr-1016.min.js',
      applicationId: '97bfuo3FFd3',
      beacon: 'bam.nr-data.net',
      errorBeacon: 'bam.nr-data.net',
      licenseKey: 'ef234SgE4',
      spaMonitoring: true,
      sa: 1,
    }
  };
}

Value and descriptions for all of the above can be found in your New Relic Browser's application settings.

It is likely you will only have to set applicationId, licenseKey, and agent to match your New Relic code snippet.

SPA Monitoring

New Relic released SPA Monitoring on July 12th 2016. By default, this addon does not use SPA Monitoring.

If you want to use New Relic SPA Monitoring, you must enable spaMonitoring in your configuration as follows:

/* config/environment.js */

module.exports = function(environment) {
  environment === 'development';

  var ENV = {
    newRelic: {
      spaMonitoring: true,
    }
  };
}

This will replace the default New Relic code snippet with the New Relic SPA code snippet.

Environments

To enable New Relic Browser in certain environments, just include applicationId for those environments only:

/* config/environment.js */

module.exports = function(environment) {
  environment === 'development';

  var ENV = {
    newRelic: {
      licenseKey: 'ef234SgE4'
    }
  };

  if (environment !== test) {
    ENV.newRelic.applicationId = '97bfuo3FFd3';
  }
}

You can also use different application IDs for different environments:

/* config/environment.js */

module.exports = function(environment) {
  environment === 'development';

  var ENV = {
    newRelic: {
      licenseKey: 'ef234SgE4'
    }
  };

  if (environment === 'development') {
    ENV.newRelic.applicationId = '97bfuo3FFd3';
  } else if (environment === 'production') {
    ENV.newRelic.applicationId = 'f99FJ930sp';
  }
}

Manual Script Loading

By default the New Relic code snippet is imported into vendor.js.

If you want to manually import the snippet from an external JS file, configure ember-cli-build.js with ember-new-relic options as follows:

/* ember-cli-build.js */
module.exports = function(defaults) {
    var app = new EmberApp(defaults, {
      'ember-new-relic': {
        importToVendor: false
      }
    });

    return app.toTree();
};

Prepare your app/index.html with the New Relic script, placed above the vendor.js script as follows:

<script src="new-relic.js"></script>
<script src="assets/vendor.js"></script>

Change the Script Path

The New Relic code's default output path is new-relic.js, accessible at the root of the output folder.

If you want to change the output path, configure ember-cli-build.js with ember-new-relic options as follows:

/* ember-cli-build.js */
module.exports = function(defaults) {
    var app = new EmberApp(defaults, {
      'ember-new-relic': {
        outputPath: 'assets/new-relic.js'
      }
    });

    return app.toTree();
};

When used in conjunction with importToVendor disabled, remember to update the path in app/index.html.

Content Security Policy

To avoid browser errors, add the following to your CSP:

/* config/environment.js */

module.exports = function(environment) {
  environment === 'development';

  var ENV = {
    newRelic: {
      licenseKey: 'ef234SgE4',
      applicationId: '97bfuo3FFd3',
    },

    contentSecurityPolicy: {
      'connect-src': "'self' https://*.nr-data.net",
      'img-src': "'self' https://*.nr-data.net",
      'script-src': "'self' http://*.newrelic.com https://*.nr-data.net http://*.nr-data.net",
    },
  };
}

Development

Run the tests using ember test or by navigating to the /tests route in the browser.

Please accompany PRs for bugs and new functionality with test coverage.