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

react-newrelic-agent

v1.4.0

Published

A React integration SDK for New Relic monitoring, simplifying setup and customization.

Downloads

329

Readme

React New-Relic Agent

A comprehensive SDK for integrating New Relic monitoring into React applications. react-newrelic-agent simplifies the process of setting up New Relic for browser monitoring, providing React developers with an easy-to-use interface for sending custom events, metrics, and logs.

Features

  • Easy New Relic initialization in React applications
  • Custom event logging with New Relic
  • Performance metrics tracking
  • Error logging and handling

Installation

Install react-newrelic-agent using npm:

npm i react-newrelic-agent

or using yarn

yarn add react-newrelic-agent

Creating an app in New Relic

Before instrumenting your app using the NPM package, a Browser App should be configured in New Relic. This may be done with or without a corresponding APM agent. Once the app has been created, the Copy/Paste JavaScript code on the app's Application settings page will contain the configuration values needed to define options when instantiating the agent via the NPM package.

  • If a browser app does not already exist, create one:
    • From the New Relic navigation panel, click Add Data.
    • Select the Browser monitoring data source.
    • Choose the APM or Copy/Paste method.
    • Select or name your app and click Enable.
  • From the navigation panel, select Browser to view browser apps.
  • Select the desired app and navigate to the Application settings page.
  • From the Copy/Paste JavaScript box, copy the configuration values assigned to the NREUM object (init, info, and loader_config). You will use these configuration values when instantiating the agent using the NPM package.

Configuration Setup

The New Relic Browser agent configuration can be obtained from your New Relic account. Once you have retrieved the configuration details, you can initialize the initRelicBrowserAgent function with the required parameters.

Configuration Example

// Configuration obtained from New Relic Browser agent
NREUM.loader_config = {
  accountID: '123456',
  trustKey: '123456',
  agentID: '789012',
  licenseKey: 'NRJS-abcdef123456',
  applicationID: '789012'
}

// Initialize New Relic Browser agent with the obtained configuration
import { initRelicBrowserAgent } from 'react-newrelic-agent'

initRelicBrowserAgent({
  accountId: '123456',
  applicationId: '789012',
  browserLicenseKey: 'NRJS-abcdef123456',
  ApiLicenseKey: 'INGEST-LICENSE-xyz789', // INGEST-LICENSE key from profile -> API keys (Optional)
  appName: 'YOUR_APPLICATION_NAME' // Default - RelicLogger (Optional)
})

How to Use

  • Account ID (accountId): Use the accountID value from the New Relic configuration and assign it to the accountId parameter in the initRelicBrowserAgent function.
  • Application ID (applicationId): Similarly, assign the applicationID value from the New Relic configuration to the applicationId parameter.
  • Browser License Key (browserLicenseKey): Use the licenseKey value from the New Relic configuration and assign it to the browserLicenseKey parameter.
  • API License Key (ApiLicenseKey) (Optional): Retrieve the INGEST-LICENSE key from your New Relic profile under API keys, and assign it to the ApiLicenseKey parameter.
  • Application Name (appName) (Optional): Specify your application name using the appName parameter. If not provided, the default name will be 'RelicLogger'.

Logging Events

You can log custom events or errors using the logger instance:

import { logger } from 'react-newrelic-agent'

// Log a custom event
logger.logEvent('UserRegistration', {
  username: 'johndoe',
  plan: 'premium'
})

// Log an error
logger.logError(new Error('Something went wrong'), {
  page: 'SignUp',
  severity: 'critical'
})

API Reference

initRelicBrowserAgent(params)

Initializes the New Relic Browser agent with the provided configuration.

| Params | Description | | ------------------------ | ----------------------------------- | | accountid | Your New Relic Account ID. | | applicationId | Your New Relic Application ID. | | browserLicenseKey | Your New Relic Browser License Key. | | ApiLicenseKey (Optional) | Your New Relic API License Key. | | appName (Optional): | Your application name. |

logger

The logger object exposes methods for logging events and errors.

logEvent(eventName, attributes) // Logs a custom event.

| Params | Description | | ---------- | --------------------------------------------- | | eventName | The name of the event. | | attributes | An object containing attributes of the event. |

logError(error, attributes): //Logs an error.

| Params | Description | | ---------- | ------------------------------------------------------------------- | | error | The error object. | | attributes | An object containing additional attributes about the error context. |

Querying Data in New Relic

To query data in New Relic, follow these steps:

  1. Log in to New Relic: Visit the New Relic website and log in to your account.

  2. Select the Application or Infrastructure: Depending on what type of data you want to query (e.g., application performance, infrastructure metrics), select the appropriate application or infrastructure from the New Relic user interface.

  3. Navigate to the Data Explorer or Insights Dashboard: Find the section in New Relic's UI where you can run queries. This might be labeled as "Data Explorer," "Insights," or something similar.

  4. Write Your Query: Use New Relic Query Language (NRQL) to write your query. NRQL syntax resembles SQL but is tailored to work with New Relic's data model. You can query various types of data, such as metrics, events, logs, and traces.

    Here's an example NRQL query to retrieve the average response time for a specific application:

-- Last 24 Hours
SELECT * FROM  RelicLogger(or you appName) SINCE 1 day ago

-- Last 7 Days
SELECT * FROM  RelicLogger(or you appName) SINCE 7 days ago

Run the Query: After writing your query, execute it to retrieve the data. New Relic will return the results based on your query parameters.

Analyze the Results: Once you have the results, analyze them to gain insights into your application or infrastructure performance. You can visualize the data, create charts, set up alerts, and more within New Relic's platform.

Remember that the specific steps and options may vary slightly depending on the version of New Relic you're using and the features available in your subscription plan. If you're unsure about anything or need assistance with a specific query, New Relic's documentation and support resources are valuable references.

Supported Browsers

Relic's supported browser list can be accessed here.

Library Compatibility

The browser agent is designed to work seamlessly with any JavaScript library or framework you may be using. It provides a set of API methods that can easily integrate into your chosen library or framework. For example, you can export or expose the initialized agent and create a new error boundary within your React application to handle errors using the reactRelicAgent.noticeError() method.

Server-Side Rendering

Many modern frameworks support server-side rendering, which can significantly improve search engine optimization (SEO) and user experience performance. It's important to understand that the browser agent needs to be imported and set up within a browser environment. It won't function properly if it's executed on a server or within the server context of a server-side rendered application. Most frameworks offer ways to ensure that certain code runs only on the client side. Be sure to consult your framework's documentation for guidance on how to handle this.

License

This project is licensed under the MIT License - see the LICENSE file for details.