本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用追蹤以記錄相互關聯
您可以啟用追蹤來記錄 Application Signals 中的相互關聯。這會自動將追蹤 IDs 和跨度 IDs 插入相關的應用程式日誌。然後,當您在 Application Signals 主控台中開啟追蹤詳細資訊頁面時,與目前追蹤相關的相關日誌項目 (如果有的話) 會自動顯示在頁面底部。
例如,假設您注意到延遲圖表中的峰值。您可以選擇圖形上的點,以載入該時間點的診斷資訊。然後,您可以選擇相關的追蹤以取得更多資訊。當您檢視追蹤資訊時,您可以向下捲動以查看與追蹤相關聯的日誌。這些日誌可能會顯示與導致延遲遽增之問題相關的模式或錯誤代碼。
為了實現追蹤日誌相互關聯,Application Signals 依賴下列項目:
適用於 Java 的記錄器 MDC 自動檢測
。 適用於 Python 的 OpenTelemetry Logging Instrumentation
。
所有這些插補都由 OpenTelemetry 社群提供。Application Signals 會使用它們將追蹤內容,例如追蹤 ID 和跨度 ID 插入應用程式日誌。若要啟用此功能,您必須手動變更記錄組態,才能啟用自動檢測。
視應用程式執行的架構而定,您可能還必須設定環境變數來啟用追蹤日誌相互關聯,以及遵循本節中的步驟。
在 Amazon EKS 上,不需要進一步的步驟。
在 Amazon ECS 上,不需要進一步的步驟。
在 Amazon EC2 上,請參閱 中程序中的步驟 4步驟 3:檢測您的應用程式並啟動它。
在您啟用追蹤日誌相互關聯之後,
追蹤日誌相互關聯設定範例
本節包含在多個環境中設定追蹤日誌相互關聯的範例。
適用於 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} %5p
pattern
的 。例如,下列組態會在日誌訊息之前加上追蹤內容。
<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 中啟用追蹤內容注入的詳細資訊,請參閱 Pino