Activer la corrélation entre le traçage et le journal - Amazon CloudWatch

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 :

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.

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 dans la documentation Logback.

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 dans la documentation de Log4j2.

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 dans la documentation de Log4j.

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 dans la OpenTelemetry documentation Python.

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, Winston ou Bunyan pour Node.js.