Giter Site home page Giter Site logo

yissacharb / node-newrelic Goto Github PK

View Code? Open in Web Editor NEW

This project forked from newrelic/node-newrelic

0.0 1.0 0.0 20.42 MB

New Relic Node.js agent code base. Developers are welcome to create pull requests here, please see our contributing guidelines. For New Relic technical support, please go to http://support.newrelic.com.

License: Apache License 2.0

JavaScript 99.51% Shell 0.18% HTML 0.31% EJS 0.01%

node-newrelic's Introduction

Community Plus header

New Relic's Node.js agent Server Smoke Tests Node Agent CI

npm status badge

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. Available features, such as slow transaction traces, will vary based on account level.

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 .. */
    }
  1. 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 ... */

Getting Started

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

External Modules

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

  • @newrelic/apollo-server-plugin: New Relic's official Apollo Server plugin for use with the Node.js agent.
  • @newrelic/winston-enricher: Provides distributed trace and span information output as JSON-formatted log messages in Winston. This is most commonly used with the New Relic Logs product.
  • @newrelic/pino-enricher: Provides distributed trace and span information output as JSON-formatted log messages in Pino. This is most commonly used with the New Relic Logs product.
  • @newrelic/mysql(Experimental): Standalone instrumentation for mysql2 and mysql2/promise as well as the same instrumentation for mysql within the Node.js agent.
  • @newrelic/next: Provides instrumentation for the Next.js npm package.

There are several 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 [email protected]:your-user-name/node-newrelic.git $ cd node-newrelic

  2. Install the project's dependences:

    $ 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.

Roadmap

See our roadmap, to learn more about our product vision, understand our plans, and provide us valuable feedback.

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 [email protected].

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 HackerOne.

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. We also host a community project page dedicated to New Relic Node Agent.

License

The Node.js agent is licensed under the Apache 2.0 License.

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.

node-newrelic's People

Contributors

a-feld avatar aorinevo avatar astormnewrelic avatar bizob2828 avatar carlo-808 avatar codylandry avatar dlants avatar garbados avatar griffitr avatar groundwater avatar jgeurts avatar jordigh avatar kolanos avatar lizbaker avatar maddemacher avatar markstos avatar mdlavin avatar michaelgoin avatar mrickard avatar nataliewolfe avatar nijotz avatar othiym23 avatar rr0214 avatar ryancopley avatar sdaubin avatar sethshober avatar snyk-bot avatar stylet avatar tkrajcar avatar uturunku1 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.