Surveillance d'Apigee Microgateway

Découvrez comment surveiller Apigee Microgateway.

Le collecteur Instana Node.js prend en charge Apigee Microgateway (également appelé edgemicro ) à partir de la version @instana/collector@1.89.0.

Lorsque vous démarrez votre instance Microgateway en exécutant edgemicro start ou edgemicro forever -a start, une étape supplémentaire (décrite sur cette page) est requise pour l'utiliser avec le collecteur Instana Node.js. Ce scénario implique généralement que le package edgemicro soit installé globalement via npm install -g edgemicro ou yarn global add edgemicro (au lieu de l'installer en tant que dépendance de votre application).

Par contre, si vous utilisez microgateway-core comme dépendance dans votre propre application personnalisée, vous pouvez ignorer les instructions indiquées sur cette page. Utilisez plutôt la méthode d'installation locale pour @instana/collector.

Utilisation d'edgemicro avec @instana/collector

Dans une application Node.js standard, le collecteur Instana Node.js est activé en ajoutant la ligne suivante au fichier d'entrée principal de votre base de code :

require('@instana/collector')();
 

Lorsque vous effectuez une installation edgemicro globale et que vous utilisez l'interface de ligne edgemicro de commande pour démarrer Apigee Microgateway, il n'est pas nécessaire d'ajouter cette ligne de code.

Pour ce scénario, le package du collecteur Instana fournit un exécutable qui permet d'utiliser une installation edgemicro existante de manière statique et de rendre cette installation compatible avec Instana.

L'instrumentation doit être effectuée sur la machine qui exécute edgemicro l'instance que vous souhaitez surveiller. Si vous exécutez l'application edgemicro dans un conteneur, effectuez ces étapes à l'intérieur de ce conteneur. Il suffit de le faire une seule fois après avoir installé le edgemicro paquet sur cette machine ou dans ce conteneur, et non pas à chaque fois que vous souhaitez le lancer edgemicro. Les étapes suivantes permettent de configurer edgemicro l'installation pour la surveillance et le traçage d' Instana :

  • Installez le collecteur Instana Node.js de manière globale sur la même machine ou dans le même conteneur que votre edgemicro installation. Assurez-vous que le collecteur est installé sur un système de fichiers auquel votre edgemicro installation a accès.
  • Avec @instana/collector installé, vous êtes prêt à préparer votre installation edgemicro pour Instana. Exécutez la commande suivante :
    instana-instrument-edgemicro-cli
     
  • Cet exécutable est fourni par @instana/collector et doit figurer dans votre chemin lorsque vous avez installé le package globalement. Si votre shell n'est pas configuré pour rechercher les exécutables provenant de paquets npm installés globalement, vous pouvez également recourir à l'exécution de $(npm root -g)/../../bin/instana-instrument-edgemicro-cli.
  • Cette commande doit être imprimée lorsqu'elle est exécutée.
    Done: The edgemicro module has been statically instrumented for Instana tracing and metrics collection.
     

Remarque : Cette procédure (en particulier, l'appel de instana-instrument-edgemicro-cli) doit être répétée lorsque edgemicro est réinstallé ou mis à jour vers une version plus récente. Vous pouvez l'exécuter sans problème plusieurs fois pour la même installation edgemicro. L'exécutable est assez intelligent pour reconnaître que l'installation a déjà été instrumentée, et il mettra à jour l'instrumentation existante, si nécessaire. La procédure doit également être répétée si l'emplacement du package @instana/collector change, mais pas lorsque ce package est mis à jour vers une version plus récente.

Utilisation avancée

En principe, l'exécutable ne nécessite pas d'argument car il est en mesure de retrouver une installation edgemicro installée de manière globale. Toutefois, vous pouvez éventuellement indiquer l'emplacement de edgegateway (et également de @instana/collector) en tant qu'arguments :

instana-instrument-edgemicro-cli [edgemicro_path [instana-collector-path]]
 

Exemples :

# let Instana figure out the paths
instana-instrument-edgemicro-cli
 
# specify the edgemicro path
instana-instrument-edgemicro-cli /path/to/edgemicro
 
# also specify the @instana/collector path`
instana-instrument-edgemicro-cli /path/to/edgemicro /path/to/@instana/collector
 

Pour connaître l'emplacement d'installation du package edgemicro :

  • Exécutez la commande npm root -g pour savoir où se trouve le dossier global node_modules. Supposons que le résultat affiché soit /usr/local/lib/node_modules. Si le package edgemicro a été installé globalement, il doit se trouver dans le répertoire /usr/local/lib/node_modules/edgemicro, qui est l'emplacement d'installation que nous recherchons.
  • En outre, exécutez la commande ls -l $(which edgemicro) pour savoir quel est l'exécutable utilisé dans la commande edgemicro sur la ligne de commande. La sortie peut être similaire à ceci :
    ls -l $(which edgemicro)
     
       lrwxrwxrwx 1 user group 01 Jan 19 01:23 /usr/local/bin/edgemicro -> ../lib/node_modules/edgemicro/cli/edgemicro
     
  • Cela permet de vérifier que le package edgemicro installé dans /usr/local/lib/node_modules/edgemicro est bien celui qui a été utilisé avec la commande edgemicro.

Vous obtenez une sortie de journal Instana inattendue, où est le problème ?

En tant qu'effet secondaire de cette instrumentation, vous pouvez voir la sortie de journal de @instana/collector également lors de l'exécution d'autres commandes edgemicro , par exemple edgemicro stop, edgemicro reload, edgemicro version , etc. Cette option est attendue et peut être ignorée en toute sécurité.