Die Korrelation von Ablaufverfolgung zu Protokollen aktivieren - Amazon CloudWatch

Die Korrelation von Ablaufverfolgung zu Protokollen aktivieren

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

Angenommen, Sie bemerken z. B. eine Spitze im 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 die entsprechende Ablaufverfolgung 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, nutzt Application Signals Folgendes:

Alle diese Instrumentierungen werden von der OpenTelemetry-Community bereitgestellt. Application Signals verwendet sie, um Ablaufverfolgungskontexte wie Ablaufverfolgungs-ID und Span-ID in Anwendungsprotokolle einzufügen. Um das zu aktivieren, müssen Sie Ihre Protokollierungskonfiguration manuell ändern, um die automatische Instrumentierung zu aktivieren.

Je nach 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 namens custom-app. Die Anwendungskonfiguration ist normalerweise eine YAML-Datei mit dem Namen custom-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 Ablaufverfolgungsprotokollen zu aktivieren, fügen Sie die folgende Protokollierungskonfiguration 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 Protokollierungskonfiguration (z. B. logback.xml) den Ablaufverfolgungskontext trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p in pattern von Encoder ein. In der folgenden Konfiguration wird beispielsweise der Ablaufverfolgungskontext 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 unter Encoders in der Logback-Dokumentation.

Log4j2 für Java

Fügen Sie in der Protokollierungskonfiguration (z. B. log4j2.xml) den Ablaufverfolgungskontext trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p in PatternLayout ein. In der folgenden Konfiguration wird beispielsweise der Ablaufverfolgungskontext 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 Muster-Layout in der Log4j2-Dokumentation.

Log4j für Java

Fügen Sie in der Protokollierungskonfiguration (z. B. log4j.xml) den Ablaufverfolgungskontext trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p in PatternLayout ein. In der folgenden Konfiguration wird beispielsweise der Ablaufverfolgungskontext 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 Musterlayouts in Log4j finden Sie unter Klassen-Muster-Layout in der Log4j-Dokumentation.

Python

Stellen Sie die Umgebungsvariable OTEL_PYTHON_LOG_CORRELATION auf true ein, während Ihre Anwendung ausgeführt wird. Weitere Informationen finden Sie unter Aktivieren der Ablaufverfolgungskontext-Injektion in der Python-OpenTelemetry-Dokumentation.

Node.js

Weitere Informationen zur Aktivierung der Ablaufverfolgungskontext-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.