Aktivieren Sie die Korrelation zwischen Trace und Protokoll - Amazon CloudWatch

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktivieren Sie die Korrelation zwischen Trace und Protokoll

Sie können die Ablaufverfolgung zur Protokollierung der Korrelation in Application Signals aktivieren. Dadurch werden Trace IDs und Span automatisch IDs in die entsprechenden Anwendungsprotokolle eingefügt. Wenn Sie dann in der Application Signals Console eine Trace-Detailseite öffnen, werden die entsprechenden Protokolleinträge (falls vorhanden), die mit dem aktuellen Trace korrelieren, automatisch unten auf der Seite angezeigt.

Nehmen wir zum Beispiel an, Sie bemerken eine Spitze in einem Latenzdiagramm. Sie können den Punkt im Diagramm auswählen, an dem die Diagnoseinformationen für diesen Zeitpunkt geladen werden sollen. Anschließend wählen Sie den entsprechenden Trace aus, um weitere Informationen zu erhalten. Wenn Sie sich die Ablaufverfolgungsinformationen ansehen, können Sie nach unten scrollen, um die mit der Ablaufverfolgung verknüpften Protokolle zu sehen. Diese Protokolle können Muster oder Fehlercodes aufdecken, die mit den Problemen zusammenhängen, die die Latenzspitze verursacht haben.

Um eine Korrelation der Ablaufverfolgungsprotokolle zu erreichen, stützt sich Application Signals auf Folgendes:

All diese Instrumente werden von der Community bereitgestellt. OpenTelemetry Application Signals verwendet sie, um Trace-Kontexte wie Trace-ID und Span-ID in Anwendungsprotokolle einzufügen. Um dies zu aktivieren, müssen Sie Ihre Protokollierungskonfiguration manuell ändern, um die automatische Instrumentierung zu aktivieren.

Abhängig von der Architektur, auf der Ihre Anwendung ausgeführt wird, müssen Sie möglicherweise zusätzlich zu den Schritten in diesem Abschnitt auch eine Umgebungsvariable festlegen, um die Korrelation der Ablaufverfolgungsprotokolle zu aktivieren.

Nachdem Sie die Korrelation der Ablaufverfolgungsprotokolle aktiviert haben,

Beispiele zur Einrichtung der Korrelation von Ablaufverfolgungsprotokollen

Dieser Abschnitt enthält Beispiele für die Einrichtung der Korrelation von Ablaufverfolgungsprotokollen in verschiedenen Umgebungen.

Spring Boot für Java

Angenommen, Sie haben eine Spring Boot-Anwendung in einem Ordner namenscustom-app. Die Anwendungskonfiguration ist normalerweise eine YAML-Datei mit dem Namencustom-app/src/main/resources/application.yml, die wie folgt aussehen könnte:

spring: application: name: custom-app config: import: optional:configserver:${CONFIG_SERVER_URL:http://localhost:8888/} ...

Um die Korrelation von Trace-Logs zu aktivieren, fügen Sie die folgende Logging-Konfiguration hinzu.

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 für Java

Fügen Sie in der Logging-Konfiguration (z. B. logback.xml) den Trace-Kontext trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p in pattern of Encoder ein. In der folgenden Konfiguration wird beispielsweise der Trace-Kontext der Protokollnachricht vorangestellt.

<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>

Weitere Informationen zu Encodern in Logback finden Sie unter Encoders in der Logback-Dokumentation.

Log4j2 für Java

Fügen Sie in der Logging-Konfiguration (z. B. log4j2.xml) den Trace-Kontext in ein. trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p PatternLayout In der folgenden Konfiguration wird beispielsweise der Trace-Kontext der Protokollnachricht vorangestellt.

<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>

Weitere Informationen zu Musterlayouts in Log4j2 finden Sie unter Pattern Layout in der Log4j2-Dokumentation.

Log4j für Java

Fügen Sie in der Logging-Konfiguration (z. B. log4j.xml) den Trace-Kontext trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p in ein. PatternLayout In der folgenden Konfiguration wird beispielsweise der Trace-Kontext der Protokollnachricht vorangestellt.

<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>;

Weitere Informationen zu Muster-Layouts in Log4j finden Sie unter Class Pattern Layout in der Log4j-Dokumentation.

Python

Stellen Sie die Umgebungsvariable auf einOTEL_PYTHON_LOG_CORRELATION, true während Ihre Anwendung ausgeführt wird. Weitere Informationen finden Sie unter Trace-Context-Injection aktivieren in der OpenTelemetry Python-Dokumentation.

Node.js

Weitere Informationen zur Aktivierung der Trace-Kontext-Injektion in Node.js für die Protokollierungsbibliotheken, die dies unterstützen, finden Sie in den NPM-Verwendungsdokumentationen der automatischen Instrumentationen Pino, Winston oder Bunyan für Node.js.