Configuration système requise pour la surveillance d' Java
Instana prend en charge toutes les versions d' Java, de la version 7 à la version 26. Utilisez les versions les plus récentes de la machine virtuelle d' Java ( JVM ) pour bénéficier d'un environnement d'exécution sans bug. Pour connaître les autres exigences relatives à la surveillance de l' JVM, consultez les sections suivantes.
Distributions d' JVM s prises en charge
Instana prend en charge les distributions suivantes d' JVM :
- Amazon Corretto
- Azul Zulu
- IBM J9 (Pour plus d'informations, consultez IBM, J9 et OpenJ9 (considérations) ainsi que IBM, J9 et OpenJ9 (limitations))
- Eclipse OpenJ9 (Pour plus d'informations, consultez les pages IBM, J9 et OpenJ9 )
- OpenJDK
- AdoptOpenJDK
- Oracle HotSpot
- SAP JVM
- Sun HotSpot
- BEA JRockit
- Hitachi JVM
IBM J9 et les considérations relatives à l' OpenJ9
L'agent d' Instana se connecte aux machines virtuelles IBM, J9, Eclipse, OpenJ9 et Java via l'outil Attach API. Le chemin d'accès par défaut pour les fichiers liés à l' API ation peut être modifié sur les charges de travail d' J9 à l'aide de la propriété système -Dcom.ibm.tools.attach.directory=<directory_name>Java. Instana L'agent prend en charge ce répertoire d'attaches déplacé pour la surveillance de Java et Java AutoTrace.
IBM J9 et les limites d' OpenJ9
Instana prend en charge IBM J9 sous réserve des restrictions suivantes :
Les JVM antérieures à OpenJ9 v0.37.0, IBM SDK 8.0.8.5 ou IBM Semeru 8.0.372.0 ne sont pas prises en charge.
Si
-javaagentn'est pas défini en tant qu'argument de ligne de commande, certaines versions d' IBM J9 risquent de ne pas prendre en charge toutes les fonctions requises. Par conséquent, lancez l' JVM ation avec l'agent Java en exécutant la commande suivante :java -javaagent:instana-javaagent-1.0.0.jar -jar app.jar serverRemarque :-javaagentl'argument est obligatoire pour IBM J9 car les anciennes versions de J9 JVM ne prennent pas en charge l'instrumentation pour une intégration tardive. On parle d'« attachement tardif » lorsqu'un agent est associé à une instance d' JVM e après le démarrage de l'application. Étant donné que ces anciennes versions d' J9 ne permettent pas d'instrumenter les classes de cette manière, l' JVM e doit charger un agent « no-op » (sans opération) au démarrage via-javaagent. Ceinstana-javaagent-1.0.0.jarfichier est un agent statique léger et inactif dont le seul but est de permettre ce processus de montage.Vous pouvez télécharger le fichier JAR depuis Artifact public. Pour vous connecter à la page, utilisez les informations d'identification suivantes :
- Nom d'utilisateur :
_ - Mot de passe :
<your-download-key>
Si vous utilisez Java s 8 - Service Pack 3, mise à jour 22 (décembre 2016), utilisez
-XX:+EnableHCRl'option pour effectuer la même opération. A l'aide de cette option temporaire, les agents associés tardivement peuvent redéfinir ou retransformer des classes. De plus, si la ligne de journal suivante apparaît dans les journaux de l'agent, transmettez-XX:+EnableHCRl'option en tant que paramètre de démarrage.WARN | instana-http-client-thread-16-2 | LoggerEndpoint | com.instana.agent - 1.1.680 | JVM (1234) - JVM does not support retransformation, tracing is currently unsupportedToutefois, l'option
-XX:+EnableHCRpeut entraîner une baisse des performances et être supprimée lors d'une mise à jour ultérieure lorsqu'elle n'est plus nécessaire.- Nom d'utilisateur :
Des commutateurs de ligne de commande supplémentaires peuvent être nécessaires pour activer la fonction de trace et la collecte de métriques à partir d' IBM J9:
Utilisez
-Dcom.ibm.tools.attach.enable=yescomme paramètre par défaut.Pour IBM J9 SDK 6 ou IBM J9 SDK 7, procédez comme suit:
- Désactivez le partage des classes à l'aide du paramètre
-Xshareclasses:none. - Activez une implémentation du partage de classes qui prend en charge l'instrumentation BCI (bytecode instrumentation) à l'aide du paramètre
-Xshareclasses:enableBCI.
Remarque : Remarques : IBM J9 Les paramètres par défaut de configuration du SDK présentent les différences suivantes : la version 6 (JRE 1.6.0 ) et la version 7 (JRE 1.7.0 ) utilisent par défaut une implémentation du partage de classes qui ne prend pas en charge le BCI. Par conséquent, le partage de classes doit être désactivé ou le support BCI doit être activé. La version 8 ( 1.8.0 JRE) utilise par défaut une implémentation du partage de classes qui prend en charge le BCI.- Désactivez le partage des classes à l'aide du paramètre
Remarques concernant les versions 8 ou antérieures de l'environnement d'exécution d' Java
Si vous utilisez les environnements d'exécution d' Java, version 8 ou antérieure, veillez à effectuer les opérations suivantes :
Sur Amazon Corretto, Azul Zulu, OpenJDK, Oracle HotSpot ou SAP JVM, rendez le fichier
tools.jardisponible dans l'environnement d'exécution de chaque machine virtuelle Java surveillée. Le fichier se trouve dans$JAVA_HOME/lib/tools.jar.Si vous utilisez l' Java e 8, effectuez une mise à niveau vers l' Java e 8 1.8.0_181 ou une version ultérieure. Les versions 8 de l' Java, jusqu'à la version 1.8.0_40, présentent de nombreux problèmes connus liés à la mise en œuvre de la fonction lambda. Ainsi, pour l' Java e 8, l'agent « Instana » ne prend pas en charge l' 1.8.0_40 e ni les versions antérieures. Par conséquent, vous devez effectuer une mise à niveau vers des versions ultérieures car certaines pannes y sont corrigées.
Remarques concernant les versions 9 ou ultérieures d' Java
Java La version 9 introduit des builds modulaires basés sur le framework Jigsaw. Si vous utilisez les environnements d'exécution d' Java, version 9 ou ultérieure, procédez comme suit :
Si vous utilisez une image d'exécution personnalisée, telle que celles créées avec
jmodoujlink, veillez à inclure les modules suivants dans l' JVM instrumentée :java.instrumentjdk.attach
Pour vérifier si votre environnement d'exécution d' Java 9 ou version ultérieure contient les modules requis
java.instrumentjdk.attachet, exécutez la commande suivante :java --list-modulesSi vous exécutez la commande sur une JVM 8 ou antérieure,
Unrecognized option: --list-modulesUn message d'erreur s'affiche.Si Apache Tomcat est exécuté sur Windows en tant que service, les processus surveillés ne s'exécutent pas sous l'identité de l'utilisateur «
C:\java12\bin\java.exefile », mais sous celle de l'utilisateurC:\Program Files\Apache Software Foundation\Tomcat 8.5\bin\Tomcat8.exe« file ».Instana prend en charge cette configuration. Mais avant de démarrer le service, le
binrépertoire situé sur l' JVM e qui exécute le service doit se trouver sur lePATH. Pour définir le chemin d'accès, exécutez la commande suivante :set PATH=%PATH%;C:\java12\binLe chemin doit être défini car le fichier
jvm.dlldu serveur doit charger le fichierC:\java12\bin\instrument.dll. Si le fichier n'est pas spécifié dans le chemin, le serveur ne le trouve pas et l'erreur suivante s'affiche:com.sun.tools.attach.AgentLoadException: Failed to load agent library: instrument was not loaded.Can't find dependent libraries
Considérations relatives à la version 21 d' Java
Si vous utilisez le moteur d'exécution Java 21, vous pourriez voir s'afficher les messages d'avertissement suivants :
WARNING: A Java agent has been loaded dynamically (/tmp/.instana/javaagent-loader-1.3.56.jar)
WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
WARNING: Dynamic loading of agents will be disallowed by default in a future release
Pour éviter ce problème, ajoutez la commande suivante dans les arguments de machine virtuelle avant de démarrer votre application:
-XX:+EnableDynamicAgentLoading
$TMP exigences en matière de droits d'accès aux répertoires
L'agent hôte d' Instana crée des fichiers JAR temporaires dans le $TMP/.instana répertoire. Ces fichiers JAR sont nécessaires pour la surveillance d' JVM. Pour garantir le bon fonctionnement de la surveillance d' JVM, assurez-vous que l'utilisateur root qui exécute l'agent et l'utilisateur qui exécute l' JVM t disposent des droits de lecture et d'écriture nécessaires pour accéder au $TMP répertoire. De plus, ne supprimez pas les fichiers d' Instana s des répertoires $TMP$TMP/.instana et.
Limitation de la vitesse de variation
Si vous constatez la présence d'entrées telles que Suppressed spans due to high number of short ou dans le Discarded span due to queue overflowjournal de l'agent, cela signifie que le Tracer d' Java a été soumis à une charge importante lors du traitement des spans. Par conséquent, le traceur d' Java s réduit le nombre de segments afin d'éviter des problèmes de performances dans l'application.
Pour réduire la charge, le Tracer d' Java procède comme suit :
- Elle supprime les plages d'exit dont la durée est courte.
- Si la charge est toujours élevée, elle regroupe les étendues par lots.
- Si la création de lots n'aboutit pas, elle supprime quelques plages.