啟用追蹤以記錄相互關聯 - Amazon CloudWatch

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

啟用追蹤以記錄相互關聯

您可以啟用追蹤來記錄 Application Signals 中的相互關聯。這會自動將追蹤 IDs 和跨度 IDs 插入相關的應用程式日誌。然後,當您在 Application Signals 主控台中開啟追蹤詳細資訊頁面時,與目前追蹤相關的相關日誌項目 (如果有的話) 會自動顯示在頁面底部。

例如,假設您注意到延遲圖表中的峰值。您可以選擇圖形上的點,以載入該時間點的診斷資訊。然後,您可以選擇相關的追蹤以取得更多資訊。當您檢視追蹤資訊時,您可以向下捲動以查看與追蹤相關聯的日誌。這些日誌可能會顯示與導致延遲遽增之問題相關的模式或錯誤代碼。

為了實現追蹤日誌相互關聯,Application Signals 依賴下列項目:

所有這些插補都由 OpenTelemetry 社群提供。Application Signals 會使用它們將追蹤內容,例如追蹤 ID 和跨度 ID 插入應用程式日誌。若要啟用此功能,您必須手動變更記錄組態,才能啟用自動檢測。

視應用程式執行的架構而定,您可能還必須設定環境變數來啟用追蹤日誌相互關聯,以及遵循本節中的步驟。

在您啟用追蹤日誌相互關聯之後,

追蹤日誌相互關聯設定範例

本節包含在多個環境中設定追蹤日誌相互關聯的範例。

適用於 Java 的 Spring Boot

假設您在名為 的資料夾中有一個 Spring Boot 應用程式custom-app。應用程式組態通常是名為 的 YAML 檔案custom-app/src/main/resources/application.yml,可能如下所示:

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

若要啟用追蹤日誌相互關聯,請新增下列記錄組態。

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

Java 的日誌傳回

在記錄組態 (例如 logback.xml) 中,將追蹤內容插入編碼器trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5ppattern的 。例如,下列組態會在日誌訊息之前加上追蹤內容。

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

如需 Logback 中編碼器的詳細資訊,請參閱 Logback 文件中的編碼器

適用於 Java 的 Log4j2

在記錄組態 (例如 log4j2.xml) trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p中,將追蹤內容插入 PatternLayout。例如,下列組態會在日誌訊息之前加上追蹤內容。

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

如需 Log4j2 中模式配置的詳細資訊,請參閱 Log4j2 文件中的模式配置

適用於 Java 的 Log4j

在記錄組態 (例如 log4j.xml) trace_id=%mdc{trace_id} span_id=%mdc{span_id} trace_flags=%mdc{trace_flags} %5p中,將追蹤內容插入 PatternLayout。例如,下列組態會在日誌訊息之前加上追蹤內容。

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

如需 Log4j 中模式配置的詳細資訊,請參閱 Log4j 文件中的類別模式配置

Python

在執行應用程式true時將環境變數OTEL_PYTHON_LOG_CORRELATION設定為 。如需詳細資訊,請參閱 Python OpenTelemetry 文件中的啟用追蹤內容注入

Node.js

如需為支援追蹤內容的日誌程式庫在 Node.js 中啟用追蹤內容注入的詳細資訊,請參閱 PinoWinstonBunyan auto-intrumentations for Node.js 的 NPM 使用文件。