使用 Amazon CloudWatch 互聯網監視器查詢界面 - Amazon CloudWatch

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

使用 Amazon CloudWatch 互聯網監視器查詢界面

若要進一步瞭解 AWS 應用程式的網際網路流量,其中一個選項是使用 Amazon CloudWatch 網際網路監視器查詢介面。若要使用查詢介面,請使用您選擇的資料篩選條件來建立查詢,然後執行查詢,以傳回網路監視器資料的子集。探索查詢傳回的資料,這可讓您深入了解應用程式在網際網路上的執行情況。

您可查詢並探索網路監視器使用監視器擷取的所有指標,包括可用性和效能分數、傳輸的位元組、往返時間和第一個位元組的時間 (TTFB)。

網路監視器使用查詢介面來提供您可在網路監視器主控台儀表板中探索的資料。使用儀表板中的搜尋選項 (位於歷史總管索引標籤或流量洞察索引標籤),您可查詢和篩選應用程式的網際網路資料。

如果您希望探索和篩選資料的彈性比儀表板所提供的資料更有彈性,您可以透過搭配 AWS Command Line Interface 或 AWS SDK 使用 Internet Monitor API 作業,自行使用查詢介面。本節會介紹可與查詢介面搭配使用的查詢類型,以及您可指定用於建立資料子集的篩選條件,以取得應用程式網際網路流量的相關洞察。

如何使用查詢介面

您可選擇查詢類型,然後指定篩選值,以使用查詢介面建立查詢,進而傳回所需的特定日誌檔案資料子集。然後,您可使用資料子集,進一步篩選和排序、建立報告等等。

查詢運作程序如下:

  1. 當您執行查詢時,網路監視器會傳回對查詢而言不重複的 query ID。本節會描述可用的查詢類型,以及在查詢中篩選資料的選項。若要了解運作方式,您還可檢閱查詢範例章節。

  2. 您可以使用 GetQueryResultsAPI 作業指定您的監視器名稱的查詢 ID,以傳回查詢的資料結果。每個查詢類型都會傳回不同的資料集欄位。若要進一步了解,請參閱取得查詢結果

查詢介面提供下列三種查詢類型。每個查詢類型都會從日誌檔案傳回有關流量的不同資訊集,如下所示。

  • 測量:以 5 分鐘的間隔提供可用性分數、效能分數、總流量和往返時間。

  • 熱門位置:依流量量,提供您監視的最上層位置和 ASN 組合的可用性分數、效能分數、總流量和第一位元組時間 (TTFB) 資訊。

  • 熱門位置詳細資訊:每隔 1 小時提供適用於 Amazon 的 TTFB CloudFront、您目前的組態以及效能最佳的 Amazon EC2 組態。

使用這些查詢類型,您可指定下列一個或多個條件來篩選更多資料:

  • AWS location:對於 AWS 位置,您可以指定 CloudFront 或 AWS 區域us-east-2,例如us-west-2,,等等。

  • ASN:指定 ASN,這通常是網際網路服務供應商 (ISP)。

  • 用戶端位置:針對位置,請指定城市、都會區、行政區或國家/地區。

  • 地理:針對某些查詢指定 geo。這對於使用 Top locations 查詢類型的查詢為必要,但對於其他查詢類型則不允許。若要了解何時指定 geo 來篩選參數,請參閱查詢範例章節。

您可用來篩選資料的運算子為 EQUALSNOT_EQUALS。如需篩選參數的詳細資訊,請參閱 FilterParameterAPI 作業。

若要查看有關查詢界面操作的詳細資訊,請參閱 Amazon CloudWatch 網際網路監控器 API 參考指南中的下列 API 操作:

  • 若要建立並執行查詢,請參閱 StartQueryAPI 作業。

  • 若要停止查詢,請參閱 StopQueryAPI 作業。

  • 若要傳回已建立之查詢的資料,請參閱 GetQueryResultsAPI 作業。

  • 若要擷取查詢的狀態,請參閱 GetQueryStatusAPI 作業。

查詢範例

若要建立可用來從監視器的記錄檔擷取一組篩選資料的查詢,請使用 StartQueryAPI 作業。您可指定查詢的查詢類型和篩選參數。然後,當您使用網路監視器查詢介面 API 操作,藉由查詢來取得查詢結果時,它會擷取您想要使用的資料子集。

為了說明查詢類型和篩選參數的運作方式,我們來看一些範例。

範例 1

假設您想要擷取特定國家/地區 (一個城市除外) 的所有監視器日誌資料。下列範例顯示了您可針對此案例,使用 StartQuery 操作建立查詢的篩選參數。

{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "MEASUREMENTS" FilterParameters: [ { Field: "country", Operator: "EQUALS", Values: ["Germany"] }, { Field: "city", Operator: "NOT_EQUALS", Values: ["Berlin"] }, ] }

範例 2

另舉一例,假設您想要按都會區查看熱門位置。您可針對此案例使用下列範例查詢。

{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "TOP_LOCATIONS" FilterParameters: [ { Field: "geo", Operator: "EQUALS", Values: ["metro"] }, ] }

範例 3

現在,假設您想要看到洛杉磯都會區的熱門城市網路組合。若要執行此操作,請指定 geo=city,然後將 metro 設定為洛杉磯。現在,該查詢會傳回洛杉磯都會區的熱門城市網路,而不是整個熱門的都會區 + 網路。

以下是您可使用的範例查詢:

{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "TOP_LOCATIONS" FilterParameters: [ { Field: "geo", Operator: "EQUALS", Values: ["city"] }, { Field: "metro", Operator: "EQUALS", Values: ["Los Angeles"] } ] }

範例 4

最後,假設您想要擷取特定行政區 (例如,美國州) 的 TTFB 資料。

以下是此案例的範例查詢:

{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "TOP_LOCATION_DETAILS" FilterParameters: [ { Field: "subdivision", Operator: "EQUALS", Values: ["California"] }, ] }

取得查詢結果

定義查詢之後,您可以透過執行另一個網際網路監視器 API 作業,傳回一組包含查詢的結果GetQueryResults。執行 GetQueryResults 時,您可指定已定義查詢的查詢 ID,以及監視器的名稱。GetQueryResults 會將指定查詢的資料擷取至結果集。

執行查詢時,請確定查詢已完成執行,然後再使用 GetQueryResults 來查看結果。您可以使用 GetQueryStatusAPI 作業判斷查詢是否已完成。當查詢的 StatusSUCCEEDED 時,您可繼續檢閱結果。

查詢完成後,您可使用下列資訊來協助您檢閱結果。您用於建立查詢的每個查詢類型都包括日誌檔案中不重複的資料集欄位,如下列清單所述:

衡量值

measurements 查詢類型會傳回下列資料:

timestamp, availability, performance, bytes_in, bytes_out, rtt_p50, rtt_p90, rtt_p95

熱門位置

top locations 查詢類型會依位置對資料分組,並提供一段時間的平均資料。傳回的資料包含下列內容:

aws_location, city, metro, subdivision, country, asn, availability, performance, bytes_in, bytes_out, current_fbl, best_ec2, best_ec2_region, best_cf_fbl

請注意,只有在您針對 geo 欄位選擇該位置類型時,才會傳回 citymetrosubdivision。視乎您為 geo 指定的位置類型會傳回下列位置欄位:

city = city, metro, subdivision, country metro = metro, subdivision, country subdivision = subdivision, country country = country
熱門位置詳細資訊

top locations details 查詢類型會傳回依小時分組的資料。查詢會傳回下列資料:

timestamp, current_service, current_fbl, best_ec2_fbl, best_ec2_region, best_cf_fbl

當您執行 GetQueryResults API 操作時,網路監視器會在回應中傳回下列項目:

  • 包含查詢傳回結果的資料字串陣列。資訊會在與 Fields 欄位相符的陣列中傳回,也會透過 API 呼叫傳回。使用 Fields 欄位,您可剖析 Data 儲存器中的資訊,然後根據您的用途進一步篩選或排序。

  • 欄位陣列會列出查詢傳回資料的欄位 (在 Data 欄位回應中)。陣列中的每個項目都是一個名稱-資料類型對,例如 availability_score-float

故障診斷

如果在使用查詢界面 API 操作時傳回錯誤,請確認您具有使用 Amazon CloudWatch 網際網路監控器所需的許可。特別確認您具有下列許可:

internetmonitor:StartQuery internetmonitor:GetQueryStatus internetmonitor:GetQueryResults internetmonitor:StopQuery

這些權限包含在建議的 AWS Identity and Access Management 原則中,以便在主控台中使用 [網際網路監視器] 儀表板。如需詳細資訊,請參閱 Amazon CloudWatch 互聯網監控器的 IAM 許可