本文將說明分析檢視畫面,以及建議建立這些檢視畫面的時機。並說明分析檢視畫面與您可能熟悉的概念之間的差異,例如記錄檢視畫面和儲存的查詢。
如要瞭解如何建立、查詢及管理數據分析檢視表,請參閱「建立及查詢數據分析檢視表」。
總覽
數據分析檢視畫面是可查詢的資源。這項資源包含 SQL 查詢,可查詢一或多個記錄檢視畫面。
記錄檔值區的記錄檔檢視畫面會控管您可查看的記錄檔值區記錄項目。您可以使用 Logs Explorer 和 Log Analytics 頁面查詢記錄檔檢視畫面。無論是哪種情況,查詢的資料格式都由 LogEntry
資料結構決定。
分析檢視畫面包含的 SQL 查詢,可讓您將一或多個記錄檢視畫面中的記錄資料轉換為自訂格式。也就是說,您可以篩選記錄檢視畫面中哪些記錄項目會提供查詢結果,並定義結果的資料欄。例如,您可以捨棄資料欄、將資料從巢狀 JSON 欄位移至資料欄,或新增資料欄。
Analytics 資料檢視不是具體化檢視表。分析資料檢視並非預先計算的資料檢視,不會定期快取查詢結果。因此,查詢 Analytics 檢視表,等同於查詢 Analytics 檢視表查詢的記錄檢視表。
分析資料檢視和儲存的查詢都包含 SQL 查詢。不過,您可以查詢資料檢視。您可以重新執行已儲存的查詢,但無法查詢已儲存查詢的結果。
數據分析資料檢視類型
數據分析檢視畫面分為兩種:使用者定義和系統定義:
使用者定義的 Analytics 資料檢視是指您建立的任何 Analytics 資料檢視。您可以查詢、編輯及刪除使用者定義的數據分析檢視畫面。
系統定義的數據分析檢視畫面是Google Cloud 服務建立的數據分析檢視畫面。您可以查詢系統定義的 Analytics 檢視畫面。但您無法編輯或刪除這些資料。
如要瞭解如何在Google Cloud 專案中列出 Analytics 檢視畫面,請參閱「列出 Analytics 檢視畫面」。
數據分析檢視畫面的位置
分析檢視區的位置取決於查詢資源的位置。舉例來說,如果 Analytics 檢視畫面查詢位於 global
位置的記錄檔檢視畫面,則 Analytics 檢視畫面的位置也必須是 global
。使用 Google Cloud 控制台建立 Analytics 檢視時,系統會自動設定位置。
數據分析檢視畫面的優點
分析檢視畫面的主要優點是,您可以轉換記錄資料,並為其他查詢建立一致的結構定義。不過,您也可能發現,建立數據分析檢視畫面後,就能減少編寫查詢的時間,或改善查詢結構。由於數據分析檢視表並非具體化檢視表,因此使用數據分析檢視表不一定能縮短查詢時間。
範例:資料轉換
假設您使用虛擬私有雲流程記錄檔分析網路效能。您必須分析整體網路效能,並能夠識別特定網路、IP 位址或主機。很抱歉,您需要的資訊包含在記錄項目 json_payload
欄位的巢狀欄位中。
如要從記錄項目中擷取這項資訊,請編寫下列查詢,然後將查詢儲存為名為 network_details
的 Analytics 檢視畫面:
SELECT
JSON_VALUE(resource.labels.subnetwork_name) subnetwork_name,
JSON_VALUE(json_payload.src_instance.vm_name) vm_name,
JSON_VALUE(json_payload.connection.src_ip) as src_ip,
JSON_VALUE(json_payload.connection.src_port) as src_port,
JSON_VALUE(json_payload.connection.dest_ip) as dest_ip,
JSON_VALUE(json_payload.connection.dest_port) as dest_port,
CAST(JSON_VALUE(json_payload.bytes_sent) as INT64) as bytes_sent,
CAST(JSON_VALUE(json_payload.packets_sent) as INT64) as packets_sent
FROM `TABLE_NAME_OF_LOG_VIEW`
WHERE
log_id = "compute.googleapis.com/vpc_flows"
AND SEARCH(json_payload.reporter, "SRC")
如要分析網路效能,現在可以查詢 Analytics 檢視畫面。舉例來說,如果您只想知道執行個體的名稱和傳送的資料量,可以編寫下列查詢:
SELECT vm_name, bytes_sent, packets_sent,
FROM `analytics_view.my_project.global.network_details`
ORDER BY bytes_sent DESC
LIMIT 100
範例:API 延遲分析的基本查詢
假設您負責評估並總結一週間的請求延遲情形。其他團隊會使用每週成效分析資料,做為其他分析的基礎。
您建立的分析檢視畫面可供其他團隊查詢,並會回報完成要求的最低、最高和平均延遲時間,這些資訊是透過特定記錄檢視畫面中的記錄項目記錄而來:
SELECT week,MIN(took_ms) as min , MAX(took_ms) AS max, AVG(took_ms) AS avg
FROM (
SELECT TIMESTAMP_TRUNC(timestamp, WEEK) AS week,
CAST( JSON_VALUE(json_payload, '$."http.resp.took_ms"') AS INT64) as took_ms
FROM `TABLE_NAME_OF_LOG_VIEW`
WHERE json_payload IS NOT NULL
AND SEARCH(labels,"frontend")
AND JSON_VALUE(json_payload.message) = "request complete"
ORDER BY took_ms DESC, timestamp ASC
)
GROUP BY week ORDER BY week
必要的 IAM 角色和權限
由於資料檢視會查詢記錄檢視,因此您必須具備 IAM 角色,才能建立及查詢資料檢視,並使用 Log Analytics。本節列出建立 Analytics 檢視畫面所需的 IAM 角色,以及查詢記錄檢視畫面和使用 Log Analytics 所需的角色:
-
如要取得建立、管理及使用 Analytics 檢視畫面所需的權限,請要求管理員為您授予專案的 Observability Analytics 使用者 (
roles/observability.analyticsUser
) IAM 角色。這個預先定義的角色具備建立、管理及使用數據分析檢視畫面所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
您必須具備下列權限,才能建立、管理及使用數據分析檢視:
-
observability.analyticsViews.get
-
observability.analyticsViews.list
-
observability.analyticsViews.create
-
observability.analyticsViews.update
-
observability.analyticsViews.delete
-
-
如要取得查詢記錄檢視畫面和使用記錄檔分析功能所需的權限,請要求管理員為您授予專案的下列 IAM 角色:
-
如要查詢
_Required
和_Default
記錄檔值區: 記錄檢視器 (roles/logging.viewer
) -
如要查詢專案中的所有記錄檢視畫面:
記錄檢視存取器 (
roles/logging.viewAccessor
)
您可以將主體限制為特定記錄檢視畫面,方法是將 IAM 條件新增至專案層級的記錄檢視畫面存取者角色授權,或是將 IAM 繫結新增至記錄檢視畫面的政策檔案。詳情請參閱「控管對記錄檢視畫面的存取權」。
如要瞭解需要額外角色才能查詢使用者定義值區的檢視畫面,或查詢
_Default
記錄值區的_AllLogs
檢視畫面,請參閱「Cloud Logging 角色」一文。 -
如要查詢
限制
以下限制適用於數據分析檢視畫面:
- 一個數據分析檢視畫面無法查詢另一個數據分析檢視畫面。
- 分析檢視畫面可以查詢多個記錄檢視畫面。不過,代管查詢記錄檢視表的記錄值區必須位於同一個位置。舉例來說,假設您有兩個記錄值區,一個位於
us-east1
,另一個位於asia-east1
。您無法建立可查詢這些記錄資料集的記錄檢視畫面的數據分析檢視畫面。 - 數據分析檢視畫面的父項資源必須是 Google Cloud 專案。您無法在資料夾或機構中建立 Analytics 檢視畫面。
- 資料檢視不支援已連結的資料集。因此,您只能使用「記錄檔分析」頁面查詢數據分析檢視畫面。此外,您必須在預設的 Cloud Logging 服務上執行這些查詢。
- 我們沒有提供 API 支援,因此無法建立或管理數據分析檢視畫面。
以下限制適用於數據分析檢視畫面:
- 每項 Google Cloud 專案的數據分析檢視畫面數量上限:100
- 每項 Google Cloud 專案,每個區域的 Analytics 檢視畫面數量上限:50
- 每項 Google Cloud 專案可儲存的數據分析檢視區域數量上限:10