本頁深入探討「指標、時間序列和資源」和「指標模型的元件」中所提及的討論和範例。如要充分利用本頁面,請先閱讀這些頁面。
本頁面適用於想進一步瞭解時間序列和 Cloud Monitoring 指標模型導入方式的讀者,特別是使用 Monitoring API 的讀者。包括使用自訂 (使用者定義) 指標的使用者。本頁面會將一般指標模型對應至 Cloud Monitoring API,因此對於直接使用 Monitoring API 的使用者來說非常實用。主要與 Google Cloud 主控台互動的使用者可能不需要這麼詳細的資訊。
對於使用 OpenTelemetry 等第三方整合服務的使用者來說,這也是很實用的功能。當外部來源的資料透過整合功能傳送至 Cloud Monitoring 時,系統會將資料對應至 Cloud Monitoring 指標模型,並視為其他指標資料。
如要進一步瞭解如何收集自己的指標,請參閱「使用者定義指標總覽」。
查看指標模型
如要瞭解時間序列的結構,您必須熟悉 Cloud Monitoring 使用的指標模型。如要瞭解這項模型,請參閱「指標、時間序列和資源」一文。本節提供簡要的回顧。
一般來說,監控資料會以時間序列的形式記錄。每個個別時間序列都包含與這項討論相關的三項資訊:
- 一組帶有時間戳記的資料點。
- 指標類型的參照,可用於說明如何解讀資料點。
資料來源的受監控資源參照。
每個時間序列都會保存來自單一實體或邏輯來源的測量資料。如果環境中有數百個資源,每個資源都會提供至少一個時間序列。事實上,如果指標類型和受控資源類型含有標籤,每個標籤值組合就會產生一個時間序列。詳情請參閱「基數」。
時間序列範例
時間序列會以 TimeSeries
物件的例項表示。以下是單一時間序列的完整例項:
{ "metric": { "labels": { "log": "kubelet", "severity": "DEFAULT" }, "type": "logging.googleapis.com/log_entry_count" }, "resource": { "type": "gce_instance", "labels": { "instance_id": "5106847938295940291", "zone": "us-central1-a", "project_id": "a-gcp-project" } }, "metricKind": "DELTA", "valueType": "INT64", "points": [ { "interval": { "startTime": "2019-12-20T20:25:38Z", "endTime": "2019-12-20T20:26:38Z" }, "value": { "int64Value": "20" } } ] }
大多數時間序列包含更多資料點,這份資料涵蓋一分鐘的間隔。所有時間序列的結構都相同,包含以下欄位:
metric
欄位記錄- 這個特定時間序列的指標標籤值,代表標籤值的組合。
- 資料相關聯的指標類型。指標類型會指定可用的標籤,並說明資料點代表的內容。
如要進一步瞭解這個欄位的資訊,請參閱「指標」一文。
resource
欄位記錄:- 這個特定時間序列的資源標籤值,代表標籤值的組合。
- 收集資料的特定受監控資源。
如需進一步瞭解這個欄位的資訊,請參閱「受監控資源物件」。
metricKind
和valueType
欄位會說明如何解讀這些值。詳情請參閱「指標種類與類型」。points
欄位是帶有時間戳記的值陣列。指標類型會說明值代表的內容。這個範例時間序列的陣列包含單一資料點;在大多數時間序列中,陣列會包含更多值。
如需擷取時間序列資料的實際範例,請參閱「時間序列:受控資源的資料」。
本頁其餘部分會進一步探討 metric
和 resource
欄位中的資訊。
受控資源
Cloud Monitoring 會從受監控的資源收集資料,並記錄在時間序列中。每個建立的時間序列都會包含所收集資料的受監控資源說明。
受控資源物件
受控資源由 MonitoredResource
物件的例項表示。受監控的資源會說明時間序列中值的來源。MonitoredResource
物件會嵌入時間序列,並識別監控功能所知的受控資源類型特定例項:它會指向實體或邏輯實體。
舉例來說,以下是從示例時序資料中擷取的監控資源物件,用來描述特定的 Compute Engine 執行個體:
"resource": { "type": "gce_instance", "labels": { "instance_id": "5106847938295940291", "zone": "us-central1-a", "project_id": "a-gcp-project" } }
這個受控資源的例項為 gce_instance
類型,在專案 a-gcp-project
中具有特定的 instance_id
值 (5106847938295940291)。執行個體位於美國。其他時間序列可能來自此受控資源的不同例項。每個標籤值組合都會標示出收集資料的專屬資源。
不同的資源需要不同的標籤組合。資源的標籤集是由該類型的受控資源描述元決定。
受控資源描述元
受控資源類型的相關資訊會保存在名為「受控資源描述元」的資料結構中。如需瞭解這個資料結構的定義,請參閱 MonitoredResourceDescriptor
。
監控資源描述元就像是記錄結構體的結構定義或規格。這項資源不包含受控資源的特定例項資料,而是說明如何描述特定類型的受控資源。例如,以下是 gce_instance
資源的受控資源描述元:
{ "type": "gce_instance", "displayName": "VM Instance", "description": "A virtual machine instance hosted in Compute Engine.", "name": "projects/[PROJECT_ID]/monitoredResourceDescriptors/gce_instance" "labels": [ { "key": "project_id", "description": "The identifier of the GCP project associated with this resource, such as \"my-project\"." }, { "key": "instance_id", "description": "The numeric VM instance identifier assigned by Compute Engine." }, { "key": "zone", "description": "The Compute Engine zone in which the VM is running." } ], }
請將此受控資源描述元與受控資源物件中顯示的 gce_instance
資源特定例項進行比較。這個描述元並不會描述特定的受控資源,而是會指定標籤,而每個標籤值組合都會標示特定的受控資源。
您可以使用 Cloud Monitoring API,擷取 Google Cloud 專案中的受控資源描述項。舉例來說,請參閱 monitoredResourceDescriptors.list
和 monitoredResourceDescriptors.get
方法的參考頁面。
實際範例:如果您有 Google Cloud 專案,可以使用 API Explorer 小工具擷取這個描述符,如下所示:
開啟
monitoredResourceDescriptors.list
參考頁面。在標示為「Try this method」的窗格中,輸入以下內容:
name:
projects/PROJECT_ID/monitoredResourceDescriptors/gce_instance
將
PROJECT_ID
替換為您的 Google Cloud 專案 ID。
按一下 [Execute] (執行)。
要求會傳回上述描述符。
如需使用 Monitoring API 方法的範例,請參閱「列出指標和資源類型」。
指標
Cloud Monitoring 建立的每個時間序列都會記錄一組資料點,以及這些資料點的組織和意義相關資訊。
指標物件
每個時間序列都會參照指標物件中記錄的資料說明。
時間序列中包含的指標物件會指定評估結果的類型,以及這些評估結果的指標專屬資訊。如要瞭解指標物件資料結構的定義,請參閱 Metric
。舉例來說,以下是從範例時間序列中時間序列擷取的度量基準物件:
{ "metric": { "labels": { "log": "kubelet", "severity": "DEFAULT" }, "type": "logging.googleapis.com/log_entry_count" }
這個物件會指出時間序列包含 logging.googleapis.com/log_entry_count
測量值。標籤值會指出這個特定時序只會計算名為 kubelet
的記錄檔案中嚴重性為 DEFAULT
的記錄項目。
每個標籤值組合都有一個時間序列,因此同一個記錄檔的 INFO
項目會顯示在不同的時間序列中。
指標物件中收集的標籤組,會在該指標類型的描述元中指定。
指標描述元
指標類型的相關資訊會儲存在名為「指標描述元」的資料結構中。如要瞭解這個資料結構的定義,請參閱 MetricDescriptor
。
指標描述元是記錄結構的結構定義或規格。這類指標不包含特定指標的資料,而是說明如何解讀與特定指標類型相關聯的資料。
以下是指標描述詞範例:
{ "type": "logging.googleapis.com/log_entry_count", "name": "projects/a-gcp-project/metricDescriptors/logging.googleapis.com/log_entry_count", "labels": [ { "key": "log", "description": "Name of the log." }, { "key": "severity", "description": "Severity of the log entry." } ], "metricKind": "DELTA", "valueType": "INT64", "unit": "1", "description": "Number of log entries that contributed to user-defined metrics.", "displayName": "Log entries", "metadata": { "launchStage": "GA", "samplePeriod": "60s" }, "launchStage": "GA" }
請將此指標描述詞與 指標物件中顯示的指標物件進行比較。描述元會說明標籤值的含義,以及如何解讀資料點的值。
您可以使用 Cloud Monitoring API 擷取指標描述符。例如,請參閱 metricDescriptors.list
和 metricDescriptors.get
方法的參考頁面。
實際範例:如果您有 Google Cloud 專案,可以使用 API Explorer 小工具擷取這個描述符,如下所示:
開啟
metricDescriptors.list
參考頁面。在標示為「Try this method」的窗格中,輸入以下內容:
- name:
projects/PROJECT_ID/metricDescriptors/logging.googleapis.com/log_entry_count
將PROJECT_ID
替換為 Google Cloud 專案的 ID。
- name:
按一下 [Execute] (執行)。
要求會傳回上述描述符。
如需使用 Monitoring API 方法的範例,請參閱「列出指標和資源類型」。
指標描述元中的大部分欄位都很容易理解。指標種類和值類型可能需要進一步說明,請參閱「指標種類與類型」一文。
雲端監控提供約 6,500 種內建指標類型,詳情請參閱指標清單。您也可以自行建立指標描述項,以便擷取自訂指標。詳情請參閱「使用者定義指標總覽」。