Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Activer la corrélation entre le traçage et le journal
Vous pouvez activer la corrélation entre le suivi et le journal dans Application Signals. Cela injecte automatiquement la trace IDs et le span IDs dans les journaux d'application pertinents. Ensuite, lorsque vous ouvrez une page détaillée de trace dans la console Application Signals, les entrées de journal pertinentes (le cas échéant) en corrélation avec la trace actuelle apparaissent automatiquement en bas de la page.
Supposons, par exemple, que vous remarquiez un pic dans un graphique de latence. Vous pouvez choisir le point sur le graphique pour charger les informations de diagnostic pour ce moment. Vous choisissez ensuite la trace appropriée pour obtenir plus d'informations. Lorsque vous consultez les informations de suivi, vous pouvez faire défiler l'écran vers le bas pour voir les journaux associés au suivi. Ces journaux peuvent révéler des modèles ou des codes d'erreur associés aux problèmes à l'origine du pic de latence.
Pour obtenir une corrélation entre les journaux de suivi, Application Signals s'appuie sur les éléments suivants :
Instrumentation automatique Logger MDC
pour Java. OpenTelemetry Instrumentation de journalisation
pour Python. Les auto-instrumentations de Pino
, Winston ou Bunyan pour Node.js.
Tous ces instruments sont fournis par la communauté. OpenTelemetry Application Signals les utilise pour injecter des contextes de trace tels que l'ID de trace et l'ID de span dans les journaux des applications. Pour ce faire, vous devez modifier manuellement votre configuration de journalisation afin d'activer l'instrumentation automatique.
En fonction de l'architecture sur laquelle votre application s'exécute, vous devrez peut-être également définir une variable d'environnement pour activer la corrélation des journaux de suivi, en plus de suivre les étapes décrites dans cette section.
Sur Amazon EKS, aucune autre étape n'est nécessaire.
Sur Amazon ECS, aucune autre étape n'est nécessaire.
Sur Amazon EC2, reportez-vous à l'étape 4 de la procédure décrite dansÉtape 3 : instrumenter votre application et la démarrer.
Une fois que vous avez activé la corrélation entre les journaux de suivi,
Exemples de configuration de la corrélation des journaux de suivi
Cette section contient des exemples de configuration de la corrélation des journaux de suivi dans plusieurs environnements.
Spring Boot pour Java
Supposons que vous ayez une application Spring Boot dans un dossier appelécustom-app
. La configuration de l'application est généralement un fichier YAML nommé custom-app/src/main/resources/application.yml
qui peut ressembler à ceci :
spring: application: name: custom-app config: import: optional:configserver:${CONFIG_SERVER_URL:http://localhost:8888/} ...
Pour activer la corrélation entre les journaux de suivi, ajoutez la configuration de journalisation suivante.
spring: application: name: custom-app config: import: optional:configserver:${CONFIG_SERVER_URL:http://localhost:8888/} ... logging: pattern: level: trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p
Logback pour Java
Dans la configuration de journalisation (telle que logback.xml), insérez le contexte pattern
de trace trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p
dans Encoder. Par exemple, la configuration suivante ajoute le contexte de trace avant le message du journal.
<appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>app.log</file> <append>true</append> <encoder> <pattern>trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p - %m%n</pattern> </encoder> </appender>
Pour plus d'informations sur les encodeurs dans Logback, consultez la section Encodeurs
Log4j2 pour Java
Dans la configuration de journalisation (telle que log4j2.xml), insérez le contexte de trace trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p
dansPatternLayout
. Par exemple, la configuration suivante ajoute le contexte de trace avant le message du journal.
<Appenders> <File name="FILE" fileName="app.log"> <PatternLayout pattern="trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p - %m%n"/> </File> </Appenders>
Pour plus d'informations sur les mises en page de modèles dans Log4j2, voir Disposition de modèles
Log4j pour Java
Dans la configuration de journalisation (telle que log4j.xml), insérez le contexte de trace trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p
dansPatternLayout
. Par exemple, la configuration suivante ajoute le contexte de trace avant le message du journal.
<appender name="FILE" class="org.apache.log4j.FileAppender">; <param name="File" value="app.log"/>; <param name="Append" value="true"/>; <layout class="org.apache.log4j.PatternLayout">; <param name="ConversionPattern" value="trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p - %m%n"/>; </layout>; </appender>;
Pour plus d'informations sur les mises en page de modèles dans Log4j, consultez Class Pattern Layout
Python
Définissez la variable d'environnement OTEL_PYTHON_LOG_CORRELATION
sur true
pendant l'exécution de votre application. Pour plus d'informations, consultez Activer l'injection de contexte de trace
Node.js
Pour plus d'informations sur l'activation de l'injection de contexte de trace dans Node.js pour les bibliothèques de journalisation qui la prennent en charge, consultez les documentations d'utilisation de NPM relatives aux auto-instrumentations Pino