Options configurables de l'agent Java APM
L'agent Java APM offre les options configurables suivantes pour la collecte de données :
Traces abrégées
Cette fonction est conçue pour éliminer les cas de nombre d'intervalles excessif par trace. Lorsque trop d'intervalles sont créés en un seul appel, l'agent peut provoquer une surcharge supérieure à celle souhaitée, il peut également augmenter le nombre d'intervalles horaires, entraînant une charge plus élevée que prévue. Dans certains cas, il peut s'agir d'appels récursifs (intentionnels ou non), de code généré entraînant un nombre élevé d'instructions SQL exécutées par transaction et d'autres.
- La fonction d'abridge permet aux utilisateurs de limiter le nombre maximal d'intervalles par appel. Elle permet également d'exclure des intervalles qui peuvent être considérés comme "dignes" (par exemple, un volume élevé de SQL très rapides).
- Les limites de nombre spécifiques à la sonde, l'inclusion/exclusion basée sur le nom d'intervalle et le seuillage JDBC sont configurables par unité d'exécution, par appel. Pour plus de détails sur les options de configuration, voir le fichier
ProbeConfig.acml
sous le répertoireoracle-apm-agent\config
. - Le paramètre par défaut consiste à limiter chaque appel à 100 intervalles.
- Les statistiques sommaires de base sur les intervalles abandonnés peuvent être collectées par thread, par appel.
Voici un exemple de paramètre qui limitera le nombre maximal d'intervalles JDBC par appel de fil à 50, exclura un énoncé SQL banal connu et exclura les énoncés SQL qui s'exécutent en moins de 2 ms. Notez qu'en activant l'option summarize
, l'agent ajoutera les mesures suivantes à l'intervalle parent : nombre d'intervalles abandonnés, durée moyenne d'intervalles abandonnés, durée minimale d'intervalles abandonnés, durée maximale d'intervalles abandonnés, nombre d'erreurs d'intervalles abandonnés, ainsi que les enregistrements de journaux affichant les 5 intervalles abandonnés les plus longs et les 5 premières erreurs abandonnées.
abridged_probes:
summarize: true
settings_by_probe:
- probe: "JDBC"
span_limit: 50
excluded_patterns:
- contains: "select sysdate from dual"
excluded: true
threshold:
duration: 2
start_thresholding_after: 10
Disjoncteur
- Le disjoncteur réduit automatiquement la consommation des ressources JVM par l'agent lors de la détection d'une forte pression sur les ressources. Il reprend automatiquement la fonction normale de l'agent lorsque la pression sur les ressources a suffisamment diminué.
- Par défaut, le disjoncteur arrête et reprend automatiquement de manière incrémentielle le travail de l'agent en fonction de l'utilisation de la mémoire du tas et du temps de récupération de mémoire.
Facteur de performance Arrêt Reprise Intervalle Composants ciblés Utilisation de la mémoire du tas 95 % 85 % 2 minutes Sondes 5 minutes Agent complet Durée de récupération de mémoire 10 % 5 % 2 minutes Sondes 5 minutes Agent complet - Les facteurs de performance, les seuils d'arrêt, les seuils de reprise, les intervalles et les composants ciblés sont configurables. Pour plus de détails, voir le fichier
CircuitBreakerConfig.acml
sous le répertoireoracle-apm-agent\config\<version>
. - Le disjoncteur est activé par défaut. Il peut être désactivé et réactivé à l'aide de la propriété
com.oracle.apm.agent.circuit.breaker.enable
du fichierAgentConfig.properties
situé sous le répertoireoracle-apm-agent\config
.La désactivation et la réactivation du disjoncteur ne nécessitent pas le redémarrage de l'agent Java APM.
Échantillonnage
- Par défaut, tous les intervalles sont collectés. Pour modifier la configuration de l'échantillonnage, vous devez configurer l'échantillonnage personnalisé.
- Vous pouvez réduire la quantité de données de trace en définissant la configuration d'échantillonnage. Pour plus de détails, voir Configurer l'échantillonnage APM.
- L'opération d'échantillonnage est soumise à la limite de collecte des données des traces abrégées et du disjoncteur.
Injection de bibliothèque de journaux
Les spanId
et traceId
actifs peuvent être injectés dans les messages de journal. Cela fournit une corrélation entre les messages des journaux et les traces APM pour faciliter l'analyse et le dépannage des journaux.
-
Activez la sonde
LOG_LIB
dans le fichierProbeConfig.acml
. -
Activez l'injection de journal souhaitée dans la section
LOG_LIB
détaillée dansProbeConfig.acml
.
L'activation de l'injection de bibliothèque de journaux effectue les opérations suivantes :
- L'injection automatique permet l'injection de
spanId
et detraceId
sans modification de la configuration de journalisation d'application existante.Les options Log4j 1.2, log4j 2, logback et java.util.logging sont prises en charge.
- L'injection de journal d'accès au serveur WebLogic peut injecter les valeurs
spanId
ettraceId
actives pour une demande HTTP donnée. Notez que le contenu statique tel quefavicon.ico
n'est généralement pas associé àspanId
outraceId
. -
L'injection de contexte de diagnostic mappé (MDC) tire parti des fonctions intégrées de log4j, log4j2 et de journalisation pour rendre les services
spanId
ettraceId
actifs disponibles pour les cadres de journalisation.Vous pouvez spécifier les clés suivantes dans la configuration de journalisation MDC appropriée pour le cadre de journalisation de l'application :- oracle.apm.spanId<! [CDATA[ ]]>
- oracle.apm.traceId<! [CDATA[ ]]>