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.
You must copy the INGEST - LICENSE key for Node.js agent.
NEW_RELIC_ENABLED: this variable is used if you want to turn on or off New Relic in your backend.
Every time you modify the NEW_RELIC_ENABLED variable, you must restart your application.
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*', ], },};
If the environment is not specified when running the NestJS instance, the variables will be read, by default, from an env.development file.