指標模型的元件

Cloud Monitoring 的監控資料模型由三個主要概念構成:

  • 受控資源類型
  • 指標類型
  • 時間序列

文件「指標模型」會概略說明這些 Cloud Monitoring 概念。如果您不熟悉這些概念,請先閱讀該頁面。

本頁面將詳細說明指標類型、受控資源和時間序列,以及一些相關概念。這些概念是所有監控指標的基礎。

如要執行下列任何操作,請先瞭解本頁資訊:

如要進一步瞭解這些概念,以及如何將這些概念對應至 Cloud Monitoring API,請參閱「時間序列的結構」,特別是如果您打算使用 Monitoring API 或自訂指標。

關於標籤

受控資源類型和指標類型都支援標籤,可在分析期間將資料分類。例如:

  • 虛擬機器的監控資源類型可能會包含機器位置的標籤,以及與機器相關聯的專案 ID。當系統記錄受監控資源的相關資訊時,資訊會包含標籤的值。除了為受控資源類型定義的標籤外,受控資源也可能會提供系統或使用者提供的中繼資料標籤。
  • 用於計算 API 要求的指標類型可能會包含標籤,用於記錄叫用的函式名稱和要求狀態。

如要進一步瞭解標籤的使用方式,請參閱「標籤」一文。

受控資源類型

受控資源是指用來擷取指標資料的資源。Cloud Monitoring 支援約 270 種受控資源類型。

受控資源類型包括一般節點和工作、Google Kubernetes Engine 中的架構元件、Bigtable 中的資料表、各種 AWS 資源等等。

每種受控資源類型都會在名為「受控資源描述項」的資料結構中正式說明。詳情請參閱「受控資源描述元」。

每個受支援的受控資源類型,在受控資源清單中都有一個項目。清單中的項目是由受控資源描述元建立。本節說明監控資源描述符中擷取的資訊,並說明這些資訊如何顯示在清單中。

受控資源類型的範例

下圖顯示 Cloud Storage 值區的清單項目

Cloud Storage 值區的清單。

清單中的所有項目都包含下列資訊:

  • 類型:項目中的標頭會列出受控資源類型,例如範例中的 gcs_bucket
  • 顯示名稱:監控資源的簡短說明。
  • 說明:受控資源的詳細說明。
  • 標籤:一組用於分類資料的維度。詳情請參閱「標籤」。

指標類型

指標類型:說明可從受控資源收集的測量值。指標類型會說明要評估的項目,以及如何解讀評估結果。Cloud Monitoring 支援約 6,500 種指標類型,並可讓您定義新類型。

指標類型包括 API 呼叫次數、磁碟用量統計資料、儲存空間用量等等。

每個指標類型都會在稱為指標描述元的資料結構中正式說明。詳情請參閱「指標描述元」。

每個內建指標類型在「指標清單」頁面中都有一個項目。這些表格中的項目是根據指標描述元建立。本節說明指標類型中擷取的資訊,並說明如何在參考資料中呈現這些資訊。

範例指標類型

下圖顯示 Cloud Storage 指標類型的項目:

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 值)。

    • 類型:這個範例是差異指標,可記錄一段時間內的變化。也就是說,每個資料點都會記錄上一個資料點寫入後的 API 呼叫次數。如要進一步瞭解類型,請參閱「值類型和指標類型」。

    • 類型:這個範例會將值記錄為 64 位元整數。如要進一步瞭解類型,請參閱「值類型和指標種類」。

    • 單位:這項指標代表計數,因此不需要明確的單位;數字 1 用於表示不需要單位。

  • 受控資源:可使用此指標類型的受控資源。這些值與「受控資源類型」一節所述的值相同。

  • 說明:進一步說明要記錄的內容和方式。以斜體顯示,以便與標籤區分。

  • 標籤:一組用於分類資料的維度。詳情請參閱「標籤」。

透過 Cloud Monitoring API 存取監控資料時,您會在 API 呼叫中加入 Google Cloud 專案。您只能擷取該 Google Cloud 專案可見的資料。舉例來說,如果您要求專案提供指標類型 storage.googleapis.com/api/request_count 的資料,則只會看到專案中 Cloud Storage 值區的 API 計數。如果您的專案未使用任何 Cloud Storage 值區,則系統不會傳回任何指標資料。

內建指標類型

內建指標類型是由 Google Cloud 服務定義,包括 Cloud Monitoring。這些指標類型會說明各種常見基礎架構的標準測量方式,任何人都可以使用。

「指標清單」會顯示整組內建指標類型。「外部指標清單」頁面列出的指標是 Cloud Monitoring 與開放原始碼專案或第三方供應商合作定義的內建指標特殊子集。這些指標通常會加上前置字元 external.googleapis.com

自訂指標

建構應用程式時,您可能會想評估特定屬性,而 Cloud Monitoring 並未內建相關指標。您可以使用 Cloud Monitoring 定義自己的指標類型,或從外部來源匯入指標類型。這些指標類型稱為自訂指標。如果指標的前置字串為 custom.googleapis.comprometheus.googleapis.com,則為自訂指標。後者通常來自 Google Cloud Managed Service for Prometheus

舉例來說,如果您想追蹤商店售出的 Widget 數量,就必須使用自訂指標。詳情請參閱「使用者定義指標總覽」。

標籤

標籤是鍵/值組合,可用來提供資料值的相關資訊。

指標和受監控資源標籤

指標和受控資源類型的定義都包含標籤。標籤是收集資料的判別器,可協助分類資料,以便進行深入分析。例如:

  • Cloud Storage 指標類型 storage.googleapis.com/api/request_count 有兩個標籤:response_codemethod
  • Cloud Storage 監控資源類型 gcs_bucket 有三個標籤:project_idbucket_namelocation。標籤會標示資源類型的特定例項。

因此,針對 Cloud Storage 值區的 API 要求所收集的所有資料,都會根據呼叫的方法、呼叫的回應代碼、相關值區的名稱、位置和專案進行分類。標籤集合會因指標或受控資源類型而異,可用的標籤已記錄在「指標清單」和「受控資源清單」頁面。

在計算 API 呼叫時追蹤回應代碼、方法名稱和位置,您就能擷取對特定 API 方法的呼叫次數、對任何方法的失敗呼叫次數,或對特定位置的特定方法的失敗呼叫次數。

標籤數量和每個標籤可假設的值數量稱為基數。基數是指一組指標和受控資源類型可能收集到的時間序列數量:每個標籤值組合都有一個時間序列。詳情請參閱「基數:時間序列和標籤」一節。

資源中繼資料標籤

除了在指標和受控資源類型中定義的標籤之外,監控功能也會在內部收集受控資源的其他資訊,並將這些資訊儲存在系統中繼資料標籤中。使用者可透過唯讀值存取這些系統中繼資料標籤。在 Google Cloud 控制台設定 VM 執行個體等資源時,部分資源也允許使用者自行建立資源中繼資料標籤。

系統和使用者中繼資料標籤統稱為「資源中繼資料標籤」。您可以使用這些標籤,就像在時間序列篩選器中定義的指標和受控資源類型標籤一樣。

只有在明確依據資源中繼資料標籤進行匯總時,這些標籤才會顯示在查詢結果中。

如要進一步瞭解篩選條件,請參閱「監控篩選器」。

時間序列:受控資源的資料

本節將說明監控資料的定義,以及在時間序列中的組織方式。這就是指標模型的概念元件成為具體構件的地方。

Cloud Monitoring 會為指標和受控資源類型的組合,儲存不同時間點的定期測量結果。系統會將測量結果收集到時間序列中,每個時間序列都包含下列項目:

  • 時間序列所屬指標類型的名稱,以及指標標籤的值組合。

  • 一系列 (時間戳記) 組合。是測量值,時間戳記則是測量時間。

  • 時間序列資料的來源,也就是受控資源,以及資源標籤的值組合。

系統會針對每個可產生資料的指標和資源標籤組合建立時間序列。

樣式示例:指標類型 storage.googleapis.com/api/request_count 可能會為專案的 Cloud Storage 值區提供多個時間序列。下圖顯示了一些可能的時間序列。

在插圖中,值 bucket: xxxx 代表受控資源類型中 bucket_name 標籤的值,而 response_codemethod 則是指標類型中的標籤。資源和指標標籤中的每個值組合都有一個時間序列,下圖顯示其中部分:

圖片:顯示指標中的多個時間序列

Cloud Monitoring 不會記錄「空白」時間序列。在 Cloud Storage 值區範例中,如果您未使用特定值區或從未呼叫特定 API 方法,系統就不會為該標籤收集資料,且不會在時間序列中提及該標籤。也就是說,如果專案沒有任何特定指標的資料,您就不會看到該指標類型。

指標類型不會指出指標時間序列中所找到的受控資源類型。Cloud Storage 只有一種受控資源類型:gcs_bucket。部分指標類型會與多個受控資源配對。

實際範例:如果您有 Google Cloud 專案,可以試試 APIs Explorer 小工具,該小工具位於 Monitoring API 中 timeSeries.list 方法的參考資料頁面。

  1. 開啟 timeSeries.list 參考頁面。

  2. 在標示為「Try this method」的窗格中,輸入以下內容:

    • nameprojects/PROJECT_IDPROJECT_ID 替換為 Google Cloud 專案的 ID。
    • filtermetric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
    • interval.start_time:輸入開始時間,並確保該時間比結束時間早 20 分鐘。
    • interval.end_time:輸入結束時間。

如果要求成功,系統會傳回符合要求的時間序列資料。程式碼片段如下所示:

{
  "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"
          }
        },
        ...
      ]
    },
    ...
  ]
}

如要進一步瞭解如何使用 API Explorer 小工具 (包括疑難排解),請參閱 API Explorer

基數:時間序列和標籤

每個時間序列都會與一組特定的指標和受控資源類型相關聯。每個指標和受控資源類型都會提供一些標籤。在 Cloud Monitoring 中,標籤組合的值組合數量即為指標類型或受控資源類型的基數。這些值稱為指標基數資源基數,可用來決定可能產生的時間序列數量,也就是總基數

指標、資源和總基數

假設您有一個指標類型,指定了兩個標籤 colorzone。指標基數取決於標籤可能的值數量:

  • 如果只有三種顏色:「紅色」、「綠色」和「藍色」,則 color 標籤最多可有三個不同的值。
  • 如果只有兩個可能的時區:「東」和「西」,則 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 的「指標管理」頁面,找出可能有基數問題的指標。如要查看「指標管理」頁面,請按照下列步驟操作:

  1. 在 Google Cloud 控制台中,前往 「Metrics management」頁面:

    前往「指標管理」

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果

  2. 在工具列中選取時間範圍。根據預設,「指標管理」頁面會顯示過去一天內收集的指標資訊。

如要進一步瞭解「指標管理」頁面,請參閱「查看及管理指標使用情形」一文。

如要瞭解 Cloud Monitoring 儲存及擷取時間序列資料的方式的技術背景,請參閱「Monarch:Google 的全球規模記憶體內時間序列資料庫」。

如要瞭解 Cloud Monitoring 中使用者定義指標的限制,請參閱「使用者定義指標」一文。