設定 取樣規則 - AWS X-Ray

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

設定 取樣規則

您可以使用主 AWS X-Ray 控台來設定服務的取樣規則。X-Ray SDK 以及支援 AWS 服務 使用取樣配置的主動追蹤使用取樣規則來決定要記錄哪些要求。

設定 取樣規則

您可以針對下列使用案例設定取樣:

  • API Gateway 入口點 — API Gateway 支援取樣和主動追蹤。若要在 API 階段上啟用主動追蹤,請參閱 Amazon API Gateway 主動追蹤支援 AWS X-Ray

  • AWS AppSync— AWS AppSync 支持採樣和主動跟踪。若要啟用 AWS AppSync 要求的作用中追蹤,請參閱使用 AWS X-Ray 追蹤

  • 運算平台上的儀器 X-Ray 開發套件 — 使用 Amazon EC2、Amazon ECS 等運算平台時,如果應用程式已使用最新的 X-Ray 開發套件進行檢測 AWS Elastic Beanstalk,則支援取樣。

自訂抽樣規則

透過自訂取樣規則,您可以控制記錄的資料量。您也可以在不修改或重新部署程式碼的情況下修改取樣行為。取樣規則會告訴 X-Ray SDK 要針對一組準則記錄多少個要求。根據預設,X-Ray SDK 會每秒記錄第一個要求,以及任何其他要求的百分之五。每秒一個請求是儲槽。這可確保只要服務持續提供請求,每秒都會記錄至少一個追蹤。5% 是超過儲槽大小的額外請求抽樣「速率」

您可以將 X-Ray SDK 設定為從您的程式碼中包含的 JSON 文件讀取取樣規則。但是,當您執行服務的多個執行個體時,每個執行個體都會獨立執行抽樣。這會導致抽樣請求的整體百分比增加,因為所有執行個體的儲槽都會加在一起。此外,若要更新本機取樣規則,您必須重新部署程式碼。

透過在 X-Ray 主控台中定義取樣規則,並將 SDK 設定為從 X-Ray 服務讀取規則,就可以避免這兩個問題。服務會管理每個規則的儲槽,並根據執行中的執行個體數,將配額指派給每個服務執行個體來平均分散儲槽。儲槽限制是根據您設定的規則所計算。由於規則是在服務中配置的,因此您無需進行其他部署即可管理規則。

注意

X-Ray 在應用採樣規則時採用盡最大努力的方法,在某些情況下,有效採樣率可能與配置的採樣規則不完全匹配。但是,隨著時間的推移,採樣的請求數量應該接近配置的百分比。

您現在可以從 Amazon CloudWatch 主控台設定 X-Ray 取樣規則。您也可以繼續使用 X-Ray 控制台。

CloudWatch console
若要在 CloudWatch 主控台中設定取樣規則
  1. 請登入 AWS Management Console 並開啟 CloudWatch 主控台,網址為 https://console.aws.amazon.com/cloudwatch/

  2. 在左側導覽窗格中選擇 [設定]。

  3. X-Ray 軌跡區段中的取樣規則下選擇檢視設定

  4. 若要建立規則,請選擇 Create sampling rule (建立抽樣規則)

    若要編輯規則,請選擇規則,然後選擇 「編輯」進行編輯。

    若要刪除規則,請選擇規則,然後選擇「刪除」將其刪除。

X-Ray console
在 X-Ray 主控台中設定取樣規則
  1. 開啟 X-Ray 主控台

  2. 在左側導覽窗格中選擇 [取樣]。

  3. 若要建立規則,請選擇 Create sampling rule (建立抽樣規則)

    若要編輯規則,請選擇規則的名稱。

    若要刪除規則,請選擇規則並使用 Actions (動作) 功能表來刪除它。

抽樣規則選項

下列選項可用於每個規則。字串值可以使用萬用字元來以符合單一字元 (?) 或零或多個字元 (*)。

抽樣規則選項
  • 規則名稱 (字串) — 規則的唯一名稱。

  • 優先順序 (介於 1 到 9999 之間的整數) — 取樣規則的優先順序。服務會以遞增的優先順序來評估規則,並使用符合的第一個規則來決定取樣決策。

  • 儲存器(非負整數)— 應用固定費率之前,每秒儀器匹配請求的固定數量。儲槽不會直接用於服務,而是集體套用至使用該規則的所有服務。

  • 速率(0 到 100 之間的整數)— 儲存器用盡後,與儀器匹配請求的百分比。在主控台中設定取樣規則時,請選擇 0 到 100 之間的百分比。使用 JSON 文件在用戶端 SDK 中設定取樣規則時,請提供介於 0 到 1 之間的百分比值。

  • 服務名稱 (字串) — 已檢測服務的名稱,當它顯示在追蹤對映中。

    • X-Ray SDK — 您在錄像機上配置的服務名稱。

    • Amazon API Gateway —api-name/stage.

  • 服務類型 (字串) — 顯示在追蹤對映中的服務類型。對於 X-Ray SDK,請通過應用適當的插件來設置服務類型:

    • AWS::ElasticBeanstalk::Environment-一個 AWS Elastic Beanstalk 環境(插件)。

    • AWS::EC2::Instance-一個 Amazon EC2 實例(插件)。

    • AWS::ECS::Container— Amazon ECS 容器 (插件).

    • AWS::APIGateway::Stage— 一個 Amazon API Gateway 階段.

    • AWS::AppSync::GraphQLAPI -一個 AWS AppSync API 請求。

  • 主機 (字串) — 來自 HTTP 主機標頭的主機名稱。

  • HTTP 方法 (字串) — HTTP 要求的方法。

  • URL 路徑 (字串) — 要求的 URL 路徑。

    • X-Ray SDK — HTTP 請求網址的路徑部分。

  • 資源 ARN (字串) — 執行服務之 AWS 資源的 ARN。

    • X-Ray SDK — 不支援。軟體開發套件僅能使用 Resource ARN (資源 ARN) 設為 * 的規則。

    • Amazon API Gateway-階段 ARN。

  • (選擇性) 屬性 (鍵和值) — 做出取樣決定時已知的區段屬性。

    • X-Ray SDK — 不支援。軟體開發套件會忽略指定屬性的規則。

    • Amazon API Gateway — 來自原始 HTTP 請求的標頭。

抽樣規則範例

範例 -默認規則,沒有水庫和低速率

您可以修改預設規則的儲槽和速率。預設規則會套用至不符合任何其他規則的請求。

  • 水庫0

  • 速率:5(0.05如果使用 JSON 文件設定)

範例 — 調試規則以跟踪有問題的路由的所有請求

會暫時套用高優先順序的規則來進行除錯。

  • 規則名稱DEBUG – history updates

  • 優先順序1

  • 水庫1

  • 速率:100(1如果使用 JSON 文件設定)

  • 服務名稱Scorekeep

  • Service type (服務類型):*

  • 主持人*

  • HTTP 方法PUT

  • 網址路徑/history/*

  • 資源庫*

範例 -帖子的最低利率更高
  • 規則名稱POST minimum

  • 優先順序100

  • 水庫10

  • 速率:10(.1如果使用 JSON 文件設定)

  • 服務名稱*

  • Service type (服務類型):*

  • 主持人*

  • HTTP 方法POST

  • 網址路徑*

  • 資源庫*

將您的服務設定為使用抽樣規則

X-Ray SDK 需要額外的設定,才能使用您在主控台中設定的取樣規則。如需設定抽樣策略的詳細資訊,請參閱適用您語言的組態主題:

如需 API Gateway 的資訊,請參閱Amazon API Gateway 主動追蹤支援 AWS X-Ray

檢視抽樣結果

X-Ray 主控台取樣頁面會顯示有關您的服務如何使用每個取樣規則的詳細資訊。

Trend (趨勢) 資料行會顯示過去幾分鐘內使用規則的方式。每個資料行都會顯示 10 秒間的統計資料。

抽樣統計資料
  • 符合規則總計:符合此規則的要求數目。此數量不包含本來會和此規則相符,但是卻先符合高優先順序規則的請求。

  • 抽樣總數:記錄的請求數目。

  • 固定費率取樣:套用規則的固定費率所取樣的要求數目。

  • 使用儲存器限制抽樣:使用 X-Ray 指派的配額取樣的要求數目。

  • 從水庫借來的:通過從水庫借用抽樣的請求數量。服務第一次符合規則的要求時,尚未透過 X-Ray 指派配額。但是,如果儲存器至少為 1,則服務每秒借用一條追蹤,直到 X-Ray 指派配額為止。

如需抽樣統計資料和服務使用抽樣規則方式的詳細資訊,請參閱使用取樣規則搭配 X-Ray API

後續步驟

您可以使用 X-Ray API 來管理取樣規則。透過 API,您可以透過編寫程式設計的方式在排程上建立及更新規則,或是回應警示或通知。如需說明及其他規則範例,請參閱使用 AWS X-Ray API 設定抽樣、分組和加密設定

X-Ray SDK AWS 服務 也使用 X-Ray API 讀取取樣規則、報告取樣結果,以及取得取樣目標。當要求符合 X-Ray 尚未為服務指派配額的規則時,服務必須追蹤套用每個規則的頻率、根據優先順序評估規則,以及從儲存器借用。如需服務使用 API 進行抽樣的詳細資訊,請參閱使用取樣規則搭配 X-Ray API

當 X-Ray SDK 呼叫取樣 API 時,它會使用 X-Ray 精靈做為代理伺服器。若您已使用 TCP 連接埠 2000,現在您可以設定精靈,在不同的連接埠執行代理。如需詳細資訊,請參閱 配置 AWS X-Ray 守護進程