使用 Amazon CloudWatch Internet Monitor 查詢介面 - Amazon CloudWatch

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

使用 Amazon CloudWatch Internet Monitor 查詢介面

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

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

網路監視器使用查詢介面來提供您可在網路監視器主控台儀表板中探索的資料。透過在儀表板中使用搜尋選項,您可以在分析頁面或最佳化頁面上查詢和篩選應用程式的網際網路資料。

如果您想要比儀表板提供的更彈性來探索和篩選資料,您可以自行使用查詢介面,方法是搭配 AWS Command Line Interface 或 使用網際網路監視器API操作 AWS SDK。本節會介紹可與查詢介面搭配使用的查詢類型,以及您可指定用於建立資料子集的篩選條件,以取得應用程式網際網路流量的相關洞察。

如何使用查詢介面

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

查詢運作程序如下:

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

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

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

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

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

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

  • 整體流量建議:TTFB使用 30 天加權平均值,為每個受監控 AWS 位置中的所有流量提供 。

  • 整體流量建議詳細資訊:針對建議 AWS 的位置,使用每個最高位置TTFB的 30 天加權平均值提供 。

  • 路由建議:提供從 IP 字首到DNS解析程式 AWS 位置的預測平均往返時間 (RTT)。RTT 會以一小時的間隔,在一小時的期間內計算。

您可以使用特定條件來篩選更多資料。對於大多數查詢類型,除了路由建議之外,您可以透過指定下列一或多個條件來篩選:

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

  • ASN:指定DNS解析器的自發系統編號 (ASN) (通常為 ISP),例如 4225。

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

  • 建議 AWS 的位置:指定 AWS 區域,例如 us-east-2。您可以將此篩選條件與整體流量建議詳細資訊查詢類型搭配使用。

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

對於路由建議查詢類型,您可以指定下列一或多個條件來篩選更多資料:

  • 目前 AWS 位置:指定 AWS 區域,例如 us-east-2

  • 建議 AWS 的位置:指定 AWS 區域,例如 us-east-2

  • IPv4 字首:以標準格式指定IPv4字首,類似於 192.0.2.0/24

  • 監視器 ARN:ARN為特定監視器指定 。

  • DNS 解析器 IP:指定DNS解析器的 IP 地址。

  • DNS 解析程式 ISP:指定DNS解析程式的名稱 (通常是 ISP),例如 Cloudflare

  • DNS 解析程式 ASN:指定DNS解析程式的自發系統編號 (ASN),例如 4225。

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

若要查看查詢介面操作的詳細資訊,請參閱 Amazon CloudWatch Internet Monitor 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"] }, ] }

範例 5

現在,假設您想要擷取應用程式具有用戶端流量的每個位置TTFB的資料。

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

{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "OVERALL_TRAFFIC_SUGGESTIONS" FilterParameters: [] } Results: [us-east-1, 40, us-west-2, 30], [us-east-1, 40, us-west-1, 35], [us-east-1, 40, us-east-1, 44], [us-east-1, 40, CloudFront, 22], ... [us-east-2, 44, us-west-2, 30], [us-east-2, 44, us-west-1, 35], ...

範例 6

假設您想要擷取特定新 TTFB的資料 AWS 區域。

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

{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "OVERALL_TRAFFIC_SUGGESTIONS_DETAILS" FilterParameters: [ { Field: "proposed_aws_location", Operator: "EQUALS", Values: ["us-west-2"] }, ] } Results: [San Jose, San Jose-Santa Clara, California, United States, 7922, us-east-1, 40, 350, 350, us-west-2, 45] [San Jose, San Jose-Santa Clara, California, United States, 7922, us-west-1, 35, 450, 450, us-west-2, 45]

範例 7

最後一個範例是擷取特定DNS解析器的資料。

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

{ MonitorName: "TestMonitor" StartTime: "2023-07-12T20:00:00Z" EndTime: "2023-07-12T21:00:00Z" QueryType: "ROUTING_SUGGESTIONS" FilterParameters: [ { Field: "proposed_aws_location", Operator: "EQUALS", Values: ["us-east-1"] }, ] } Results: [162.158.180.245, 13335, Cloudflare, [5.4.0.0/14], us-east-2, 200.0, us-east-1, 160.0] [162.158.180.243, 13313, Cloudflare, [5.4.0.0/10], us-east-2, 150.0, us-east-1, 125.0]

取得查詢結果

定義查詢之後,您可以執行另一個網際網路監視器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

整體流量建議

overall traffic suggestions 查詢類型會傳回依小時分組的資料。查詢會傳回下列資料:

current_aws_location, proposed_aws_location, average_fbl, traffic, optimized_traffic_excluding_cf, optimized_traffic_including_cf

整體流量建議詳細資訊

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

aws_location, city, metro, subdivision, country, asn, traffic, current_aws_location, fbl_data

路由建議

routing suggestions 查詢類型會傳回依小時分組的資料。查詢會傳回下列資料:

dns_resolver_ip, dns_resolver_asn, dns_resolver_isp, ipv4_prefixes, current_aws_location, current_latency, proposed_aws_location, proposed_latency

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

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

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

故障診斷

如果使用查詢介面API操作時傳回錯誤,請確認您具有使用 Amazon CloudWatch Internet Monitor 所需的許可。特別確認您具有下列許可:

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

這些許可包含在建議的 AWS Identity and Access Management 政策中,以使用主控台中的網際網路監視器儀表板。如需詳細資訊,請參閱AWS Amazon CloudWatch Internet Monitor 的 受管政策