本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用網路監視器查詢界面
進一步了解 AWS 應用程式網際網路流量的選項是使用網路監視器查詢界面。若要使用查詢介面,請使用您選擇的資料篩選條件來建立查詢,然後執行查詢,以傳回網路監視器資料的子集。探索查詢傳回的資料,這可讓您深入了解應用程式在網際網路上的執行情況。
您可查詢並探索網路監視器使用監視器擷取的所有指標,包括可用性和效能分數、傳輸的位元組、往返時間和第一個位元組的時間 (TTFB)。
網路監視器使用查詢介面來提供您可在網路監視器主控台儀表板中探索的資料。透過在儀表板中使用搜尋選項,您可以在分析頁面或最佳化頁面上查詢和篩選應用程式的網際網路資料。
如果您想要比儀表板提供更多探索和篩選資料的彈性,您可以自行使用查詢界面,方法是搭配 AWS Command Line Interface 或 AWS SDK 使用網路監視器 API 操作。本節會介紹可與查詢介面搭配使用的查詢類型,以及您可指定用於建立資料子集的篩選條件,以取得應用程式網際網路流量的相關洞察。
如何使用查詢介面
您可選擇查詢類型,然後指定篩選值,以使用查詢介面建立查詢,進而傳回所需的特定日誌檔案資料子集。然後,您可使用資料子集,進一步篩選和排序、建立報告等等。
查詢運作程序如下:
當您執行查詢時,網路監視器會傳回對查詢而言不重複的
query ID
。本節會描述可用的查詢類型,以及在查詢中篩選資料的選項。若要了解運作方式,您還可檢閱查詢範例章節。您可使用 GetQueryResults API 操作,指定監視器名稱的查詢 ID,以傳回查詢的資料結果。每個查詢類型都會傳回不同的資料集欄位。若要進一步了解,請參閱取得查詢結果。
查詢介面提供下列查詢類型。每個查詢類型都會從日誌檔案傳回有關流量的不同資訊集,如下所示。
測量:每隔 5 分鐘提供可用性分數、效能分數、總流量和往返時間。
最高位置:依流量提供您要監控的最高位置和 ASN 組合的可用性分數、效能分數、總流量和第一個位元組的時間 (TTFB) 資訊。
熱門位置詳細資訊:每隔 1 小時提供 Amazon CloudFront 的 TTFB、您目前的組態,以及效能最佳的 Amazon EC2 組態。
整體流量建議:針對每個受監控 AWS 位置中的所有流量,使用 30 天的加權平均值提供 TTFB。
整體流量建議詳細資訊:針對提議 AWS 的位置,使用每個最高位置的 30 天加權平均值提供 TTFB。
路由建議:提供從 IP 字首到 DNS 解析程式 AWS 位置的預測平均往返時間 (RTT)。RTT 的計算間隔為一小時,期間為一小時。
您可以使用特定條件來篩選更多資料。對於大多數查詢類型,除了路由建議之外,您可以透過指定下列一或多個條件進行篩選:
locationAWS :對於 AWS 位置,您可以指定 CloudFront 或 AWS 區域,例如
us-east-2
。ASN:指定 DNS 解析程式 (通常是 ISP) 的自主系統編號 (ASN),例如 4225。
用戶端位置:針對位置,請指定城市、都會區、行政區或國家/地區。
建議 AWS 的位置:指定 AWS 區域,例如
us-east-2
或 AWS Local Zone。您可以使用此篩選條件搭配整體流量建議詳細資訊查詢類型。地理:針對某些查詢指定
geo
。這對於使用Top locations
查詢類型的查詢為必要,但對於其他查詢類型則不允許。若要了解何時指定geo
來篩選參數,請參閱查詢範例章節。
對於路由建議查詢類型,您可以指定下列一或多個條件來篩選更多資料:
目前 AWS 位置:指定 AWS 區域,例如
us-east-2
。建議 AWS 的位置:指定 AWS 區域,例如
us-east-2
或 AWS Local Zone。IPv4 字首:以標準格式指定 IPv4 字首,類似於
192.0.2.0/24
。監控 ARN:指定特定監視器的 ARN。
DNS 解析程式 IP:指定 DNS 解析程式的 IP 地址。
DNS 解析程式 ISP:指定 DNS 解析程式的名稱 (通常是 ISP),例如
Cloudflare
。DNS 解析程式 ASN:指定 DNS 解析程式的自動系統編號 (ASN),例如 4225。
您可用來篩選資料的運算子為 EQUALS
和 NOT_EQUALS
。如需篩選參數的詳細資訊,請參閱 FilterParameter API 操作。
若要查看查詢界面操作的詳細資訊,請參閱《 網路監視器 API 參考指南》中的下列 API 操作:
若要建立和執行查詢,請參閱 StartQuery API 操作。
若要停止查詢,請參閱 StopQuery API 操作。
若要傳回已建立查詢的資料,請參閱 GetQueryResults API 操作。
若要擷取查詢的狀態,請參閱 GetQueryStatus API 操作。
查詢範例
若要建立您可用於從監視器日誌檔案擷取篩選資料集的查詢,請使用 StartQuery API 操作。您可指定查詢的查詢類型和篩選參數。然後,當您使用網路監視器查詢介面 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
來查看結果。您可使用 GetQueryStatus API 操作來判斷查詢是否已完成。當查詢的 Status
為 SUCCEEDED
時,您可繼續檢閱結果。
查詢完成後,您可使用下列資訊來協助您檢閱結果。您用於建立查詢的每個查詢類型都包括日誌檔案中不重複的資料集欄位,如下列清單所述:
- 衡量值
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
欄位選擇該位置類型時,才會傳回city
、metro
和subdivision
。視乎您為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
當您執行 GetQueryResults
API 操作時,網路監視器會在回應中傳回下列項目:
包含查詢傳回結果的資料字串陣列。資訊會在與
Fields
欄位相符的陣列中傳回,也會透過 API 呼叫傳回。使用Fields
欄位,您可剖析Data
儲存器中的資訊,然後根據您的用途進一步篩選或排序。欄位陣列會列出查詢傳回資料的欄位 (在
Data
欄位回應中)。陣列中的每個項目都是一個名稱-資料類型對,例如availability_score
-float
。
故障診斷
如果使用查詢介面 API 操作時傳回錯誤,請確認您具有使用網路監視器所需的許可。特別確認您具有下列許可:
internetmonitor:StartQuery internetmonitor:GetQueryStatus internetmonitor:GetQueryResults internetmonitor:StopQuery
這些許可包含在建議的 AWS Identity and Access Management 政策中,以在 主控台中使用網路監視器儀表板。如需詳細資訊,請參閱AWS 網路監視器的 受管政策。