瞭解受監控資源類型、指標類型、標籤和時間序列如何在 Cloud Monitoring 中搭配運作,有助於查詢資料、建立圖表和警告,以及設計自訂指標。在 Metrics Explorer 中檢查指標、設定警告政策、使用 Cloud Monitoring API 擷取時間序列資料,或建立使用者定義的指標時,都會用到這些概念。
如果您不熟悉這些概念,請先參閱「指標、時間序列和資源」。如要瞭解 Monitoring API 物件結構定義和自訂指標詳細資料,請參閱「時間序列的結構」。
標籤簡介
受監控資源類型和指標類型都支援標籤,可在分析期間分類資料。例如:
- 虛擬機器的受監控資源類型可能包含機器位置和相關聯專案 ID 的標籤。記錄受監控資源的相關資訊時,資訊會包含標籤的值。除了為受監控資源類型定義的標籤外,受監控資源也可能具有系統或使用者提供的中繼資料標籤。
- 計算 API 要求的指標類型可能會有標籤,用來記錄叫用的方法名稱和要求狀態。
如要進一步瞭解標籤的使用方式,請參閱「標籤」。
受監控資源類型
「受監控資源」是指系統擷取指標資料的來源資源。Cloud Monitoring 支援約 270 種受監控資源。
受監控資源的類型包括一般節點和工作、Google Kubernetes Engine 中的架構元件、Bigtable 中的資料表、各種 AWS 資源等。每種受監控資源類型都會在名為「受監控資源描述元」的資料結構中正式描述。詳情請參閱「受監控資源描述元」。
受監控資源清單中,每個支援的受監控資源類型都有一個項目。清單中的項目是根據受監控資源描述元建立。本節說明受監控資源描述元擷取的資訊,以及這些資訊在清單中的呈現方式。
受監控資源類型範例
下圖顯示 Cloud Storage bucket 的清單項目:
清單中的所有項目都包含下列資訊:
- 類型:項目中的標頭會列出受監控資源類型,在範例中為
gcs_bucket。 - 顯示名稱:受監控資源的簡短說明。
- 說明:受監控資源的詳細說明。
- 標籤:用於分類資料的一組維度。詳情請參閱「標籤」。
指標類型
「指標類型」說明可從受監控資源收集的測量結果。指標類型包含所測量項目的說明,以及測量結果的解讀方式。Cloud Monitoring 支援約 6,500 種指標,並可讓您定義新類型。指標類型包括 API 呼叫次數、磁碟用量統計資料、儲存空間用量等。
每種指標類型都會在名為「指標描述元」的資料結構中正式描述。詳情請參閱「指標描述元」。
每個內建指標類型在「Metrics list」(指標清單) 頁面中都有一個項目。這些資料表中的項目是根據指標描述元建立。本節說明指標類型中擷取的資訊,並說明參考資料中的呈現方式。
指標類型範例
下圖顯示 Cloud Storage 指標類型的項目:
指標類型會顯示在表格中,表格標題會說明資訊的版面配置。本節以一個項目為例,但所有資料表都使用相同格式。
Cloud Storage 資料表範例項目會提供下列有關指標類型的資訊:
指標類型:指標類型的 ID,在範例中為
storage.googleapis.com/api/request_count。前置字串
storage.googleapis.com是 Cloud Storage 的命名空間。與特定受監控資源類型相關聯的所有指標類型,都會使用相同的命名空間。資料表中的項目會省略命名空間。
與 Cloud Storage 相關聯的所有指標類型,都列在 Cloud Storage 指標表格中。
推出階段:彩色區塊,表示指標類型的推出階段,值為 Alpha、Beta 或 GA。
顯示名稱:說明指標類型的簡短字串,在本例中為「要求數」。
Kind, Type, Unit:這行提供解讀資料值的資訊。範例顯示差異指標記錄為 64 位元整數,沒有單位 (即
1值)。受監控資源:可使用這項指標類型的受監控資源。這裡的值與「受監控的資源類型」一節所述的值相同。
說明:記錄內容和方式的詳細資訊。請以斜體顯示,與標籤區分。
標籤:用於分類資料的一組維度。詳情請參閱「標籤」。
透過 Cloud Monitoring API 存取監控資料時,您會在 API 呼叫中加入 Google Cloud 專案。您只能擷取該 Google Cloud 專案可見的資料。舉例來說,如果您要求專案的指標類型 storage.googleapis.com/api/request_count 資料,則只會看到專案中 Cloud Storage bucket 的 API 計數。如果專案未使用任何 Cloud Storage bucket,就不會傳回任何指標資料。
內建指標類型
內建指標類型是由 Google Cloud 服務 (包括 Cloud Monitoring) 定義。這些指標類型說明各種常見基礎架構的標準測量結果,可供任何人使用。
指標清單會顯示整組內建指標類型。 外部指標清單頁面列出的指標是內建指標的特殊子集,由 Cloud Monitoring 與開放原始碼專案或第三方供應商合作定義。這些指標通常會加上external.googleapis.com 前置字元。
自訂指標
建構應用程式時,您可能想評估某些屬性,但 Cloud Monitoring 並未內建相關指標。您可以使用 Cloud Monitoring 定義自己的指標類型,或從外部來源匯入指標類型。這類指標稱為「自訂指標」。如果指標的前置字元為 custom.googleapis.com 或 prometheus.googleapis.com,則為自訂指標。後者通常來自 Google Cloud Managed Service for Prometheus。
舉例來說,如要追蹤商店售出的小工具數量,就必須使用自訂指標。詳情請參閱「使用者定義指標總覽」。
標籤
標籤是鍵/值組合,可用來提供資料值的相關資訊。
指標和受監控資源標籤
指標和受監控資源類型的定義都包含標籤。標籤是收集資料的分類器,可協助分類資料,以便進行更深入的分析。例如:
- Cloud Storage 指標類型
storage.googleapis.com/api/request_count有兩個標籤:response_code和method。 - Cloud Storage 受監控資源類型
gcs_bucket有三個標籤:project_id、bucket_name和location。標籤會識別資源類型的特定執行個體。
因此,系統會根據呼叫的方法、呼叫的回應代碼,以及相關 bucket 的名稱、位置和專案,分類從 Cloud Storage bucket 收集到的所有 API 要求資料。標籤組合會因指標或受監控資源類型而異;可用的標籤記載於「指標清單」和「受監控資源清單」頁面。
計算 API 呼叫次數時,只要追蹤回應代碼、方法名稱和位置,就能擷取特定 API 方法的呼叫次數、任何方法的失敗呼叫次數,或特定位置特定方法的失敗呼叫次數。
標籤數量和每個標籤可假設的值數量稱為「基數」。基數是指一組指標和受監控資源類型可能收集的時間序列數量:每個標籤值組合都有一個時間序列。詳情請參閱「基數:時間序列和標籤」。
資源中繼資料標籤
除了指標和受監控資源類型上定義的標籤外,Monitoring 還會在內部收集受監控資源的其他資訊,並將這些資訊儲存在系統中繼資料標籤中。使用者可以唯讀值的形式查看這些系統中繼資料標籤。在 Google Cloud 控制台設定 VM 執行個體等資源時,部分資源也允許使用者建立自己的資源中繼資料標籤。
系統和使用者中繼資料標籤統稱為「資源中繼資料標籤」。在時間序列篩選器中,您可以像使用指標和受監控資源類型上定義的標籤一樣,使用這些標籤。
只有在您明確依資源中繼資料標籤匯總時,查詢結果才會顯示這些標籤。
如要進一步瞭解篩選功能,請參閱「監控篩選器」。
時間序列:受監控資源的資料
本節將說明監控資料是什麼,以及如何以時間序列整理。指標模型的概念元件會在這裡變成具體構件。
Cloud Monitoring 會針對指標和受監控資源類型組合,儲存一段時間內的定期測量結果。系統會將測量結果收集到「時間序列」中,每個時間序列都包含下列項目:
時間序列所屬指標類型的名稱,以及指標標籤的一組值組合。
一系列 (時間戳記、值) 組合。值是測量結果,時間戳記則是測量時間。
受監控資源,也就是時間序列資料的來源,以及資源標籤的一組值組合。
系統會為產生資料的每個指標和資源標籤組合建立時間序列。
簡化範例:指標類型 storage.googleapis.com/api/request_count 可能會有多個專案 Cloud Storage bucket 的時間序列。下表列出一些可能的時間序列。
在表格中,bucket: xyz 值代表受監控資源類型中 bucket_name 標籤的值,response_code 和 method 則是指標類型中的標籤。資源和指標標籤中的每個值組合都有一個時間序列,表格中會顯示部分時間序列:
| 受監控的 資源標籤 |
指標標籤 | 指標資料 |
|---|---|---|
bucket: 1234 |
response_code: OK, |
{ |
bucket: 1234 |
response_code: OK, |
{ |
bucket: 1234 |
response_code: FAIL, |
{ |
bucket: 9876 |
response_code: OK, |
{ |
Cloud Monitoring 不會記錄「空白」時間序列。在 Cloud Storage bucket 範例中,如果您未使用特定 bucket,或從未呼叫特定 API 方法,系統就不會收集該標籤的資料,也不會有時間序列提及該標籤。也就是說,如果專案完全沒有特定指標的資料,您就不會看到該指標類型。
指標類型不會指出指標時間序列中找到的受監控資源類型。Cloud Storage 只有一種受監控資源類型:gcs_bucket。部分指標類型會與多個受監控資源配對。
實際範例:如果您有 Google Cloud 專案,可以試用 APIs Explorer 小工具,該工具位於 Monitoring API 中 timeSeries.list 方法的參考頁面。
開啟
timeSeries.list參考資料頁面。在標示為「Try this method」的窗格中,輸入下列內容:
- name:
projects/PROJECT_ID。將PROJECT_ID替換為 Google Cloud 專案 ID。 - filter:
metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance" - interval.start_time:輸入開始時間,並確保比結束時間早 20 分鐘。
- interval.end_time:輸入結束時間。
- name:
如果要求成功,系統會傳回符合要求的時間序列資料。如下列程式碼片段所示:
{
"timeSeries": [
{
"metric": {
"labels": {
"severity": "INFO",
"log": "compute.googleapis.com/activity_log"
},
"type": "logging.googleapis.com/log_entry_count"
},
"resource": {
"type": "gce_instance",
"labels": {
"instance_id": "0",
"zone": "us-central1",
"project_id": "your-project-id"
}
},
"metricKind": "DELTA",
"valueType": "INT64",
"points": [
{
"interval": {
"startTime": "2024-03-29T13:53:00Z",
"endTime": "2024-03-29T13:54:00Z"
},
"value": {
"int64Value": "0"
}
},
...
]
},
...
]
}
如要進一步瞭解如何使用 APIs Explorer 小工具 (包括疑難排解),請參閱「APIs Explorer」。
基數:時間序列和標籤
每個時間序列都與一組特定的指標和受監控資源類型相關聯。指標和受監控資源類型各自提供一些標籤。在 Cloud Monitoring 中,一組標籤的值不重複組合數量,就是指標類型或受監控資源類型的基數。這些值稱為「指標基數」和「資源基數」,會決定可能產生的時間序列數量,即「總基數」。
指標、資源和總基數
假設您有一個指標類型,指定了 color 和 zone 兩個標籤。指標基數取決於這些標籤可能的值數量:
- 如果只有「紅色」、「綠色」和「藍色」三種可能顏色,則
color標籤最多可以有三個不同的值。 - 如果只有「east」和「west」兩個可用可用區,則
zone標籤最多可以有兩個不同的值。
這項指標的基數為 6 (3×2)。如果 color 標籤有 1,000 個可能的值,且每個顏色都可能出現在每個可用區,則指標基數為 2,000 (1,000×2)。如果這些標籤位於受監控資源類型 (而非指標類型),則適用相同的計算方式。
這個基數值是最大值,取決於可能標籤值的組合數量。如果標籤值的所有組合並未實際發生,實際的有效值可能會大幅降低。舉例來說,如果每種顏色只出現在一個可用區,而非兩個可用區,則在執行中的系統中,您最多會看到 1,000 個時間序列。不過,有效基數的實用性取決於特定組合未出現的原因,以及未來是否可能出現。

寫入時間序列資料時,系統會依指標和受監控資源類型分類。對於任何一組指標和資源類型,「總基數」是指標基數和資源基數的乘積。如果指標的基數為 1,000,資源的基數為 100,且每個標籤值都會出現,則時間序列數量為 100,000 (1,000×100)。
設計自己的指標時,請確保任何標籤的可能值組合都受到限制。建議使用一小組離散值 (例如「紅色」、「綠色」和「藍色」)。舉例來說,如果您為color 標籤使用 8 位元 RGB 值,則可以有超過 1,600 萬個不同的值。請勿使用高解析度值 (例如時間戳記、任何類型的專屬 ID、使用者 ID、IP 位址、未參數化的網址等) 做為指標標籤。
查詢效能和基數
發出資料查詢時,要求的資料量是影響查詢效能的最大因素:查詢一小時的資料,通常比查詢六個月的資料更快。不過,要求傳回的資料量也取決於要求中的時間序列數量。如果查詢擷取的是低基數指標的兩個月資料,速度可能會比擷取極高基數指標的兩個月資料快,因為擷取的資料量不同。
基數主要取決於標籤可擁有的值數量,而非標籤數量。一般來說,您無法控制資源的基數,例如 Pod 或 VM 的數量會根據業務需求而變動。不過,將指標擷取至 Cloud Monitoring 時,您通常可以控管指標基數,而不必使用系統指標。舉例來說,如果是使用者定義的自訂指標,您需要決定標籤和可能的值。如果您正在擷取 Prometheus 指標,可以使用重新標籤功能修改標籤組合,並捨棄不想擷取的時間序列。
您可以使用 Cloud Monitoring 的「Metrics Management」(指標管理) 頁面,找出可能有基數問題的指標。如要查看「Metrics Management」(指標管理) 頁面,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「Metrics management」(指標管理) 頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在工具列中選取時間範圍。根據預設,「Metrics Management」(指標管理) 頁面會顯示過去一天收集的指標相關資訊。
如要進一步瞭解「Metrics Management」(指標管理) 頁面,請參閱「查看及管理指標用量」。
如要瞭解 Cloud Monitoring 儲存及擷取時間序列資料的技術背景,請參閱「Monarch:Google 的全球規模記憶體內時間序列資料庫」。
如要瞭解 Cloud Monitoring 中使用者定義指標的限制,請參閱「使用者定義指標」。