• EnglishEspañol日本語한국어Português
  • Log inStart now

Install the Node.js agent for Docker

You can use our Node.js agent to instrument Node.js applications deployed in Docker containers. This document explains how to build, configure, and deploy your Dockerized Node.js application that has been instrumented with New Relic.

callout.undefined

If you need general help with the Node.js agent installation, see our main installation instructions.

Instrument your container

With just a few additions your existing Dockerfile can be used with our Node.js agent. You'll configure the agent by running your new Docker image with environment variables set.

  1. Add newrelic to your package.json:

    "newrelic": "latest",

    Install a specific version, or use any of the other options provided by the package.json format. Check the Node.js agent release notes for information about past agent versions.

  2. Depending on how your container is setup, you can edit the ENTRYPOINT to include newrelic module first with Node.js -r/--require flag by running node -r newrelic YOUR_PROGRAM.js. If you can't control how your program runs, you can load the newrelic module before any other module in your program by adding require('newrelic').

    Tip

    If you have an npm script to run your program such as npm start, you can programmatically modify this script by running npm pkg set scripts.start="node -r newrelic your-program.js".

    Important

    If your Node.js agent is older than v7.2.0 you will need to add the environment variable NEW_RELIC_NO_CONFIG_FILE=true to your Dockerfile so the agent can run without a configuration file. More information on our configuration settings and order of precedence can be found here.

  3. Build your Docker image the way you normally do.

  4. To run your Docker app with the agent enabled, add your and app name to your docker run command as environment variables:

    bash
    $
    docker run -e NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEY \
    >
    -e NEW_RELIC_APP_NAME="YOUR_APP_NAME" \
    >
    YOUR_IMAGE_NAME:latest

Did this doc help with your installation?

Other configuration options

Caution

Don't include your license key in your Dockerfile or Docker image. For more information, see our documentation on license key security.

In addition to setting your application name or license key, you can set other configuration options by starting your container with the -e option. For example, to enable distributed tracing, use:

bash
$
docker run -e NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEY \
>
-e NEW_RELIC_APP_NAME="YOUR_APP_NAME" \
>
-e NEW_RELIC_DISTRIBUTED_TRACING_ENABLED=true \
>
YOUR_IMAGE_NAME:latest

You can also set configuration options in your Dockerfile using ENV directives:

ENV NEW_RELIC_DISTRIBUTED_TRACING_ENABLED=true \
NEW_RELIC_LOG=stdout
# etc.
Copyright © 2024 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.