本文說明 Analytics 檢視區,以及建立檢視區的時機。此外,本文也會說明分析檢視畫面與您可能熟悉的概念 (例如記錄檢視畫面和已儲存的查詢) 之間的差異。
如要瞭解如何建立、查詢及管理 Analytics 檢視區塊,請參閱「建立及查詢 Analytics 檢視區塊」。
總覽
資料分析檢視區是可查詢的資源。這項資源包含 SQL 查詢,可查詢一或多個記錄檢視畫面。
記錄檔 bucket 中的記錄檢視畫面可控管您能查看的記錄檔 bucket 記錄項目。您可以使用 Logs Explorer 和「記錄檔分析」頁面查詢記錄檢視畫面。無論是哪種情況,查詢資料的格式都是由 LogEntry
資料結構決定。
分析檢視區塊所含的 SQL 查詢可讓您將一或多個記錄檢視區塊中的記錄資料轉換為自訂格式。也就是說,您可以篩選記錄檢視畫面中的哪些記錄項目會影響查詢結果,並定義結果的資料欄。舉例來說,您可以捨棄資料欄、將巢狀 JSON 欄位中的資料移至資料欄,或是新增資料欄。
Analytics 資料檢視不是具體化檢視。 分析資料檢視不是預先計算的檢視,不會定期快取查詢結果。因此,查詢 Analytics 資料檢視等同於查詢 Analytics 資料檢視所查詢的記錄檢視。
分析檢視區和已儲存的查詢都包含 SQL 查詢。不過,分析資料檢視是可查詢的資源。 您可以重新執行已儲存的查詢,但無法查詢已儲存查詢的結果。
數據分析檢視類型
分析檢視畫面分為兩種:使用者定義和系統定義:
使用者定義的 Analytics 資料檢視是指您建立的任何 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")
如要分析電視網成效,現在可以查詢您的分析檢視畫面。舉例來說,如果您只對執行個體的名稱和傳送的資料量感興趣,可以編寫下列查詢:
SELECT vm_name, bytes_sent, packets_sent,
FROM `analytics_view.my_project.global.network_details`
ORDER BY bytes_sent DESC
LIMIT 100
範例:API 延遲分析的基本查詢
假設您的任務是評估並彙整每週間隔的請求延遲時間。其他團隊會以每週成效分析資料為基礎,進行其他分析。
您建立的 Analytics 檢視畫面可供其他團隊查詢,並根據特定記錄檢視畫面中的記錄項目,回報已完成要求的最低、最高和平均延遲時間:
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 角色和權限
由於 Analytics 資料檢視會查詢記錄檔資料檢視,因此您的 IAM 角色也必須允許您查詢記錄檔資料檢視,並使用 Log Analytics,才能建立及查詢 Analytics 資料檢視。本節列出建立 Analytics 檢視區塊所需的 IAM 角色,以及查詢記錄檢視區塊和使用記錄檔分析所需的角色:
-
如要取得建立、管理及使用 Analytics 檢視畫面所需的權限,請要求管理員授予您專案的「可觀測性 Analytics 使用者」 (
roles/observability.analyticsUser
) IAM 角色。這個預先定義的角色具備建立、管理及使用數據分析檢視畫面所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:
所需權限
如要建立、管理及使用 Analytics 資料檢視,必須具備下列權限:
-
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 角色」一文。 -
如要查詢
限制
分析檢視畫面有下列限制:
- 分析檢視畫面無法查詢其他分析檢視畫面。
- 分析檢視區塊可以查詢多個記錄檢視區塊。不過,主機代管所查詢記錄檢視區的記錄 bucket 必須位於同一位置。舉例來說,假設您有兩個記錄值區,一個位於
us-east1
,另一個位於asia-east1
。您無法建立分析檢視區塊,查詢這些記錄檔儲存空間中的記錄檔檢視區塊。 - Analytics 檢視區塊的父項資源必須是 Google Cloud 專案。您無法在資料夾或機構中建立 Analytics 檢視區。
- 分析檢視區不支援連結的資料集。因此,您只能使用「記錄檔分析」頁面查詢 Analytics 檢視畫面。此外,您必須在預設的 Cloud Logging 服務上執行這些查詢。
- 無法透過 API 建立或管理數據分析檢視區。
以下限制適用於 Analytics 檢視區:
- 每個 Google Cloud 專案的 Analytics 檢視畫面數量上限:100 個
- 每個 Google Cloud 專案在每個區域的 Analytics 檢視畫面數量上限:50 個
- 每個 Google Cloud 專案最多可儲存 10 個區域的 Analytics 檢視畫面。