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.
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.
Add
newrelic
to yourpackage.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.In the first line of your app's main module, add
require('newrelic');
.Add this line to your Dockerfile so the agent can run without a configuration file:
ENV NEW_RELIC_NO_CONFIG_FILE=trueBuild your Docker image the way you normally do.
To run your Docker app with the agent enabled, add your license key and app name to your
docker run
command as environment variables:docker run -e NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEY \ -e NEW_RELIC_APP_NAME="Your Application Name" \ your_image_name:latest
Other configuration options
Caution
Do not 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:
$ docker run -e NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEY \
-e NEW_RELIC_APP_NAME="Your Application 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.