Configuration

Environment Variables

NEW_RELIC_APP_NAME=<YourNewRelicAppName>
NEW_RELIC_LICENSE_KEY=<YourNewRelicLicenseKey>
NEW_RELIC_ENABLED=true
  • NEW_RELIC_APP_NAME: it refers to the name of your application to be able to identify it in the New Relic dashboard.

  • NEW_RELIC_LICENSE_KEY: you must obtain this value from your New Relic dashboard.

New Relic - Dashboard
  • NEW_RELIC_ENABLED: this variable is used if you want to turn on or off New Relic in your backend.

In the src/newrelic.ts file is the configuration you use for New Relic:

'use strict';

import * as dotenv from 'dotenv';
let environment;

if (process.env.NODE_ENV === undefined) {
  environment = dotenv.config({ path: `.env.development` }).parsed;
}

/**
 * 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 = {
  /**
   * Array of application names.
   */
  app_name: [
    environment
      ? environment.NEW_RELIC_APP_NAME
      : process.env.NEW_RELIC_APP_NAME,
  ],
  /**
   * Your New Relic license key.
   */
  license_key: environment
    ? environment.NEW_RELIC_LICENSE_KEY
    : process.env.NEW_RELIC_LICENSE_KEY,
  /**
   * This setting controls distributed tracing.
   * Distributed tracing lets you see the path that a request takes through your
   * distributed system. Enabling distributed tracing changes the behavior of some
   * New Relic features, so carefully consult the transition guide before you enable
   * this feature: https://docs.newrelic.com/docs/transition-guide-distributed-tracing
   * Default is true.
   */
  distributed_tracing: {
    /**
     * Enables/disables distributed tracing.
     *
     * @env NEW_RELIC_DISTRIBUTED_TRACING_ENABLED
     */
    enabled: true,
  },
  logging: {
    /**
     * Level at which to log. 'trace' is most useful to New Relic when diagnosing
     * issues with the agent, 'info' and higher will impose the least overhead on
     * production applications.
     */
    level: 'trace',
    enabled: false,
  },
  /**
   * When true, all request headers except for those listed in attributes.exclude
   * will be captured for all traces, unless otherwise specified in a destination's
   * attributes include/exclude lists.
   */
  allow_all_headers: true,
  attributes: {
    /**
     * Prefix of attributes to exclude from all destinations. Allows * as wildcard
     * at end.
     *
     * NOTE: If excluding headers, they must be in camelCase form to be filtered.
     *
     * @env NEW_RELIC_ATTRIBUTES_EXCLUDE
     */
    exclude: [
      'request.headers.cookie',
      'request.headers.authorization',
      'request.headers.proxyAuthorization',
      'request.headers.setCookie*',
      'request.headers.x*',
      'response.headers.cookie',
      'response.headers.authorization',
      'response.headers.proxyAuthorization',
      'response.headers.setCookie*',
      'response.headers.x*',
    ],
  },
};

Last updated

Was this helpful?