Vous pouvez utiliser notre Node.js agent pour instrumenter Node.js l'application déployée dans le Docker conteneur . Ce document explique comment créer, configurer et déployer votre Dockerisée Node.js application que vous avez instrumentée avec New Relic.
Si vous avez besoin d'une aide générale concernant l'installation de l'agent Node.js, consultez nos instructions d'installation principales.
Instrumenter votre conteneur
Prudence
N'incluez pas votre clé de licence dans votre Dockerfile ou votre image Docker. Pour plus d'informations, consultez notre documentation sur la sécurité des clés de licence.
En apportant quelques configuration modifications et en ajoutant des New Relic variables d'environnement à votre Dockerfile existant, vous pouvez instrumenter votre application Dockerisée avec notre Node.js agent
Ajoutez
newrelic
à votrepackage.json
:"newrelic": "latest",Vous pouvez mettre à jour la valeur
latest
pour installer une version spécifique ou utiliser l'une des autres options fournies par le formatpackage.json
. Consultez les Node.js agent notes de sortie pour obtenir des informations sur les agent versions précédentes .Injectez l' agent dans votre commande de démarrage
node
pour instrumenter votre application. La configuration de votre conteneur peut vous permettre de modifier leENTRYPOINT
pour inclure d'abord le modulenewrelic
avec l'indicateur Node.js-r
/--require
lorsque la commande node est invoquée. Si votre Dockerfile contient l'une de ces commandes de démarrage, vous pouvez les modifier de cette manière :- Remplacez
node YOUR_PROGRAM.js
parnode -r newrelic YOUR_PROGRAM.js
- Remplacez
ENTRYPOINT ['node', 'YOUR_PROGRAM.js']
parENTRYPOINT ['node', '-r', 'newrelic', 'YOUR_PROGRAM.js']
- Remplacez
CMD ['node', 'YOUR_PROGRAM.js']
parCMD ['node', '-r', 'newrelic', 'YOUR_PROGRAM.js']
- Si vous disposez d'un script npm pour exécuter votre programme tel que
npm start
, vous pouvez modifier ce script par programmation en exécutantnpm pkg set scripts.start="node -r newrelic your-program.js"
. - Si vous ne pouvez pas contrôler la manière dont votre programme s'exécute, vous pouvez charger le module
newrelic
avant tout autre module de votre programme en ajoutantrequire('newrelic')
en haut de votre fichier d'entrée.
- Remplacez
Créez votre image Docker comme vous le faites normalement.
Pour exécuter votre application Docker avec l'agent activé, ajoutez votre et le nom de votre application à votre commande
docker run
en tant que variables d'environnement :bash$docker run -e NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEY \>-e NEW_RELIC_APP_NAME="YOUR_APP_NAME" \>YOUR_IMAGE_NAME:latest
Ce document vous a-t-il aidé lors de votre installation ?
Autres options de configuration
Important
Si votre agent Node.js est antérieur à la version 7.2.0, vous devrez ajouter la variable d'environnement NEW_RELIC_NO_CONFIG_FILE=true
à votre Dockerfile afin que l'agent puisse s'exécuter sans fichier de configuration. Vous trouverez plus d'informations sur nos paramètres de configuration et notre ordre de priorité ici.
Si votre Node.js agent est plus ancien que la version 8.3.0 et que vous souhaitez utiliser le tracing distribué, vous devrez l'activer en définissant la variable d'environnement NEW_RELIC_DISTRIBUTED_TRACING_ENABLED
true
sur.
En plus de définir le nom de votre application ou votre clé de licence, vous pouvez définir d'autres options de configuration en démarrant votre conteneur avec l'option -e
. Vous pouvez également :
Activez un indicateur de fonctionnalité à l'aide de sa variable d'environnement (
NEW_RELIC_NAME_OF_FEATURE_FLAG_ENABLED
), comme dans le snippet ci-dessous, en remplaçantNAME_OF_FEATURE_FLAG
par le nom en majuscule de l'indicateur de fonctionnalité :bash$docker run -e NEW_RELIC_LICENSE_KEY=YOUR_LICENSE_KEY \>-e NEW_RELIC_APP_NAME="YOUR_APP_NAME" \>-e NEW_RELIC_NAME_OF_FEATURE_FLAG_ENABLED=true \>YOUR_IMAGE_NAME:latestDéfinissez les options de configuration dans votre Dockerfile à l'aide des directives
ENV
:ENV NEW_RELIC_NAME_OF_FEATURE_FLAG_ENABLED=true \NEW_RELIC_LOG=stdout# etc.