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:
OpenTelemetry Logging-Instrumentierung
für Python. Die automatischen Instrumentierungen Pino
, Winston oder Bunyan für Node.js.
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.
Bei Amazon EKS sind keine weiteren Schritte erforderlich.
Auf Amazon ECS sind keine weiteren Schritte erforderlich.
Bei Amazon EC2 finden Sie Schritt 4 des Verfahrens unterSchritt 3: Ihre Anwendung instrumentieren und starten.
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
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
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
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