newrelic vs logrocket vs rollbar vs trackjs vs raygun vs @sentry/node
Error Tracking and Monitoring Tools
newreliclogrocketrollbartrackjsraygun@sentry/nodeSimilar Packages:

Error Tracking and Monitoring Tools

Error tracking and monitoring tools are essential for modern web applications, enabling developers to capture, report, and analyze errors and performance issues in real-time. These tools help improve application reliability and user experience by providing insights into application behavior, allowing teams to identify and resolve issues proactively. They typically offer features such as error logging, performance monitoring, user session tracking, and detailed reporting, which are crucial for maintaining high-quality software and ensuring a smooth user experience.

Npm Package Weekly Downloads Trend

3 Years

Github Stars Ranking

Stat Detail

Package
Downloads
Stars
Size
Issues
Publish
License
newrelic1,180,4469982.8 MB83a day agoApache-2.0
logrocket536,755-333 kB-11 days agoMIT
rollbar431,32358818.3 MB668 days agoMIT
trackjs32,540130137 kB32 years agoSEE LICENSE IN LICENSE.md
raygun14,83832120 kB218 days ago-
@sentry/node08,6071.44 MB492a day agoMIT

Feature Comparison: newrelic vs logrocket vs rollbar vs trackjs vs raygun vs @sentry/node

Error Reporting

  • newrelic:

    New Relic offers comprehensive error reporting as part of its APM suite, allowing developers to track errors alongside performance metrics. It provides insights into the impact of errors on application performance and user experience.

  • logrocket:

    Logrocket captures JavaScript errors and provides a visual representation of the user's session leading up to the error, allowing developers to see exactly what the user experienced. This context is invaluable for reproducing and resolving issues effectively.

  • rollbar:

    Rollbar provides real-time error reporting with automatic grouping of similar errors, making it easier to manage and resolve issues. It also includes features for tracking the frequency and impact of errors on users.

  • trackjs:

    TrackJS focuses on capturing JavaScript errors in the browser, providing detailed reports that include the error message, stack trace, and user context. It is designed to be lightweight and easy to integrate into front-end applications.

  • raygun:

    Raygun provides detailed error reports that include stack traces, user information, and environment details. It also offers a user-friendly dashboard for tracking and managing errors over time, making it easy to prioritize fixes.

  • @sentry/node:

    @sentry/node captures unhandled exceptions and manual error reports, providing detailed context such as stack traces, user data, and breadcrumbs that show the events leading up to the error. This helps developers quickly diagnose and fix issues.

Performance Monitoring

  • newrelic:

    New Relic is renowned for its performance monitoring capabilities, offering detailed insights into application performance, server health, and user interactions. It helps teams optimize their applications for better performance and user experience.

  • logrocket:

    Logrocket provides performance monitoring alongside error tracking, allowing developers to analyze the performance of their applications during user sessions. This helps identify performance issues that may lead to errors.

  • rollbar:

    Rollbar focuses primarily on error tracking but also provides some performance monitoring features, allowing developers to see how errors impact application performance and user experience.

  • trackjs:

    TrackJS does not provide extensive performance monitoring features but focuses on capturing client-side errors in JavaScript applications, helping developers understand the impact of errors on user experience.

  • raygun:

    Raygun includes performance monitoring features that track page load times and response times, providing insights into how performance issues may relate to errors. This helps teams improve overall application performance.

  • @sentry/node:

    @sentry/node includes performance monitoring features that allow developers to track the performance of their applications, measuring metrics such as response times and transaction durations, which can help identify bottlenecks.

Integration and Ecosystem

  • newrelic:

    New Relic provides extensive integrations with cloud services, container orchestration platforms, and various programming languages, making it suitable for complex, multi-tier applications. Its ecosystem supports a wide range of monitoring needs.

  • logrocket:

    Logrocket easily integrates with popular front-end frameworks and libraries, including React, Angular, and Vue.js. It also offers plugins for various back-end technologies, making it a flexible choice for full-stack applications.

  • rollbar:

    Rollbar offers integration with many popular frameworks and libraries, including Node.js, Ruby on Rails, and PHP. It also supports various deployment environments, making it adaptable for different development workflows.

  • trackjs:

    TrackJS is designed for easy integration with JavaScript applications, providing a simple setup process. It works well with front-end frameworks but has limited support for back-end integrations.

  • raygun:

    Raygun integrates with numerous frameworks and platforms, including .NET, Java, and PHP, as well as front-end libraries. Its API allows for custom integrations, enhancing its flexibility for different tech stacks.

  • @sentry/node:

    @sentry.node integrates with a wide range of frameworks and libraries, including Express, React, and Angular, making it versatile for various application architectures. It also supports multiple programming languages, enhancing its usability.

User Experience Insights

  • newrelic:

    New Relic offers real-user monitoring features that track how actual users experience the application, providing insights into performance and error rates from the user's perspective, which helps improve overall user satisfaction.

  • logrocket:

    Logrocket excels in providing user experience insights through session replay, allowing developers to see how users interact with the application before encountering errors. This feature is invaluable for improving usability and identifying UX issues.

  • rollbar:

    Rollbar focuses on error tracking but provides some insights into user impact, allowing developers to see how many users are affected by specific errors, which can inform prioritization for fixes.

  • trackjs:

    TrackJS primarily focuses on error tracking and does not provide extensive user experience insights beyond the context of the errors captured.

  • raygun:

    Raygun provides user tracking features that allow developers to see how different users experience errors and performance issues, helping prioritize fixes based on user impact and frequency.

  • @sentry/node:

    @sentry/node provides insights into user interactions leading up to errors, helping developers understand the context of issues and improve user experience by addressing pain points in the application.

Alerting and Notifications

  • newrelic:

    New Relic offers robust alerting capabilities that allow teams to set up custom alerts based on performance metrics and error rates, ensuring that critical issues are addressed promptly.

  • logrocket:

    Logrocket provides alerting features that notify developers of significant errors or performance degradation, helping teams stay informed about issues as they arise during user sessions.

  • rollbar:

    Rollbar provides real-time notifications for new errors, allowing teams to respond quickly to issues as they occur. It also supports integration with various communication tools for alerting.

  • trackjs:

    TrackJS offers basic alerting features for captured errors, notifying developers when new errors occur, but lacks the extensive alerting capabilities of some other tools.

  • raygun:

    Raygun includes alerting features that notify teams of new errors and performance issues, allowing for quick action to resolve problems that impact users.

  • @sentry/node:

    @sentry/node includes alerting features that notify developers of new errors and performance issues in real-time, allowing for quick responses to critical issues that may affect users.

How to Choose: newrelic vs logrocket vs rollbar vs trackjs vs raygun vs @sentry/node

  • newrelic:

    Choose New Relic if you are looking for a robust performance monitoring solution that goes beyond error tracking to include application performance monitoring (APM), infrastructure monitoring, and real-user monitoring. It is suitable for larger applications that require in-depth performance insights and analytics.

  • logrocket:

    Choose LogRocket if you want to combine error tracking with session replay capabilities. LogRocket allows you to see exactly what users experienced before an error occurred, making it easier to reproduce and fix issues. It is ideal for teams focused on user experience and debugging complex interactions.

  • rollbar:

    Choose Rollbar if you want a strong focus on real-time error tracking with automatic grouping and resolution suggestions. Rollbar is designed for rapid development environments and integrates well with CI/CD pipelines, making it suitable for teams that deploy frequently and need immediate feedback on errors.

  • trackjs:

    Choose TrackJS if you are looking for a lightweight solution focused on JavaScript error tracking. TrackJS provides simple integration and is particularly useful for front-end applications, making it a good choice for teams that want to quickly implement error tracking without extensive configuration.

  • raygun:

    Choose Raygun if you need a user-friendly interface and powerful reporting features for error tracking and performance monitoring. Raygun provides detailed error reports, user tracking, and performance insights, making it a good choice for teams that prioritize ease of use and actionable insights.

  • @sentry/node:

    Choose @sentry/node if you need a comprehensive error tracking solution that integrates seamlessly with various frameworks and provides detailed context about errors, including stack traces and user interactions. It is particularly useful for applications that require real-time monitoring and alerting.

README for newrelic

New Relic Open Source community plus project banner.

New Relic's Node.js agent

npm status badge Server Smoke Tests Node Agent CI codecov

This package instruments your application for performance monitoring with New Relic.

In order to take full advantage of this package, make sure you have a New Relic account before starting.

As with any instrumentation tool, please test before using in production.

Installation

To use New Relic's Node.js agent entails these three steps, which are described in detail below:

  1. To install the agent for performance monitoring, use your favorite npm-based package manager and install the newrelic package into your application:

    $ npm install newrelic
    
  2. Then, copy the stock configuration file to your program's base folder:

    $ cp ./node_modules/newrelic/newrelic.js ./<your destination>
    
  3. Now, add your New Relic license key and application/service name to that file:

    /* File: newrelic.js */
    'use strict'
    /**
     * New Relic agent configuration.
     *
     * See lib/config/default.js in the agent distribution for a more complete
     * description of configuration variables and their potential values.
     */
    exports.config = {
      app_name: ['Your application or service name'],
      license_key: 'your new relic license key',
      /* ... rest of configuration .. */
    }
    
  4. Finally, run your program with the newrelic module loaded first by using node's -r/--require flag.

    $ node -r newrelic your-program.js
    

    If you cannot control how your program is run, you can load the newrelic module before any other module in your program.

    const newrelic = require('newrelic')
    
    /* ... the rest of your program ... */
    

Next.js instrumentation

Note: The minimum supported Next.js version is 12.0.9. If you are using Next.js middleware the minimum supported version is 12.2.0.

The New Relic Node.js agent provides instrumentation for Next.js The instrumentation provides telemetry for server-side rendering via getServerSideProps, middleware (limited to Next.js versions 12.2.0 - 13.4.12), and New Relic transaction naming for both page and server requests. It does not provide any instrumentation for actions occurring during build or in client-side code. If you want telemetry data on actions occurring on the client (browser), you can inject the browser agent.

Here are documents for more in-depth explanations about transaction naming, and segments/spans.

Setup

Typically you are running a Next.js app with the next cli and you must load the agent via NODE_OPTIONS:

NODE_OPTIONS='-r newrelic' next start

If you are having trouble getting the newrelic package to instrument Next.js, take a look at our FAQs.

Next.js example projects

The following example applications show how to load the newrelic instrumentation, inject browser agent, and handle errors:

Custom Next.js servers

If you are using next as a custom server, you're probably not running your application with the next CLI. In that scenario we recommend running the Next.js instrumentation as follows.

node -r newrelic your-program.js

ECMAScript Modules

If your application is written with import and export statements in javascript, you are using ES Modules and must bootstrap the agent in a different way.

The New Relic Node.js agent includes support for ES Modules.

Setup

  1. If you rely on a configuration file to run the agent, you must rename the file from newrelic.js to newrelic.cjs so it can be properly loaded. All the contents of the configuration file will behave the same once you rename. See CommonJS modules in ESM for more details.

    $ mv newrelic.js newrelic.cjs
    
  2. To use the newrelic ESM loader, start your program with node and use the --import flag and a path to the loader file, like this:

    $ node --import newrelic/esm-loader.mjs -r newrelic your-program.js
    

Custom Instrumentation

The agent supports adding your own custom instrumentation to ES module applications. You can use the instrumentation API methods. The only other difference between CommonJS custom instrumentation and ESM is you must provide a property of isEsm: true.

import newrelic from 'newrelic'
newrelic.instrument({ moduleName: 'parse-json', isEsm: true }, function wrap(shim, parseJson, moduleName) {
  shim.wrap(parseJson.default, function wrapParseJson(shim, orig) {
    return function wrappedParseJson() {
      const result = orig.apply(this, arguments)
      result.instrumented = true
      return true
    }
  })
})

We support the following custom instrumentation API methods in ES module apps:

  • newrelic.instrument
  • newrelic.instrumentConglomerate
  • newrelic.instrumentDatastore
  • newrelic.instrumentMessages
  • newrelic.instrumentWebframework

Note that we do not support newrelic.instrumentLoadedModule, for the same issue of immutability mentioned above.

If you want to see an example of how to write custom instrumentation in an ES module app, check out our examples repo for a working demo.

Getting Started

For more information on getting started, check the Node.js docs.

External Modules

There are modules that can be installed and configured to accompany the Node.js agent:

There are modules included within the Node.js agent to add more instrumentation for 3rd party modules:

Usage

Using the API

The newrelic module returns an object with the Node.js agent's API methods attached.

const newrelic = require('newrelic')

/* ... */
newrelic.addCustomAttribute('some-attribute', 'some-value')

You can read more about using the API over on the New Relic documentation site.

Testing

These are the steps to work on core agent features, with more detail below:

  • Fork the agent
  • Install its dependencies
  • Run tests using npm
  1. Fork and clone this GitHub repository:

    $ git clone git@github.com:your-user-name/node-newrelic.git
    $ cd node-newrelic
    
  2. Install the project's dependencies:

    $ npm install
    

Then you're all set to start programming.

To run the test suite

  1. Install Docker
  2. Start the Docker services: $ npm run services
  3. Run all the tests using $ npm run test

Available test suites include:

$ npm run unit
$ npm run integration
$ npm run versioned
$ npm run lint
$ npm run smoke

Further Reading

Here are some resources for learning more about the agent:

Support

Should you need assistance with New Relic products, you are in good hands with several support channels.

If the issue has been confirmed as a bug or is a feature request, please file a GitHub issue.

Support Channels

Privacy

At New Relic we take your privacy and the security of your information seriously, and are committed to protecting your information. We must emphasize the importance of not sharing personal data in public forums, and ask all users to scrub logs and diagnostic information for sensitive information, whether personal, proprietary, or otherwise.

We define “Personal Data” as any information relating to an identified or identifiable individual, including, for example, your name, phone number, post code or zip code, Device ID, IP address and email address.

Please review New Relic’s General Data Privacy Notice for more information.

Contribute

We encourage your contributions to improve the Node.js agent! Keep in mind when you submit your pull request, you'll need to sign the CLA via the click-through using CLA-Assistant. You only have to sign the CLA one time per project.

If you have any questions, or to execute our corporate CLA, required if your contribution is on behalf of a company, please drop us an email at opensource@newrelic.com.

A note about vulnerabilities

As noted in our security policy, New Relic is committed to the privacy and security of our customers and their data. We believe that providing coordinated disclosure by security researchers and engaging with the security community are important means to achieve our security goals.

If you believe you have found a security vulnerability in this project or any of New Relic's products or websites, we welcome and greatly appreciate you reporting it to New Relic through our bug bounty program.

If you would like to contribute to this project, review these guidelines.

To all contributors, we thank you! Without your contribution, this project would not be what it is today.

License

Except as noted below, the Node.js agent is licensed under the Apache 2.0 License.

The New Relic security agent is licensed under the New Relic Software License v1.0. The New Relic security agent module may be integrated like the New Relic Node.js agent.

The Node.js agent also uses source code from third-party libraries. You can find full details on which libraries are used and the terms under which they are licensed in the third-party notices document.