本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
設定 取樣規則
您可以使用 AWS X-Ray 主控台來設定 服務的取樣規則。支援使用取樣組態主動追蹤 AWS 服務 的 X-Ray SDK 和 會使用取樣規則來決定要記錄哪些請求。
設定 取樣規則
您可以針對下列使用案例設定取樣:
-
API Gateway Entrypoint – API Gateway 支援取樣和主動追蹤。若要在 API 階段上啟用主動追蹤,請參閱 的 Amazon API Gateway 主動追蹤支援 AWS X-Ray。
-
AWS AppSync – AWS AppSync 支援取樣和主動追蹤。若要在請求上 AWS AppSync 啟用主動追蹤,請參閱使用 AWS X-Ray 追蹤。
-
在運算平台上檢測 X-Ray 開發套件 – 使用 Amazon EC2、Amazon ECS 或 等運算平台時 AWS Elastic Beanstalk,當應用程式已使用最新的 X-Ray 開發套件檢測時,支援取樣。
自訂抽樣規則
透過自訂抽樣規則,您可以控制記錄的資料量。您也可以修改抽樣行為,而無需修改或重新部署程式碼。取樣規則會告知 X-Ray SDK 要針對一組條件記錄多少請求。根據預設,X-Ray 開發套件每秒記錄第一個請求,以及任何額外請求的 5%。每秒一個請求是儲槽。這可確保只要服務持續提供請求,每秒都會記錄至少一個追蹤。5% 是超過儲槽大小的額外請求抽樣「速率」。
您可以設定 X-Ray 開發套件,從程式碼隨附的 JSON 文件讀取抽樣規則。但是,當您執行服務的多個執行個體時,每個執行個體都會獨立執行抽樣。這會導致抽樣請求的整體百分比增加,因為所有執行個體的儲槽都會加在一起。此外,若要更新本機取樣規則,您必須重新部署程式碼。
透過在 X-Ray 主控台中定義抽樣規則,並將 SDK 設定為從 X-Ray 服務讀取規則,您可以避免這兩個問題。服務會管理每個規則的儲槽,並根據執行中的執行個體數,將配額指派給每個服務執行個體來平均分散儲槽。儲槽限制是根據您設定的規則所計算。由於規則是在 服務中設定,因此您可以管理規則,而無需進行其他部署。
注意
X-Ray 使用最努力的方法套用抽樣規則,在某些情況下,有效的抽樣率可能不會完全符合設定的抽樣規則。不過,隨著時間的推移,取樣的請求數量應該接近設定的百分比。
您現在可以從 Amazon CloudWatch 主控台設定 X-Ray 取樣規則。您也可以繼續使用 X-Ray 主控台。
抽樣規則選項
下列選項可用於每個規則。字串值可以使用萬用字元來以符合單一字元 (?) 或零或多個字元 (*)。
抽樣規則選項
-
規則名稱 (字串) – 規則的唯一名稱。
-
Priority (介於 1 和 9999 之間的整數) – 取樣規則的優先順序。服務會以遞增的優先順序來評估規則,並使用符合的第一個規則來決定取樣決策。
-
儲存器 (非負整數) – 套用固定速率之前,每秒要檢測的比對請求固定數量。儲槽不會直接用於服務,而是集體套用至使用該規則的所有服務。
-
速率 (介於 0 到 100 之間的整數) – 在儲槽用盡之後,與檢測相符的請求百分比。在主控台中設定取樣規則時,請選擇介於 0 到 100 之間的百分比。使用 JSON 文件在用戶端 SDK 中設定取樣規則時,請提供介於 0 和 1 之間的百分比值。
-
服務名稱 (字串) – 檢測服務的名稱,如追蹤映射中所示。
-
X-Ray SDK – 您在記錄器上設定的服務名稱。
-
Amazon API Gateway –
。api-name/stage
-
-
服務類型 (字串) – 顯示在追蹤映射中的服務類型。對於 X-Ray 開發套件,請套用適當的外掛程式來設定服務類型:
-
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 請求 URL 的路徑部分。
-
-
資源 ARN (字串) – 執行服務之 AWS 資源的 ARN。
-
X-Ray SDK – 不支援。軟體開發套件僅能使用 Resource ARN (資源 ARN) 設為
*的規則。 -
Amazon API Gateway – 階段 ARN。
-
-
(選用) 屬性 (索引鍵和值) – 取樣決策時已知的區段屬性。
-
X-Ray SDK – 不支援。軟體開發套件會忽略指定屬性的規則。
-
Amazon API Gateway – 來自原始 HTTP 請求的標頭。
-
(選用) SamplingRateBoost (物件) – 控制異常驅動的取樣提升行為。
MaxRate (介於 0 和 100 之間的整數) – 在異常期間,X-Ray 可能會增加到
CooldownWindowMinutes (大於 0 的整數) – 只能觸發一次提升的時段 (分鐘),防止持續提升
抽樣規則範例
範例 – 預設規則,沒有儲槽且速率低
您可以修改預設規則的儲槽和速率。預設規則會套用至不符合任何其他規則的請求。
-
儲存庫:
0 -
速率:
5(0.05如果使用 JSON 文件設定)
範例 – 偵錯規則以追蹤有問題路由的所有請求
會暫時套用高優先順序的規則來進行除錯。
-
規則名稱:
DEBUG – history updates -
優先順序:
1 -
儲存庫:
1 -
速率:
100(1如果使用 JSON 文件設定) -
服務名稱:
Scorekeep -
Service type (服務類型):
* -
主機:
* -
HTTP 方法:
PUT -
URL 路徑:
/history/* -
資源 ARN:
*
範例 – POSTs的較高最低速率
-
規則名稱:
POST minimum -
優先順序:
100 -
儲存庫:
10 -
速率:
10(.1如果使用 JSON 文件設定) -
服務名稱:
* -
Service type (服務類型):
* -
主機:
* -
HTTP 方法:
POST -
URL 路徑:
* -
資源 ARN:
*
範例 啟用異常驅動提升
設定在異常期間觸發取樣提升高達 50% 的規則,冷卻時間為 10 分鐘。
-
規則名稱:
MyAdaptiveRule -
優先順序:
100 -
儲存庫:
1 -
FixedRate:
0.0510 -
服務名稱:
* -
Service type (服務類型):
* -
主機:
* -
HTTP 方法:
POST -
URL 路徑:
* -
maxRate:
0.5 -
cooldownWindowMinutes:
10
將您的服務設定為使用抽樣規則
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 開發套件和 AWS 服務 也使用 X-Ray API 來讀取抽樣規則、報告抽樣結果,以及取得抽樣目標。當請求符合 X-Ray 尚未為服務指派配額的規則時,服務必須追蹤其套用每個規則的頻率、根據優先順序評估規則,以及從儲槽借用。如需服務使用 API 進行抽樣的詳細資訊,請參閱透過 X-Ray API 使用取樣規則。
當 X-Ray SDK 呼叫取樣 APIs時,它會使用 X-Ray 協助程式做為代理。若您已使用 TCP 連接埠 2000,現在您可以設定精靈,在不同的連接埠執行代理。如需詳細資訊,請參閱 設定 AWS X-Ray 協助程式。