選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 X-Ray 追蹤您的 App Runner 應用程式

焦點模式
使用 X-Ray 追蹤您的 App Runner 應用程式 - AWS App Runner

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

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

AWS X-Ray 是一項 服務,可收集應用程式提供的請求相關資料,並提供工具供您用來檢視、篩選和深入了解該資料,以識別問題和最佳化的機會。對於任何追蹤到應用程式的請求,您不僅可以查看請求和回應的詳細資訊,還可以查看應用程式對下游 AWS 資源、微服務、資料庫和 HTTP Web APIs進行的呼叫的詳細資訊。

X-Ray 使用來自支援雲端應用程式產生詳細服務圖表之 AWS 資源的追蹤資料。此服務圖表顯示用戶端、前端服務和後端服務,而前端服務會呼叫後端服務來處理請求和保留資料。使用服務圖形來識別瓶頸、延遲劇增的狀況和待解決的其他問題,以提升應用程式的效能。

如需 X-Ray 的詳細資訊,請參閱《AWS X-Ray 開發人員指南》

App Runner 服務的 X-Ray 服務映射範例

檢測您的應用程式以進行追蹤

使用可攜式遙測規格 OpenTelemetry 檢測 App Runner 服務應用程式以進行追蹤。目前,App Runner 支援 AWS Distro for OpenTelemetry (ADOT),這是一種 OpenTelemetry 實作,使用 AWS 服務收集和呈現遙測資訊。X-Ray 實作追蹤元件。

根據您在應用程式中使用的特定 ADOT 開發套件,ADOT 最多支援兩種檢測方法:自動手動。如需使用 SDK 檢測的詳細資訊,請參閱 ADOT 文件,然後在導覽窗格中選擇您的 SDK。

執行期設定

以下是檢測 App Runner 服務應用程式以進行追蹤的一般執行期設定說明。

設定執行時間的追蹤
  1. 請遵循 AWS Distro for OpenTelemetry (ADOT) 中為執行時間提供的指示,以檢測您的應用程式。

  2. 如果您使用原始碼儲存庫,請在 apprunner.yaml 檔案的 build區段中安裝必要的OTEL相依性,如果您使用容器映像,請在 Dockerfile 中安裝所需的相依性。

  3. 如果您使用原始程式碼儲存庫,請在 apprunner.yaml 檔案中設定您的環境變數,如果您使用容器映像,請在 Dockerfile 中設定您的環境變數。

    範例 環境變數
    注意

    下列範例列出要新增至 apprunner.yaml 檔案的重要環境變數。如果您使用的是容器映像,請將這些環境變數新增至 Dockerfile。不過,每個執行時間都可以有自己的特性,您可能需要將更多環境變數新增至下列清單。如需執行時間特定指示的詳細資訊,以及如何為執行時間設定應用程式的範例,請參閱入門下方的 AWS Distro for OpenTelemetry 並前往執行時間。

    env: - name: OTEL_PROPAGATORS value: xray - name: OTEL_METRICS_EXPORTER value: none - name: OTEL_EXPORTER_OTLP_ENDPOINT value: http://localhost:4317 - name: OTEL_RESOURCE_ATTRIBUTES value: 'service.name=example_app'
    注意

    OTEL_METRICS_EXPORTER=none 是 App Runner 的重要環境變數,因為 App Runner Otel 收集器不接受指標記錄。它只接受指標追蹤。

執行期設定範例

下列範例示範使用 ADOT Python SDK 自動檢測您的應用程式。軟體開發套件會自動產生遙測資料,描述應用程式中 Python 架構使用的值,而不需要新增一行 Python 程式碼。您只需要在兩個來源檔案中新增或修改幾行。

首先,新增一些相依性,如下列範例所示。

範例 requirements.txt
opentelemetry-distro[otlp]>=0.24b0 opentelemetry-sdk-extension-aws~=2.0 opentelemetry-propagator-aws-xray~=1.0

然後,檢測您的應用程式。執行方式取決於您的服務來源,即來源映像或原始程式碼。

Source image

當您的服務來源是映像時,您可以直接檢測 Dockerfile,以控制建置容器映像並在映像中執行應用程式。下列範例顯示 Python 應用程式的檢測 Dockerfile。檢測新增項目以粗體強調。

範例 Dockerfile
FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN yum install python3.7 -y && curl -O https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py && yum update -y COPY . /app WORKDIR /app RUN pip3 install -r requirements.txt RUN opentelemetry-bootstrap --action=install ENV OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=urllib3 ENV OTEL_METRICS_EXPORTER=none ENV OTEL_RESOURCE_ATTRIBUTES='service.name=example_app' CMD OTEL_PROPAGATORS=xray OTEL_PYTHON_ID_GENERATOR=xray opentelemetry-instrument python3 app.py EXPOSE 8080
Source code repository

當您的服務來源是包含應用程式來源的儲存庫時,您會間接使用 App Runner 組態檔案設定來檢測映像。這些設定控制 App Runner 產生的 Dockerfile,並用來建置應用程式的映像。下列範例顯示 Python 應用程式的工具化 App Runner 組態檔案。檢測新增項目以粗體強調。

範例 apprunner.yaml
version: 1.0 runtime: python3 build: commands: build: - pip install -r requirements.txt - opentelemetry-bootstrap --action=install run: command: opentelemetry-instrument python app.py network: port: 8080 env: - name: OTEL_PROPAGATORS value: xray - name: OTEL_METRICS_EXPORTER value: none - name: OTEL_PYTHON_ID_GENERATOR value: xray - name: OTEL_PYTHON_DISABLED_INSTRUMENTATIONS value: urllib3 - name: OTEL_RESOURCE_ATTRIBUTES value: 'service.name=example_app'

當您的服務來源是映像時,您可以直接檢測 Dockerfile,以控制建置容器映像並在映像中執行應用程式。下列範例顯示 Python 應用程式的檢測 Dockerfile。檢測新增項目以粗體強調。

範例 Dockerfile
FROM public.ecr.aws/amazonlinux/amazonlinux:latest RUN yum install python3.7 -y && curl -O https://bootstrap.pypa.io/get-pip.py && python3 get-pip.py && yum update -y COPY . /app WORKDIR /app RUN pip3 install -r requirements.txt RUN opentelemetry-bootstrap --action=install ENV OTEL_PYTHON_DISABLED_INSTRUMENTATIONS=urllib3 ENV OTEL_METRICS_EXPORTER=none ENV OTEL_RESOURCE_ATTRIBUTES='service.name=example_app' CMD OTEL_PROPAGATORS=xray OTEL_PYTHON_ID_GENERATOR=xray opentelemetry-instrument python3 app.py EXPOSE 8080

將 X-Ray 許可新增至您的 App Runner 服務執行個體角色

若要搭配 App Runner 服務使用 X-Ray 追蹤,您必須為服務的執行個體提供與 X-Ray 服務互動的許可。您可以建立執行個體角色與服務的關聯,並新增具有 X-Ray 許可的受管政策,藉此達成此目的。如需 App Runner 執行個體角色的詳細資訊,請參閱 執行個體角色。將 AWSXRayDaemonWriteAccess 受管政策新增至執行個體角色,並在建立期間將其指派給您的服務。

為您的 App Runner 服務啟用 X-Ray 追蹤

當您建立服務時,App Runner 預設會停用追蹤。您可以在設定可觀測性時為服務啟用 X-Ray 追蹤。如需詳細資訊,請參閱管理可觀測性

如果您使用 App Runner API 或 AWS CLI,則 ObservabilityConfiguration 資源物件中的 TraceConfiguration 物件會包含追蹤設定。 ObservabilityConfiguration 若要停用追蹤功能,請勿指定TraceConfiguration物件。

在主控台和 API 案例中,請務必將上一節討論的執行個體角色與您的 App Runner 服務建立關聯。

檢視 App Runner 服務的 X-Ray 追蹤資料

在 App Runner 主控台中服務儀表板頁面可觀測性索引標籤上,選擇檢視服務映射以導覽至 Amazon CloudWatch 主控台。

App Runner 服務儀表板頁面,顯示可觀測性索引標籤

使用 Amazon CloudWatch 主控台來檢視應用程式提供的請求的服務映射和追蹤。服務映射會顯示請求延遲等資訊,以及與其他應用程式 AWS 和服務的互動。您新增至程式碼的自訂註釋可讓您輕鬆搜尋追蹤。如需詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的使用 ServiceLens 來監控應用程式的運作狀態。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。