本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 AWS Management Console
AWS Management Console 如果您想要一個需要最少編碼的圖形用戶界面(GUI),請使用。X-Ray 新使用者可以使用預先建立的視覺效果快速開始使用,並執行基本工作。您可以直接從控制台執行以下操作:
-
啟用 X-Ray。
-
檢視應用程式效能的高階摘要。
-
檢查應用程式的健康狀態。
-
識別高階錯誤。
-
檢視基本追蹤摘要。
您可以使用 Amazon CloudWatch 控制台 https://console.aws.amazon.com/cloudwatch/
使用 Amazon CloudWatch 控制台
CloudWatch 控制台包含新的 X-Ray 功能,經過 X-Ray 控制台重新設計,使其更易於使用。如果您使用 CloudWatch 控制台,則可以查看 CloudWatch 日誌和指標以及 X-Ray 跟踪數據。使用主 CloudWatch 控台檢視和分析資料,包括下列項目:
-
X-Ray 跟踪 — 在提供請求時查看,分析和過濾與應用程序關聯的跟踪。使用這些追蹤來尋找高延遲、偵錯錯誤,以及最佳化您的應用程式工作流程。檢視追蹤對應和服務對應,以檢視應用程式工作流程的視覺化表示。
-
防護記錄 — 檢視、分析和篩選應用程式產生的防護記錄。使用記錄檔疑難排解錯誤,並根據特定的記錄值設定監控。
-
指標 — 使用資源發出的指標或建立自己的指標來衡量和監視應用程式效能。以圖形和圖表檢視這些測量結果。
-
監控網路和基礎架構 — 監控主要網路中斷情況,以及基礎架構的運作狀態和效能,包括容器化應用程式、其他 AWS 服務和用戶端。
-
下面列出的 X-Ray 控制台中的所有功能「使用 X-Ray 控制台」部分。
如需有關 CloudWatch 主控台的詳細資訊,請參閱 Amazon 入門 CloudWatch。
在以下位置登錄 Amazon CloudWatch 控制台 https://console.aws.amazon.com/cloudwatch/
使用 X-Ray 控制台
X-Ray 主控台提供應用程式要求的分散式追蹤。如果您想要更簡單的主控台體驗,或不想更新應用程式程式碼,請使用 X-Ray 主控台。 AWS 不再開發 X-Ray 控制台。X-Ray 主控台包含已測試應用程式的下列功能:
-
深入解析 — 自動偵測應用程式效能中的異常情況,並找出基本原因。深入解析包含在 CloudWatch 主控台中的 [見解] 底下。如需詳細資訊,請參閱中的使用 X-Ray 深入解析探索 X-Ray 控制台。
-
服務對應 — 檢視應用程式的圖形結構,以及其與用戶端、資源、服務和相依性之間的連線。
-
追蹤 — 查看應用程式在提供請求時產生的追蹤概觀。使用追蹤資料來瞭解應用程式如何針對基本指標 (包括HTTP回應和回應時間) 執行。
-
分析 — 使用圖形來解讀、探索和分析追蹤資料以進行回應時間分佈。
-
配置 — 建立自訂追蹤以變更下列項目的預設組態:
-
取樣 — 建立一個規則,定義應用程式取樣追蹤資訊的頻率。如需詳細資訊,請參閱中的設定取樣規則探索 X-Ray 控制台。
-
加密 — 使用您可以使用稽核或停用的金鑰來加密靜態資料 AWS Key Management Service。
-
群組 — 使用篩選運算式來定義具有一般功能 (例如 url 名稱或回應時間) 的繪線群組。如需詳細資訊,請參閱設定群組。
-
請登入 X-Ray 控制台 https://console.aws.amazon.com/xray/home
探索 X-Ray 控制台
使用 X-Ray 主控台來檢視應用程式所提供要求的服務對應和關聯追蹤,並設定群組和取樣規則,以影響追蹤傳送至 X-Ray 的方式。
注意
X-Ray 服務地圖和 CloudWatch ServiceLens 地圖已合併到 Amazon CloudWatch 控制台中的 X-Ray 跟踪地圖中。打開CloudWatch控制台
CloudWatch 現在包括應用程序信號,它可以發現和監視您的應用程序服務,客戶端,Synthetics 金絲雀和服務依賴關係。使用 Application Signals 查看服務清單或視覺化地圖,根據您的服務等級目標 (SLO) 檢視運作狀態指標,並深入了解相關的 X-Ray 追蹤以取得更詳細的疑難排解。
主要的 X-Ray 主控台頁面是追蹤對應,這是 X-Ray 從應用程式產生的追蹤資料產生的 JSON 服務圖形的視覺化呈現。映射由您帳戶中每個處理請求的應用程式服務節點、代表請求來源的上游用戶端節點,以及代表處理請求過程中應用程式所使用 web 服務及資源的下游服務節點組成。還有其他頁面可供檢視追蹤和追蹤詳細資訊,以及設定群組和取樣規則。
檢視 X-Ray 的主控台體驗,並在下列各節中與 CloudWatch 主控台進行比較。
探索 X-Ray 和 CloudWatch 控制台
檢視 X-Ray 追蹤對應,以識別發生錯誤的服務、高延遲的連線,或追蹤失敗的要求。
注意
CloudWatch 現在包括應用程序信號,它可以發現和監視您的應用程序服務,客戶端,合成金絲雀和服務依賴關係。使用 Application Signals 查看服務清單或視覺化地圖,根據您的服務等級目標 (SLO) 檢視運作狀態指標,並深入了解相關的 X-Ray 追蹤以取得更詳細的疑難排解。
X-Ray 服務地圖和 CloudWatch ServiceLens 地圖被合併到 Amazon CloudWatch 控制台內的 X-Ray 跟踪地圖中。打開CloudWatch控制台
檢視追蹤映射
追蹤對應是應用程式所產生之追蹤資料的視覺化呈現方式。此對映會顯示服務要求的服務節點、代表要求來源的上游用戶端節點,以及代表應用程式在處理要求時所使用之 Web 服務和資源的下游服務節點。
追蹤對應顯示使用 Amazon SQS 和 Lambda 之事件導向應用程式之間的追蹤連線檢視。如需詳細資訊,請參閱下列追蹤事件導向應用程式一節。追蹤對映也支援跨帳戶追蹤,在單一對應中顯示來自多個帳戶的節點。
注意
X-Ray 追蹤圖最多可顯示 10,000 個節點。在服務節點總數超過此限制的罕見情況下,您可能會收到錯誤訊息,而且無法在主控台中顯示完整的追蹤對應。
依群組篩選軌跡圖
使用篩選器運算式,您可以定義要在群組中包含追蹤的條件。如需篩選運算式的詳細資訊,請參閱使用篩選器運算式。接下來,使用以下步驟在追蹤對映中顯示該特定群組。
現在將篩選服務對應,以顯示符合所選群組之篩選器運算式的追蹤。
追蹤地圖圖例和選項
軌跡貼圖包括一個圖例和數個用於自訂地圖顯示的選項。
您可以使用 X-Ray 主控台中的「追蹤」頁面,依 URL、回應代碼或追蹤摘要中的其他資料尋找追蹤。從追蹤清單選取追蹤之後,「追蹤詳細資訊」頁面會顯示與所選追蹤相關聯的服務節點對應,以及追蹤區段的時間表。
檢視追蹤
探索追蹤時間軸
「時間軸」區段會在水平列旁顯示區段和子區段的階層,該階層與其完成工作所用的時間相對應。清單中的第一個項目是區段,代表服務為單一請求記錄的所有資料。子區段會縮排並列在區段之後。欄包含每個區段的相關資訊。
當您使用已檢測的 AWS SDK 或用SQL戶端來呼叫外部資源時,X-Ray SDK 會自動記錄子區段。HTTP您也可以使用 X-Ray SDK 記錄任何函數或程式碼區塊的自訂子區段。開啟自訂子區段時所記錄的其他子區段會成為自訂子區段的子區段。
檢視區段詳細資訊
從追蹤時間軸中,選擇要檢視其詳細資訊的區段名稱。
區段詳細資料面板會顯示「概觀」、「資源」、「註釋」、「中繼資料」、「例外」和「SQL」 以下情況適用:
-
Overview (概觀) 標籤會顯示請求及回應的相關資訊。資訊包括名稱、開始時間、結束時間、持續時間、要求 URL、要求作業、要求回應碼,以及任何錯誤和錯誤。
-
區段的 [資源] 索引標籤會顯示 X-Ray SDK 的資訊,以及執行應用程式之 AWS 資源的相關資訊。使用適用於 X-Ray 開發套件的亞馬 Amazon EC2 或 Amazon ECS 外掛程式來記錄服務特定的資源資訊。 AWS Elastic Beanstalk如需外掛程式的詳細資訊,請參閱中的服務外掛程式一節設定適用於 Java 的 X-Ray SDK。
-
其餘標籤會顯示為區段記錄的「註釋」、「中繼資料」和「例外」。從已檢測的請求產生例外狀況時,會自動擷取例外狀況。註釋和中繼資料包含您使用 X-Ray SDK 提供的作業所記錄的其他資訊。若要將註解或中繼資料新增至區段,請使用 X-Ray SDK。如需詳細資訊,請參閱中使 AWS X-Ray 用 SDK 檢測您的應用程式中列出的特定語言連結。檢測您的申請 AWS X-Ray
檢視子區段詳細資訊
在追蹤時間表中,選擇子區段的名稱以檢視其詳細資訊:
-
[概觀] 索引標籤包含要求和回應的相關資訊。這包括名稱、開始時間、結束時間、持續時間、要求URL、要求作業、要求回應碼,以及任何錯誤和錯誤。針對使用受檢測用戶端產生的子區段,Overview (概觀) 標籤包含從您應用程式觀點的請求和回應相關資訊。
-
子區段的「資源」標籤會顯示用來執行子區段之 AWS 資源的詳細資訊。例如,資源索引標籤可能包含 AWS Lambda 函數 ARN、DynamoDB 表的相關資訊、任何呼叫的作業以及請求識別碼。
-
其餘標籤會顯示記錄在子區段上的「註釋」、「中繼資料」和「例外」。從已檢測的請求產生例外狀況時,會自動擷取例外狀況。註釋和中繼資料包含您使用 X-Ray SDK 提供的作業所記錄的其他資訊。使用 X-Ray SDK 將註釋或中繼資料新增至您的區段。如需詳細資訊,請參閱中使 AWS X-Ray 用 SDK 檢測您的應用程式中列出的特定語言連結。檢測您的申請 AWS X-Ray
針對自訂子區段,Overview (概觀) 標籤會顯示子區段的名稱,您可以設定該名稱來指定其記錄的程式碼或函數區域。如需詳細資訊,請參閱中使 AWS X-Ray 用 SDK 檢測您的應用程式中列出的特定語言連結。使用適用於 Java 的 X-Ray SDK 產生自訂子區段
下圖展示了自訂子區段的「概觀」頁籤。概觀包含子區段 ID、父項 ID、名稱、開始和結束時間、持續時間、狀態以及錯誤或錯誤。
![有關子區段的概觀資訊,包括 ID、父項 ID、名稱、時間、錯誤和錯誤。](images/scorekeep-PUTrules-customsubsegment-overview.png)
自訂子區段的「中繼資料」標籤包含有關該子區段所使用資源的JSON格式資訊。
使用篩選器運算式來檢視特定要求、服務、兩個服務 (邊緣) 之間的連線或滿足條件的要求的追蹤對應或追蹤。X-Ray 提供篩選器運算式語言,可根據要求標頭、回應狀態和原始區段上的索引欄位中的資料篩選要求、服務和邊緣。
當您選擇要在 X-Ray 主控台中檢視的追蹤時段時,可能會得到比主控台顯示的更多結果。主控台會在右上角顯示已掃描的追蹤數目,但實際上可用的追蹤可能更多。您可以使用篩選器運算式將結果縮小為只要尋找的軌跡。
當您在追蹤對應中選擇節點時,主控台會根據節點的服務名稱建構篩選器運算式,以及根據您的選取項目存在的錯誤類型。若要尋找顯示效能問題或與特定請求相關的追蹤,您可以調整主控台提供的表達式,或是自行建立。如果您使用 X-Ray SDK 新增註釋,您也可以根據註釋金鑰的存在或金鑰值進行篩選。
注意
如果您在追蹤對映中選擇相對時間範圍並選擇節點,主控台會將時間範圍轉換為絕對開始和結束時間。為了確保搜尋結果顯示節點的追蹤,並避免掃描未作用中節點的時間,時間範圍只包含節點傳送追蹤的時間。若要搜尋相對於目前的時間,您可以在追蹤頁面切換回相對時間範圍,並再次掃描。
如果可用結果超過主控台可以顯示的範圍,主控台會顯示相符的追蹤數和已掃描的追蹤數。顯示的百分比為所選時間範圍內已掃描的百分比。若要確保結果中可以顯示所有相符的追蹤,請進一步縮小篩選條件表達式,或選擇較短的時間範圍。
若要先取得最新的結果,主控台會從時間範圍結尾開始掃描,並倒退進行。如果有大量追蹤,但僅有少數結果,主控台會將時間範圍分成區塊並平行掃描。進度列會顯示已掃描的部分時間範圍。
![](images/console-tracescan-parallel.png)
群組是一系列追蹤,為篩選條件表達式所定義。您可以使用群組產生其他服務圖表並提供 Amazon CloudWatch 指標。
群組會根據名稱或 Amazon Resource Name (ARN) 進行識別,且包含篩選條件表達式。此服務會比較傳入表達式的追蹤,並依序存放。
您可以在下拉式功能表,篩選條件表達式左側的搜尋列,建立或修改群組。
注意
如果服務驗證群組資格時發生錯誤,該群組即不會處理傳入的追蹤,且會記錄錯誤指標。
如需群組的詳細資訊,請參閱設定群組。
篩選條件表達式可以包含「關鍵字」、一元或二元「運算子」以及用於比較的「值」。
keyword
operator
value
不同運算子適用於不同類型的關鍵字。例如,responsetime
是數字關鍵字,可相較於與數字相關的運算子。
範例 — 回應時間大於 5 秒的要求
responsetime > 5
您可以使用 AND
或 OR
運算子,將多個表達式結合成一個複合表達式。
範例 — 總持續時間為 5—8 秒的請求
duration >= 5 AND
duration <= 8
簡單關鍵字和運算子只能發現追蹤層級的問題。如果下游發生錯誤,但已由您的應用程式處理而未傳回給使用者,搜尋 error
時就不會找到此錯誤。
若要尋找具有下游問題的追蹤,您可以使用複雜的關鍵字service()
和edge()
. 這些關鍵字可讓您將篩選條件表達式套用到所有下游節點、單一下游節點,或是兩個節點之間的邊緣。如需這些關鍵字的詳細資訊,請參閱下列複雜關鍵字一節。如需更高的精細程度,您可以依據 id() 函數類型來篩選服務和邊緣。如需詳細資訊,請參閱下列 id 函數一節。
布林值關鍵字值可為 true 或 false。使用這些關鍵字來尋找導致錯誤的追蹤。
布林值關鍵字
-
ok
— 響應狀態代碼為 2XX「成功」。 -
error
— 響應狀態代碼為 4XX 客戶端錯誤。 -
throttle
— 響應狀態代碼為 429 請求太多。 -
fault
— 回應狀態碼為 5XX 伺服器錯誤。 -
partial
— 請求具有不完整的區段。 -
inferred
— 請求推斷了區段。 -
first
— 元素是列舉清單的第一個。 -
last
— 元素是列舉清單的最後一個。 -
remote
— 根本原因實體是遠端的。 -
root
— 服務是追蹤的進入點或根區段。
布林值運算子可尋找指定索引鍵為 true
或 false
的區段。
布林值運算子
-
無 — 如果關鍵字為真,則表示式為真。
-
!
— 如果關鍵字為假,則表示式為 true。 -
=
,!=
— 將關鍵字的值與字串true
或比較false
。這些運算子的作用與其他運算子相同,但更加明確。
範例 — 響應狀態為 2XX「確定」
ok
範例 — 響應狀態不是 2XX「確定」
!ok
範例 — 響應狀態不是 2XX「確定」
ok = false
範例 — 上次列舉的錯誤追蹤具有錯誤名稱「還原序列化」
rootcause.fault.entity { last and name = "deserialize" }
範例 — 具有覆蓋範圍大於 0.7 且服務名稱為「追蹤」之遠端區段的要求
rootcause.responsetime.entity { remote and coverage > 0.7 and name = "traces" }
範例 — 具有推斷區段的請求,其中服務類型為「AWS:DynamoDB」
rootcause.fault.service { inferred and name = traces and type = "AWS::DynamoDB" }
範例 — 具有以「資料平面」為根名稱的區段的要求
service("data-plane") {root = true and fault = true}
使用數字關鍵字以搜尋含特定回應時間、持續時間或回應狀態的請求。
數字關鍵字
-
responsetime
— 伺服器傳送回應所花費的時間。 -
duration
— 總請求持續時間,包括所有下游呼叫。 -
http.status
— 響應狀態代碼。 -
index
— 元素在列舉清單中的位置。 -
coverage
— 根區段回應時間內實體回應時間的十進位百分比。僅適用於回應時間根本原因實體。
數字運算子
數字關鍵字使用標準的對等和比較運算子。
-
=
、!=
— 關鍵字等於或不等於數字值。 -
<
、<=
、>
、>=
— 關鍵字小於或大於數字值。
範例 — 響應狀態不是 200「確定」
http.status != 200
範例 — 請求總持續時間為 5—8 秒
duration >= 5 AND duration <= 8
範例 — 在 3 秒內成功完成的請求,包括所有下游呼叫
ok !partial duration <3
範例 — 索引大於 5 的列舉清單實體
rootcause.fault.service { index > 5 }
範例 — 具有覆蓋範圍大於 0.8 的最後一個實體的請求
rootcause.responsetime.entity { last and coverage > 0.8 }
使用字串關鍵字以尋找請求標頭中含特定文字或特定使用者 ID 的追蹤。
字串關鍵字
-
http.url
— 請求網址。 -
http.method
— 請求方法。 -
http.useragent
— 要求使用者代理字串。 -
http.clientip
— 要求者的 IP 位址。 -
user
— 追蹤中任何區段上的使用者欄位值。 -
name
— 服務或例外的名稱。 -
type
— 服務類型。 -
message
— 例外訊息。 -
availabilityzone
— 追蹤中任何區段上可用區域欄位的值。 -
instance.id
— 追蹤中任何區段上的執行個體 ID 欄位值。 -
resource.arn
— 追蹤中任何區段上資源 ARN 欄位的值。
字串運算子可尋找等於或包含特定文字的值。您必須一律在引號中指定值。
字串運算子
-
=
、!=
— 關鍵字等於或不等於數字值。 -
CONTAINS
— 關鍵字包含特定字串。 -
BEGINSWITH
,ENDSWITH
— 關鍵字以特定字串開頭或結尾。
範例 -網址過濾器
http.url CONTAINS "/api/game/"
若要測試追蹤上是否存在欄位 (無論其值為何),請檢查欄位是否包含空白字串。
範例 -用戶過濾器
尋找所有含使用者 ID 的追蹤。
user CONTAINS ""
範例 — 選取具有錯誤根本原因的追蹤,其中包含名為「Auth」的服務
rootcause.fault.service { name = "Auth" }
範例 — 選取具有回應時間根本原因的追蹤,其上一個服務具有 DynamoDB 類型
rootcause.responsetime.service { last and type = "AWS::DynamoDB" }
範例 — 選取具有錯誤根本原因的追蹤,其最後一個例外狀況會顯示「account_id 的存取遭拒:1234567890」訊息
rootcause.fault.exception { last and message = "Access Denied for account_id: 1234567890"
使用複雜關鍵字以根據服務名稱、邊緣名稱或註釋值來尋找請求。若是服務和邊緣,您可以指定額外篩選條件表達式以套用到服務或邊緣。若是註釋,您可以使用布林值、數字或字串運算子,篩選含特定索引鍵的註釋值。
複雜關鍵字
-
annotation.
— 含欄位key
鍵
之註釋的值。註釋值可以是布林值、數字或字串,所以您可以使用任何這些類型的比較運算子。您可以將此關鍵字與service
or 關鍵edge
字結合使用。 -
edge(
— 服務source
,destination
) {filter
}源
和目的地
之間的連接。選用的大括號可包含篩選表達式,以套用到此連線的服務。 -
group.
— 群組篩選運算式的值,依群組名稱或群組 ARN 參照。name
/ group.arn
-
json
— JSON 根本原因物件。如需以程式設計方式建立 JSON 實體的步驟,請參閱從 AWS X-Ray 取得 -
service(
— 具有名name
) {filter
}稱
的服務。選用的大括號可包含篩選表達式,以套用到服務所建立的區段。
使用 service 關鍵字來尋找追蹤對應上某個節點的要求追蹤。
複雜的關鍵字運算子會尋找已設定或未設定指定索引鍵的區段。
複雜關鍵字運算
-
無 — 如果已設定關鍵字,則表示式為 true。如果關鍵字是布爾類型,它將評估為布爾值。
-
!
— 如果未設定關鍵字,則表示式為 true。如果關鍵字是布爾類型,它將評估為布爾值。 -
=
,!=
— 比較關鍵字的值。 -
edge(
— 服務source
,destination
) {filter
}源
和目的地
之間的連接。選用的大括號可包含篩選表達式,以套用到此連線的服務。 -
annotation.
— 含欄位key
鍵
之註釋的值。註釋值可以是布林值、數字或字串,所以您可以使用任何這些類型的比較運算子。您可以將此關鍵字與service
or 關鍵edge
字結合使用。 -
json
— JSON 根本原因物件。如需以程式設計方式建立 JSON 實體的步驟,請參閱從 AWS X-Ray 取得
使用 service 關鍵字來尋找追蹤對應上某個節點的要求追蹤。
範例 — 服務過濾器
包含對 api.example.com
的呼叫且發生故障 (500 系列錯誤) 的請求。
service("api.example.com") { fault }
您可以排除服務名稱,以將篩選條件表達式套用到服務地圖中的所有節點。
範例 — 服務過濾器
在追蹤對應上的任何位置造成錯誤的要求。
service() { fault }
邊緣關鍵字可將篩選條件表達式套用到兩個節點之間的連線。
範例 — 邊緣濾鏡
api.example.com
服務對 backend.example.com
發出呼叫但因錯誤而失敗的請求。
edge("api.example.com", "backend.example.com") { error }
您也可以搭配使用 !
運算子與服務和邊緣關鍵字,以排除其他篩選條件表達式結果的服務或邊緣。
範例 — 服務和請求過濾器
URL 開頭為 http://api.example.com/
並包含 /v2/
但未到達名稱為 api.example.com
之服務的請求。
http.url BEGINSWITH "http://api.example.com/" AND http.url CONTAINS "/v2/" AND !service("api.example.com")
範例 — 服務和響應時間過濾器
尋找http url
已設定且回應時間大於 2 秒的追蹤。
http.url AND responseTime > 2
對於註釋,您可以調用設置的所有跟踪,或使用對應於值類型的比較運算符。annotation.
key
範例 -帶有字符串值的註釋
含名稱為 gameid
、字串值為 "817DL6VO"
之註釋的請求。
annotation.gameid = "817DL6VO"
範例 — 註釋被設置
具有名為 age
set 之註釋的請求。
annotation.age
範例 — 未設定註解
沒有註釋命名為 age
set 的請求。
!annotation.age
範例 -帶有數字值的註釋
含註釋存留期且數值大於 29 的請求。
annotation.age > 29
範例 -與服務或邊緣組合的註釋
service { annotation.request_id = "917DL6VO" }
edge { source.annotation.request_id = "916DL6VO" }
edge { destination.annotation.request_id = "918DL6VO" }
範例 -與用戶組
追蹤符合high_response_time
群組篩選條件的要求 (例如responseTime > 3
),且使用者名為 Alice。
group.name = "high_response_time" AND user = "alice"
範例 — 具有根本原因實體的 JSON
有相符根本原因實體的請求。
rootcause.json = #[{ "Services": [ { "Name": "GetWeatherData", "EntityPath": [{ "Name": "GetWeatherData" }, { "Name": "get_temperature" } ] }, { "Name": "GetTemperature", "EntityPath": [ { "Name": "GetTemperature" } ] } ] }
]
當您將服務名稱提供給 service
或 edge
關鍵字時,您可取得具有該名稱之所有節點的結果。如需更精確的篩選,除了名稱之外,您還可以使用 id
函數來指定服務類型,以區分名稱相同的節點。
檢視監視帳戶中多個帳戶的追蹤時,請使用此account.id
函數來指定服務的特定帳戶。
id(name: "service-name
", type:"service::type
", account.id:"account-ID
")
您可以使用 id
函數來代替服務和邊緣篩選條件中的服務名稱。
service(id(name: "service-name
", type:"service::type
")) { filter
}
edge(id(name: "service-one
", type:"service::type
"), id(name: "service-two
", type:"service::type
")) { filter
}
例如, AWS Lambda 函數會在追蹤對映中產生兩個節點;一個用於函數叫用,另一個用於 Lambda 服務。這兩個節點的名稱相同,但類型不同。標準的服務篩選條件可尋找這兩種追蹤。
範例 — 服務過濾器
包含任何名為 random-name
服務上的錯誤的請求。
service("function-name") { error }
使用 id
函數來縮小搜尋範圍至函數本身的錯誤,而不含服務的錯誤。
範例 — 具有 id 功能的服務過濾器
包含名為 random-name
、類型為 AWS::Lambda::Function
服務上的錯誤的請求。
service(id(name: "random-name", type: "AWS::Lambda::Function")) { error }
若要依據類型來搜尋節點,您也可以完全排除名稱。
範例 — 具有 id 功能和服務類型的服務過濾器
包含類型為 AWS::Lambda::Function
服務上的錯誤的請求。
service(id(type: "AWS::Lambda::Function")) { error }
若要搜尋特定節點 AWS 帳戶,請指定帳號 ID。
範例 — 具有 ID 功能和帳戶 ID 的服務過濾器
在特定帳戶 ID 中包含服務的要求AWS::Lambda::Function
。
service(id(account.id: "account-id
"))
AWS X-Ray 支援跨帳戶觀察能力,使您能夠監控和疑難排解跨多個帳戶的應用程式。 AWS 區域您可以無縫搜索,可視化和分析任何鏈接帳戶中的指標,日誌和跟踪,就像您在單個帳戶中進行操作一樣。這提供了跨多個帳戶傳送的請求的完整視圖。您可以在 X-Ray 追蹤地圖中檢視跨帳戶追蹤,並在CloudWatch主控台
共用的可觀測性資料可包含下列任何類型的遙測:
-
Amazon 指標 CloudWatch
-
Amazon CloudWatch 日誌中的日誌群組
-
追蹤中 AWS X-Ray
-
Amazon 應用程式洞察中的 CloudWatch 應用
設定跨帳戶觀察能力
若要開啟跨帳戶可觀察性,請設定一或多個 AWS 監控帳戶,並將其與多個來源帳戶連結。監視帳戶是一個中心, AWS 帳戶 可以檢視來源帳戶產生的可觀測性資料,並與之互動。來源帳戶是為其包含 AWS 帳戶 的資源產生可觀測性資料的個人。
來源帳戶會與監控帳戶共用其觀察性資料。追蹤會從每個來源帳戶複製到最多五個監視帳戶。從源帳戶到第一個監視帳戶的跟踪副本是免費的。傳送至其他監控帳戶的追蹤副本會根據標準定價向每個來源帳戶收取費用。如需詳細資訊,請參閱AWS X-Ray 定價
若要在監視帳戶和來源帳戶之間建立連結,請使用和 API 中的 CloudWatch 主控台或新的可觀察性存取管理員命令。 AWS CLI 如需詳細資訊,請參閱CloudWatch 跨帳戶可觀察性。
注意
X-Ray 追蹤會計費至收 AWS 帳戶 到的位置。如果取樣的要求跨越多個服務 AWS 帳戶,則每個帳戶都會記錄個別追蹤,而且所有追蹤都共用相同的追蹤 ID。若要進一步了解跨帳戶觀察定價,請參閱AWS X-Ray 定價
檢視跨帳戶追蹤
跨帳戶跟踪顯示在監視帳戶中。每個來源帳戶只會顯示該特定帳戶的本機追蹤。以下各節假設您已登入監控帳戶並已開啟 Amazon 主 CloudWatch 控台。在追蹤對應和追蹤頁面上,監控帳戶徽章會顯示在右上角。
![監控帳戶徽章](images/crossaccount-monitoring-account.png)
跟踪映射
在 CloudWatch 主控台中,從左側導覽窗格的 [X-Ray 追蹤] 下選擇 [追蹤地圖]。根據預設,追蹤對映會顯示傳送追蹤至監視帳戶的所有來源帳戶的節點,以及監視帳戶本身的節點。在追蹤對應上,從左上角選擇「篩選器」,使用「帳戶」下拉式清單篩選追蹤對映。套用帳戶篩選器後,不符合目前篩選器之帳戶中的服務節點會變成灰色。
![已篩選的軌跡圖](images/crossaccount-servicemap-account-filter.png)
當您選擇服務節點時,節點詳細資料窗格會包含服務的帳戶 ID 和標籤。
![節點明細窗格](images/crossaccount-servicemap-node-detail.png)
在追蹤對應的右上角,選擇 [清單檢視] 以查看服務節點清單。服務節點清單包括來自監視帳戶的服務以及所有已設定的來源帳戶。透過從「節點」篩選器中選擇「帳戶」標籤或「帳戶 ID」來篩選節點清單。
![已過濾服務清單](images/crossaccount-servicelist-account-filter.png)
追蹤
從監視帳戶開啟 CloudWatch 主控台,然後在左側導覽窗格中選擇 [X-Ray 追蹤底下的 [追蹤],檢視跨多個帳戶的追蹤詳細資料。您也可以在「X-Ray 追蹤對映」中選擇節點,然後從節點詳細資料窗格中選擇檢視追蹤,以開啟此頁面。
「追蹤」頁面支援按帳號 ID 進行查詢。若要開始使用,請輸入包含一或多個帳戶 ID 的查詢。如需查詢的更多資訊,請參閱使用篩選表示式。下列範例會查詢透過帳戶 ID X 或 Y 傳遞的追蹤:
service(id(account.id:"
X
")) OR service(id(account.id:"Y
"))
![依帳戶查詢追蹤](images/crossaccount-traces-query-by-account.png)
依「帳戶」精簡您的查詢。從清單中選取一或多個帳號,然後選擇 [新增至查詢]。
![依帳戶精簡追蹤查詢](images/crossaccount-traces-refine-by-account.png)
追蹤細節
從「追蹤」頁面底部的「追蹤」清單中選擇追蹤,即可檢視追蹤的詳細資訊。隨即顯示「追蹤」詳細資訊,包括追蹤詳細資訊對應,其中包含來自追蹤所傳遞之所有帳戶的服務節點。選擇特定服務節點以查看其對應帳戶。
「節段時間表」區段會顯示時間表中每個節段的科目明細。
![區段時間軸](images/crossaccount-traces-segment-timeline.png)
AWS X-Ray 支援使用 Amazon SQS 和. AWS Lambda使用主 CloudWatch 控台查看每個請求與 Amazon SQS 排入佇列並由一或多個 Lambda 函數處理時的連線檢視。來自上游訊息生產者的追蹤會自動連結至來自下游 Lambda 消費者節點的追蹤,以建立應用程式的 end-to-end 檢視。
注意
在軌跡對應中檢視連結的軌跡
使用CloudWatch主控台
![Amazon SQS 和 Lambda 節點之間的邊緣。](images/console-batch-servicemap-linkededge.png)
選取虛線邊緣以顯示接收到的事件年齡分佈圖,該分佈圖會對應消費者收到的事件存留時間分佈圖。每次接收事件時,都會計算年齡。
![與接收到的事件年齡直方圖邊緣。](images/console-servicemap-linkededgedetails-cw.png)
檢視連結的追蹤詳細
檢視從訊息生產者、Amazon SQS 佇列或 Lambda 取用者傳送的追蹤詳細資訊:
-
使用追蹤對應來選取訊息產生者、Amazon SQS 或 Lambda 取用者節點。
-
從節點詳細資料窗格中選擇檢視追蹤,以顯示追蹤清單。您也可以直接導覽至 CloudWatch 主控台內的 [追蹤] 頁面。
-
從清單中選擇特定追蹤,以開啟追蹤詳細資訊頁面。當所選追蹤屬於連結追蹤集的一部分時,追蹤詳細資訊頁面會顯示訊息。
追蹤詳細資料對映會顯示目前追蹤,以及上游和下游連結的軌跡,每一條線都包含在指示每個追蹤邊界的方塊中。如果目前選取的繪線連結至多個上游或下游軌跡,則會堆疊上游或下游連結繪線內的節點,並顯示「選取繪線」(S elect trace) 按鈕。
![多個連結的上游軌跡](images/console-batch-tracedetails-tracemap.png)
在繪線詳細資料對映下,會顯示追蹤區段的時間表,包括上游和下游連結的軌跡。如果有多條上游或下游連結的軌跡,則無法顯示其區段詳細資料。若要檢視一組連結繪線中單一繪線的區段詳細資訊,請依下節所述選取單一繪線。
![區段時間軸顯示連結軌跡](images/console-batch-tracedetails-timeline.png)
在一組連結的繪線中選取單一軌跡
將連結的繪線集篩選為單一繪線,以查看時間軸中的區段詳細資訊。
-
在繪線詳細資料地圖上,選擇連結繪線下方的「選取繪線」。將顯示軌跡清單。
-
選取追蹤旁邊的圓鈕,即可在追蹤詳細資訊對映中檢視該追蹤。
-
選擇「取消繪線選取」以檢視整組連結繪線。
當您在追蹤對應上選取節點或邊緣時,X-Ray 主控台會顯示延遲分佈圖。
Latency (延遲)
延遲是指請求開始和完成之間的時間。長條圖中顯示了延遲分佈。它會在 x 軸上顯示持續時間,在 y 軸上顯示符合每個持續時間的請求百分比。
此長條圖顯示的服務可在 300 毫秒內完成大多數請求。少許百分比的請求花費最多 2 秒,以及幾個異常值花費更多時間。
![延遲長條圖,其 x 軸上顯示持續時間,y 軸上顯示每個持續時間的請求百分比](images/scorekeep-servicemap-histogram.png)
解譯服務詳細資訊
服務長條圖和邊緣長條圖可從服務或申請者的角度,提供延遲的視覺化呈現。
-
按一下圓圈以選擇服務節點。X-Ray 會針對服務提供的要求顯示長條圖。延遲是由服務記錄的延遲,且不包含任何服務和申請者之間的網路延遲。
-
按一下兩個服務之間邊緣的線條或箭頭尖端來選擇邊緣。X-Ray 會針對下游服務所提供之要求者的要求,顯示長條圖。這些延遲是由申請者記錄的延遲,且包含兩個服務之間的網路連線延遲。
若要解譯 Service details (服務詳細資訊) 長條圖,您可以尋找與長條圖中大多數值差異最大的值。您可將這些「異常值」視為長條圖中的峰值,並檢視特定區域的追蹤資料以調查發生的情況。
若要查看依延遲篩選的追蹤,請在長條圖上選取範圍。按一下您想要選擇的起點位置,並從左到右拖曳,將要包含在追蹤篩選條件中的延遲範圍反白顯示。
![選取範圍以檢視追蹤,方法是按一下起點位置,並從左到右拖曳以建立追蹤篩選條件的範圍](images/scorekeep-servicemap-servicedetails-selection.png)
選取範圍之後,您可以選擇 Zoom (縮放),以僅檢視部分長條圖並縮小您的選擇範圍。
![選擇 Zoom (縮放) 以檢視長條圖中的選取範圍](images/scorekeep-servicemap-servicedetails-zoom.png)
一旦您設定好所需的焦點區域時,請選擇 View traces (檢視追蹤)。
AWS X-Ray 持續分析帳戶中的追蹤資料,以識別應用程式中的緊急問題。當故障率超過預期範圍時,它會創建一個洞察力,以記錄問題並跟踪其影響,直到解決為止。透過深入解析,您可以:
-
識別應用程式問題發生的位置、問題的根本原因以及相關影響。Insights 提供的影響分析可讓您衍生問題的嚴重性和優先順序。
-
在問題隨時間變化時接收通知。洞察通知可以使用 Amazon EventBridge 與您的監控和警示解決方案整合。此整合可讓您根據問題的嚴重性傳送自動電子郵件或警示。
X-Ray 主控台可識別追蹤圖中有持續發生事件的節點。若要查看見解摘要,請選擇受影響的節點。您也可以從左側的導覽窗格中選擇 [深入解析],以檢視和篩選 [見解]。
![帶有洞察摘要的跟踪映射節點。](images/console-insights-servicemap.png)
X-Ray 會在偵測到服務對應的一或多個節點中的異常時建立洞察。此服務會使用統計模型來預測應用程式中服務的預期故障率。在前面的例子中,異常是從 AWS Elastic Beanstalk中增加故障。Elastic Beanstalk 伺服器遇到多個 API 呼叫逾時,造成下游節點異常。
在 X-Ray 主控台中啟用深入解析
必須針對您想要使用深入解析功能的每個群組啟用深入解析。您可以從「群組」頁面啟用深入解析。
注意
X-Ray 使用 GetInsightSummaries GetInsight GetInsightEvents、和 GetInsightImpactGraph API 操作從見解中擷取資料。若要檢視見解,請使用 AWSXrayReadOnlyAccess IAM 受管政策,或將下列自訂政策新增至您的 IAM 角色:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "xray:GetInsightSummaries", "xray:GetInsight", "xray:GetInsightEvents", "xray:GetInsightImpactGraph" ], "Resource": [ "*" ] } ] }
如需詳細資訊,請參閱 如何與 IAM AWS X-Ray 搭配使用。
啟用見解通知
透過深入解析通知,系統會針對每個見解事件建立通知,例如深入解析建立、發生重大變更或關閉時。客戶可以透過 Amazon EventBridge 事件接收這些通知,並使用條件規則執行 SNS 通知、Lambda 叫用、將訊息發佈到 SQS 佇列或任何目標 EventBridge支援等動作。我們會盡力發出見解通知,但不能保證。如需有關目標的詳細資訊,請參閱 Amazon EventBridge 目標。
您可以從「群組」頁面為任何啟用見解的群組啟用見解通知。
啟用 X-Ray 群組的通知
若要設定 Amazon EventBridge 條件規則
-
導覽至左側導覽列中的「規則」,然後選擇「建立規則」。
-
提供規則的名稱和說明。
-
選擇 [事件模式],然後選擇 [自訂模式]。提供包含
"source": [ "aws.xray" ]
和的模式"detail-type": [ "AWS X-Ray Insight Update" ]
。以下是一些可能模式的範例。-
事件模式,以匹配所有來自 X-Ray 見解的傳入事件:
{ "source": [ "aws.xray" ], "detail-type": [ "AWS X-Ray Insight Update" ] }
-
要與指定的和相符的事件模
state
式category
:{ "source": [ "aws.xray" ], "detail-type": [ "AWS X-Ray Insight Update" ], "detail": { "State": [
"ACTIVE"
], "Category": ["FAULT"
] } }
-
-
選取並設定當事件符合此規則時要呼叫的目標。
-
(選擇性) 提供標籤,以便更輕鬆地識別並選取此規則。
-
選擇建立。
注意
X-Ray 洞察通知會將事件傳送至 Amazon EventBridge,而 Amazon 目前不支援客戶受管金鑰。如需詳細資訊,請參閱 AWS X-Ray 中的資料保護。
洞察概述
深入解析的概觀頁面會嘗試回答三個關鍵問題:
-
根本問題是什麼?
-
根本原因是什麼?
-
有什麼影響?
「異常服務」區段會顯示每個服務的時間表,說明事件期間的故障率變化。時間表會顯示實體頻帶上覆蓋故障的追蹤數目,根據記錄的流量指出預期的錯誤數目。洞察力的持續時間由「事件」窗口可視化。當 X-Ray 觀察到量度變得異常並在洞察活動時持續存在,事件窗口就會開始。
下列範例顯示造成事件的錯誤增加:
![X-Ray 洞察的概述頁面。](images/console-insights-overview.png)
「根本原因」區段會顯示針對根本原因服務和受影響路徑的追蹤對應。您可以選取「根本原因」對映右上角的眼睛圖示,以隱藏未受影響的節點。根本原因服務是 X-Ray 識別異常的最遠下游節點。它可以代表您已檢測的服務或您的服務使用已檢測的用戶端呼叫的外部服務。例如,如果您使用經過檢測的 AWS SDK 用戶端呼叫 Amazon DynamoDB,DynamoDB 的錯誤增加會導致使用 DynamoDB 做為根本原因的洞察。
若要進一步調查根本原因,請選取根本原因圖表上的檢視根本原因詳細資訊。您可以使用「分析」頁面來調查根本原因和相關訊息。如需詳細資訊,請參閱 與分析主控台互動。
![X-Ray 洞察的概述頁面。](images/console-insights-root-cause.png)
在地圖中繼續上游的錯誤可能會影響多個節點並導致多個異常。如果故障一路傳回提出要求的使用者,結果就是用戶端錯誤。這是跟踪映射的根節點的錯誤。影響圖表提供整個群組的用戶端體驗時間表。此體驗是根據下列狀態的百分比計算:「錯誤」、「錯誤」、「節流」和「正常」。
![X-Ray 事件的影響圖。](images/console-insights-impact.png)
此範例顯示發生事件期間根節點發生錯誤的追蹤增加。下游服務中的事件並不總是與用戶端錯誤的增加相對應。
選擇「分析洞察」會在視窗中開啟 X-Ray Analytics 主控台,您可以在其中深入瞭解產生深入分析的追蹤集。如需詳細資訊,請參閱 與分析主控台互動。
了解影響
AWS X-Ray 衡量由持續問題引起的影響,作為生成見解和通知的一部分。影響以兩種方式衡量:
-
對 X-Ray 組的影響。如需詳細資訊,請參閱設定群組
-
對根本原因服務的影響
此影響是由指定時間段內失敗或造成錯誤的要求百分比決定。此影響分析可讓您根據特定情況推導問題的嚴重性和優先順序。除了深入解析通知之外,此影響還可作為主控台體驗的一部分。
重複刪除
AWS X-Ray 洞察解決跨多個微服務的重複問題。它會使用異常偵測來判斷問題根本原因的服務,判斷其他相關服務是否因為相同的根本原因而呈現異常行為,並將結果記錄為單一分析。
查看洞察力的進度
X-Ray 會定期重新評估見解,直到解決為止,並將每個重要的中間變更記錄為通知,並以 Amazon EventBridge 事件的形式傳送。這可讓您建立程序和工作流程,以判斷問題在一段時間內變更的情況,並採取適當的動作,例如傳送電子郵件或使 EventBridge用與警示系統整合。
您可以在「檢查」頁面的「影響時間表」中檢閱事件事件。依預設,時間表會顯示受影響最嚴重的服務,直到您選擇不同的服務為止。
![檢查頁面與影響時間軸。](images/console-insights-inspect.png)
若要查看事件的追蹤對應和圖表,請從影響時間軸選擇它。追蹤對應會顯示應用程式中受事件影響的服務。在「影響分析」下,圖表會顯示所選節點和群組中從屬端的錯誤時間表。
![X-Ray 洞察的影響分析圖。](images/console-insights-inspect-analysis.png)
若要深入查看事件所涉及的追蹤,請選擇「檢查」頁面上的「分析事件」。您可以使用「分析」頁面來精簡追蹤清單,並識別受影響的使用者。如需詳細資訊,請參閱 與分析主控台互動。
AWS X-Ray Analytics 主控台是一種互動式工具,可用來解譯追蹤資料,以便快速瞭解應用程式及其基礎服務的執行情況。主控台可讓您透過互動的回應時間和時間序列圖表,探索、分析和視覺化追蹤。
在 Analytics 主控台中選取選項時,主控台會建構篩選條件以反映所有追蹤的所選子集。您可以按一下與目前追蹤集相關聯之指標和欄位的圖表和面板,使用愈益精細的篩選條件來精簡作用中的資料集。
X-Ray Analytics 主控台使用下列關鍵功能來分組、篩選、比較和量化追蹤資料。
功能
功能 | 描述 |
---|---|
Groups (群組) |
最初選取的群組是 |
Retrieved traces (已擷取的追蹤) |
根據預設,Analytics 主控台會根據所選群組中的所有追蹤產生圖表。已擷取的追蹤代表您工作集中的所有追蹤。您可在此圖標中找到追蹤計數。您套用到主要搜尋列的篩選條件表達式會精簡並更新擷取的追蹤。 |
Show in charts/Hide from charts (在圖表中顯示/隱藏) |
切換比較作用中的群組和已擷取的追蹤。若要針對任何作用中的篩選條件比較群組的相關資料,請選擇 Show in charts (在圖表中顯示)。若要從圖表中移除此檢視,請選擇 Hide from charts (在圖表中隱藏)。 |
Filtered trace set A (篩選過的追蹤集 A) |
透過與圖形和表格的互動,套用篩選器來建立已篩選追蹤集 A 的準則。 套用篩選器時,會在此拼貼中計算適用的繪線數目和擷取總計的繪線百分比。在 Filtered trace set A (篩選過的追蹤集 A) 圖標中,篩選條件填入為標籤,也可自圖標中移除。 |
Refine (精簡) |
此功能會根據套用到追蹤集 A 的篩選條件,更新擷取的追蹤集。縮小擷取的追蹤集範圍會更新根據追蹤集 A 篩選條件擷取之所有追蹤的初步集合。已擷取追蹤的初步集合是群組中所有追蹤的抽樣子集。 |
Filtered trace set B (篩選過的追蹤集 B) |
建立時,已篩選的追蹤集 B 是已篩選追蹤集 A 的複本。 若要比較這兩個追蹤集,請進行新的篩選選取項目,以套用至追蹤集 B,而追蹤集 A 會保持固定。套用篩選條件後,就會在此圖標內計算擷取自總量的適用追蹤數目與追蹤百分比。在 Filtered trace set B (篩選過的追蹤集 B) 圖標中,篩選條件填入為標籤,也可自圖標中移除。 |
Response time root cause entity paths (回應時間根本原因實體路徑) |
已記錄實體路徑的表格。X-Ray 確定軌跡中的哪個路徑最有可能導致回應時間的原因。格式指出實體遇到的階層,以回應時間根本原因結束。使用這些資料列篩選重複出現的回應時間故障。如需有關自訂根本原因篩選器和透過 API 取得資料的詳細資訊,請參閱中的 < 擷取和精簡根本原因分析 > 一節從 X-Ray 獲取數據。 |
Delta (�) |
當追蹤集 A 和追蹤集 B 都為作用中時,新增到指標表的欄。Delta 欄計算追蹤集 A 和追蹤集 B 之間的追蹤百分比差異。 |
X-Ray Analytics 主控台會產生兩個主要圖表,以協助您視覺化追蹤:回應時間分佈和時間序列活動。本節和下節各提供一個範例,說明閱讀圖表的基本知識。
以下是與回應時間折線圖相關聯的顏色 (時間序列圖使用相同的顏色組合):
-
群組中的所有痕跡 — 灰色
-
擷取的痕跡 — 橘色
-
已篩選的追蹤集 A — 綠色
-
已篩選的追蹤集 B — 藍色
範例 — 響應時間分佈
回應時間分發是顯示特定回應時間追蹤數的圖表。按一下並拖曳,在回應時間分發內選取範圍。這會選取特定回應時間內所有追蹤的 responseTime
工作追蹤集,並建立其篩選條件。
![顯示追蹤回應時間分佈的圖表。](images/analytics-responseTime.png)
時間序列活動圖會顯示特定期間的追蹤數目。顏色指標會鏡像回應時間分發的折線圖顏色。活動序列內的顏色區塊愈深愈滿,表示指定時間內的追蹤愈多。
範例 — 時間序列活動
按一下並拖曳,在時間序列活動圖中選取範圍。這會選取特定時間範圍內所有追蹤的 timerange
工作追蹤集,並建立篩選條件。
![選取範圍並建立篩選條件](images/analytics-timeSeries.png)
下列範例顯示 X-Ray 分析主控台的常見使用案例。每個範例都會示範主控台體驗的主要功能。因為是群組,所以範例會遵循基本的故障診斷工作流程。這些步驟會逐步解說如何先找出運作狀況不良節點,然後如何與 Analytics 主控台互動,以自動產生比較查詢。一旦透過查詢縮小範圍,您最終會看到特定追蹤的詳細資訊,以判斷是什麼損害伺服器的運作狀況。
追蹤對應會根據成功呼叫與錯誤和錯誤的比例加上色來指示每個節點的健全狀況。當您在節點上看到紅色百分比時,表示有故障。使用 X-Ray 分析主控台對其進行調查。
若要取得有關如何讀取軌跡地圖的更多資訊,請參閱〈使用 X-Ray 軌跡地圖〉。
![觀察故障](images/scorekeep-gettingstarted-servicemap-before-2021.png)
使用回應時間分發,您可以觀察回應時間的高峰。只要選取回應時間的高峰,就會更新圖表下方的資料表,公開所有相關聯的指標,例如狀態碼。
按一下並拖曳時,X-Ray 會選取並建立篩選。它會以灰色陰影顯示在圖形線條的頂部。您現在可以沿著分佈左右拖曳陰影,更新選取範圍和篩選條件。
![選取範圍並建立篩選條件](images/analytics-showFilterf.png)
您可以使用圖表下方的指標表,深入了解所選高峰的追蹤。按一下 HTTP STATUS CODE 表的資料列,即會自動建立工作資料集的篩選條件。例如,您可以檢視狀態碼為 500 的所有追蹤。這會在追蹤集圖標中建立名為 http.status
的篩選條件標籤。
深入了解以使用者、URL、回應時間根本原因或其他預先定義的屬性為基礎的錯誤集。例如,若要另行篩選狀態碼為 500 的追蹤集,請選取 USERS (使用者) 表中的資料列。這會讓追蹤集圖標出現兩個篩選條件標籤:之前已指定的http.status
以及 user
。
比較所有不同的使用者及其 POST 請求,尋找其他的差異和關聯性。套用您的第一組篩選條件。它們在回應時間分發中定義為藍色線條。然後選取 Compare (比較)。一開始,這會建立追蹤集 A 的篩選條件副本。
若要繼續,請定義一組新的篩選條件,套用到追蹤集 B。這第二組條件會以綠色線條表示。以下範例示範以藍綠顏色組合的不同線條。
![折線圖比較](images/analytics-compareLines.png)
當您使用主控台篩選條件縮小範圍時,指標表下的追蹤清單就會變得更有意義。追蹤清單表將 URL、USER (使用者) 和 STATUS CODE (狀態碼) 的相關資訊結合到一份檢視中。如需更多詳情,請選取此表的資料列開啟追蹤的 detail (詳細資訊) 頁面,檢視其時間軸和原始資料。
群組是一系列追蹤,為篩選條件表達式所定義。您可以使用群組產生其他服務圖表並提供 Amazon CloudWatch 指標。您可以使用主 AWS X-Ray 控台或 X-Ray API 來建立和管理服務的群組。本主題說明如何使用 X-Ray 主控台建立和管理群組。如需如何使用 X-Ray API 管理群組的相關資訊,請參閱使用 X-Ray API 設定取樣、群組和加密設定。
您可以建立追蹤對應、追蹤或分析的追蹤群組。當您建立群組時,群組會在所有三個頁面上的群組下拉式功能表中以篩選條件的形式提供:「追蹤對應」、「追蹤」和「分析」。
![群組功能表](images/group-menu.png)
群組會根據名稱或 Amazon Resource Name (ARN) 進行識別,且包含篩選條件表達式。此服務會比較傳入表達式的追蹤,並依序存放。如需如何建立篩選器運算式的詳細資訊,請參閱使用篩選表示式。
更新群組的篩選條件表達式不會變更已記錄的資料。更新僅適用於後續追蹤。這會導致圖表合併新舊表達式。若要避免這種情況,請刪除目前的群組並建立新群組。
注意
群組的計費方式是根據符合篩選條件表達式的擷取追蹤。如需詳細資訊,請參閱 AWS X-Ray 定價
建立群組
注意
您現在可以從 Amazon CloudWatch 主控台設定 X-Ray 群組。您也可以繼續使用 X-Ray 控制台。
套用群組
編輯群組
複製群組
複製群組會建立具有現有群組之篩選運算式和標記的新群組。當您複製群組時,新群組的名稱與複製來源群組的名稱相同,並-clone
附加在名稱之後。
刪除群組
請依照本節中的步驟刪除群組。您無法刪除「預設」群組。
在 Amazon 中查看群組指標 CloudWatch
建立群組後,傳入的追蹤會在儲存在 X-Ray 服務中時,根據群組的篩選器運算式進行檢查。符合每個條件的追蹤數量指標 CloudWatch 每分鐘都會發佈到 Amazon。選擇 「編輯群組」 頁面的檢視測量結果,可開啟「測量結果」頁面的 CloudWatch主控台 有關如何使用指 CloudWatch 標的詳細資訊,請參閱 Amazon 使用 CloudWatch 者指南中的使用 Amazon 指 CloudWatch標。
您可以使用主 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 服務讀取規則,就可以避免這兩個問題。服務會管理每個規則的儲槽,並根據執行中的執行個體數,將配額指派給每個服務執行個體來平均分散儲槽。儲槽限制是根據您設定的規則所計算。由於規則是在服務中配置的,因此您無需進行其他部署即可管理規則。如需 SDK 的詳細資訊,請參閱使用 AWS SDK。
注意
X-Ray 在應用採樣規則時採用盡最大努力的方法,在某些情況下,有效採樣率可能與配置的採樣規則不完全匹配。但是,隨著時間的推移,採樣的請求數量應該接近配置的百分比。
您現在可以從 Amazon CloudWatch 主控台設定 X-Ray 取樣規則。您也可以繼續使用 X-Ray 控制台。
抽樣規則選項
下列選項可用於每個規則。字串值可以使用萬用字元來以符合單一字元 (?
) 或零或多個字元 (*
)。
抽樣規則選項
-
規則名稱 (字串) — 規則的唯一名稱。
-
優先順序 (介於 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,您可以透過編寫程式設計的方式在排程上建立及更新規則,或是回應警示或通知。如需說明及其他規則範例,請參閱使用 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 守護進程。
您可以使用路由和查詢深入連結至特定追蹤,或篩選的追蹤和追蹤對應檢視。
追蹤
您可以為個別追蹤的時間表檢視、原始檢視及映射檢視建立連結。
追蹤時間軸 — xray/home#/traces/
trace-id
原始追蹤資料 — xray/home#/traces/
trace-id
/raw
範例 — 原始跟踪數據
https://console.aws.amazon.com/xray/home#/traces/1-57f5498f-d91047849216d0f2ea3b6442/raw
篩選條件表達式
連結到追蹤的篩選清單。
已篩選的追蹤檢視 — xray/home#/traces?filter=
filter-expression
範例 -過濾器表達式
https://console.aws.amazon.com/xray/home#/traces?filter=service("api.amazon.com") { fault = true OR responsetime > 2.5 } AND annotation.foo = "bar"
範例 -過濾器表達式(URL 編碼)
https://console.aws.amazon.com/xray/home#/traces?filter=service(%22api.amazon.com%22)%20%7B%20fault%20%3D%20true%20OR%20responsetime%20%3E%202.5%20%7D%20AND%20annotation.foo%20%3D%20%22bar%22
如需篩選條件表達式的詳細資訊,請參閱使用篩選表示式。
時間範圍
指定時間長度或開始及結束時間 (格式為 ISO8601)。時間範圍以 UTC 為單位,最長可達 6 小時。
時間長度 — xray/home#/
page
?timeRange=range-in-minutes
範例 — 最後一小時的跟踪圖
https://console.aws.amazon.com/xray/home#/service-map?timeRange=PT1H
開始和結束時間 — xray/home#/
page
?timeRange=start
~end
範例 — 時間範圍精確到秒
https://console.aws.amazon.com/xray/home#/traces?timeRange=2023-7-01T16:00:00~2023-7-01T22:00:00
範例 — 時間範圍精確到分鐘
https://console.aws.amazon.com/xray/home#/traces?timeRange=2023-7-01T16:00~2023-7-01T22:00
區域
指定 AWS 區域 要連結至該區域中的頁面。若您未指定區域,主控台會將您重新導向至最後一個前往的區域。
地區 — xray/home
?region=
#/region
page
範例 — 美國西部 (俄勒岡州) 的追蹤地圖 (us-west-2)
https://console.aws.amazon.com/xray/home?region=us-west-2#/service-map
當您將 Region 與其他查詢參數加入時,Region 查詢會在雜湊之前進行,而 X 射線特定的查詢會在頁面名稱之後進行。
範例 — 美國西部(俄勒岡州)最後一小時的跟踪地圖(美國西部 -2)
https://console.aws.amazon.com/xray/home?region=us-west-2#/service-map?timeRange=PT1H
合併
範例 — 帶有持續時間過濾器的最近痕跡
https://console.aws.amazon.com/xray/home#/traces?timeRange=PT15M&filter=duration%20%3E%3D%205%20AND%20duration%20%3C%3D%208
輸出
-
頁面 — 追蹤
-
時間範圍 — 最近 15 分鐘
-
過濾器 — 持續時間 >= 5 和持續時間 <= 8