Azure App Service Recherche d' Node.js

Pour utiliser Instana afin de surveiller une application Node.js s'exécutant en tant qu' Azure App Service, installez et activez le collecteur Node.js Azure App Service.

Plateformes prises en charge

Instana prend en charge la surveillance de Azure et App Service uniquement sur la plateforme Linux.

Prérequis

Si vous avez besoin d'une surveillance complète, incluant les métriques et la corrélation de l'infrastructure de votre environnement Microsoft Azure App Services, installez l 'agent du service cloud Azure.

Remarque : même si l'agent n'est pas installé, le collecteur Node.js Azure App Service recueille les données de trace et les envoie au point de terminaison « acceptor » sans serveur Instana, qui crée une instance de service.

Activation du collecteur à l'aide de l'interface CLI d' Azure

Pour activer le Node.js Azure App Service Collecteur avec Azure CLI, vous devez configurer le Node.js Azure App Service In-process Collector dans votre Node.js application.

Installation du collecteur

Ajoutez le package « @instana/azure-container-servicesInstana Collector » aux dépendances de votre projet :

npm install --save @instana/azure-container-services@latest
Remarque : si vous utilisez un autre gestionnaire de paquets, adaptez les commandes d' npm en conséquence.

Activer le traçage

Remarque : avant d'activer le traçage, assurez-vous que votre application Azure App Service est déployée dans l'environnement Azure.

Utilisez les commandes suivantes pour activer le collecteur via l'interface CLI d' Azure. Si votre application utilise l' CommonJS,, suivez les étapes décrites dans la section suivante de CommonJS pour activer le traçage. Si votre application utilise des modules ECMAScript, suivez les étapes décrites dans la section suivante consacrée aux modules ECMAScript pour activer le traçage. Pour plus d'informations sur les variables d'environnement de l' Instana, consultez la section Variables d'environnement.

CommonJS

Si votre application utilise CommonJS, utilisez la commande suivante :

az webapp config appsettings set \
    --name <app-name> \
    --resource-group <resource-group-name> \
    --settings NODE_OPTIONS='--require /path/to/instana/node_modules/@instana/azure-container-services' \
    INSTANA_ENDPOINT_URL=<instana-endpoint-url>  INSTANA_AGENT_KEY=<instana-agent-key>
 

L'exemple suivant montre un chemin typique vers node_modules : ./node_modules/@instana/azure-container-services.

Modules ECMAScript

Si l'application utilise des modules ECMAScript, utilisez la commande suivante (version de Node.js >= 18.19 ) :

az webapp config appsettings set \
    --name <your-app-name> \
    --resource-group <your-resource-group-name> \
    --settings NODE_OPTIONS='--import /path/to/instana/node_modules/@instana/azure-container-services/esm-register.mjs' \
    INSTANA_ENDPOINT_URL=<instana-endpoint-url>  INSTANA_AGENT_KEY=<instana-agent-key>

L'exemple suivant montre un chemin typique vers node_modules : ./node_modules/@instana/azure-container-services/esm-register.mjs.

Remarque :
  • Si votre version d' Node.js est antérieure à la version v18.19.0, vous devez utiliser --experimental-loader /path/to/instana/node_modules/@instana/azure-container-services/esm-loader.mjs à la place de --import /path/to/instana/node_modules/@instana/azure-container-services/esm-register.mjs.
  • L'utilisation de --experimental-loader avec esm-loader.mjs n'est plus prise en charge dans les versions actuelles et sera supprimée lors de la prochaine mise à jour. Pour plus d'informations, consultez la section « Modifications importantes ».

Activation du collecteur sans utiliser l'interface de ligne de commande d' Azure

Pour activer le collecteur sur votre Node.js App Service, suivez les instructions de la section Installation manuelle ou si vous utilisez Docker, consultez les instructions de la section Docker.

Installation manuelle

Pour configurer le collecteur Node.js Azure App Service, vous devez installer le collecteur Node.js Azure App Service In-process Collector et activer le traçage.

Installation du collecteur

Ajoutez le package « collector » de Instana@instana/azure-container-services aux dépendances de votre projet :

npm install --save @instana/azure-container-services@latest
Remarque : si vous utilisez un autre gestionnaire de paquets, adaptez les commandes d' npm en conséquence.

Activer le traçage

Si votre application utilise l' CommonJS,, suivez les étapes décrites dans la section suivante de CommonJS pour activer le traçage. Si votre application utilise des modules ECMAScript, suivez les étapes décrites dans la section suivante consacrée aux modules ECMAScript pour activer le traçage.

CommonJS

Pour les applications qui utilisent CommonJS, effectuez l'une des étapes suivantes lorsque vous démarrez l'exécutable Node.js. L'activation du drapeau NODE_OPTIONS ou --require charge et initialise le Node.js avant le code de votre application.

  • Définissez la variable NODE_OPTIONS avant de lancer le processus d'activation de Node.js :

    NODE_OPTIONS="--require /path/to/instana/node_modules/@instana/azure-container-services"
     
  • Vous pouvez également ajouter le --require paramètre à la commande qui lance Node.js. Si vous lancez habituellement l'application à l'aide de la commande app/index.js node, ajoutez un argument de ligne de --require commande supplémentaire. Voir l'exemple suivant :

    node --require /path/to/instana/node_modules/@instana/azure-container-services app/index.js
     
Modules ECMAScript

Si l'application utilise des modules ECMAScript, effectuez l'une des opérations suivantes lorsque vous lancez le fichier exécutable « Node.js ». La définition NODE_OPTIONS ou l'utilisation de --import l'argument initialise le collecteur « Node.js » avant le code de l'application. Pour plus d'informations sur les modules ECMAScript, consultez la documentation officielle de l' Node.js.

  • Avant de lancer la procédure d'activation d' Node.js, définissez la NODE_OPTIONS variable ( Node.js 18.19 et versions ultérieures) :

    NODE_OPTIONS="--import=/path/to/instana/node_modules/@instana/azure-container-services/esm-register.mjs"
  • Vous pouvez également inclure le --import paramètre lors du lancement de l'application Node.js. Si vous lancez votre application à l'aide de la node app/index.mjs commande, ajoutez la --import commande à l'argument de ligne de commande. Voir l'exemple suivant :

    node --import /path/to/instana/node_modules/@instana/azure-container-services/esm-register.mjs app/index.mjs

Installation Docker

Si vous créez l'application avec Docker, vous n'avez pas besoin d'installer manuellement le paquet @instana/azure-container-services. Le paquet est inclus dans l'image Docker disponible dans le icr.io/instana/azure-container-services-nodejs registre d'images.

Instana ne prend actuellement en charge que x86_64 l'architecture.

Activer le traçage

Si votre application utilise l' CommonJS,, suivez les étapes décrites dans la section suivante de CommonJS pour activer le traçage. Si votre application utilise des modules ECMAScript, suivez les étapes décrites dans la section suivante consacrée aux modules ECMAScript pour activer le traçage.

CommonJS

Si vous créez l'application avec Docker, ajoutez les lignes suivantes à votre Dockerfile après le dernierFROM clause:

COPY --from=icr.io/instana/azure-container-services-nodejs:includes/regular/../../../../../../../conrefs.html#conrefs__keyword.tracer_nodejs_version /instana /instana

ENV NODE_OPTIONS="--require /instana/node_modules/@instana/azure-container-services"

Ensuite, générez le conteneur et envoyez-le au référentiel d'images de votre choix.

Modules ECMAScript

Ajoutez les lignes suivantes à votre fichier Dockerfile après la dernière FROM clause (à partir de la version Node.js 18.19 ) :

COPY --from=icr.io/instana/azure-container-services-nodejs:includes/regular/../../../../../../../conrefs.html#conrefs__keyword.tracer_nodejs_version /instana /instana

ENV NODE_OPTIONS="--import=/instana/node_modules/@instana/azure-container-services/esm-register.mjs"

Ensuite, générez le conteneur et envoyez-le au référentiel d'images de votre choix.

Configuration des variables d'environnement dans le portail Azure

Avant de définir les variables d'environnement, assurez-vous que vous avez configuré le collecteur Node.js Azure App Service dans votre Azure App Service et que vous avez déployé votre application dans l'environnement Azure. Pour configurer les variables d'environnement nécessaires à l' Instana sur le portail Azure, procédez comme suit :

  1. Ouvrez le fichier Azure App Service que Instana doit analyser.

    Ouvrez le service d'application azure

  2. Sur la page de configuration, cliquez sur Paramètres de l'application. Ensuite, ajoutez les variables d'environnement comme décrit dans la section Variables d'environnement.

    Ajoutez des variables d'environnement

  3. Sauvegardez les modifications et redémarrez l'application.

    Enregistrez la configuration.

Variables d'environnement

Pour configurer le collecteur Node.js Azure App Service, définissez les variables d'environnement suivantes :

Vous pouvez définir ces variables par l'intermédiaire de l'interface de programmation (CLI) ou du portail d'Azure.