本文件將概略說明 Cloud Monitoring 提供的服務。這些服務可協助您瞭解應用程式和其他 Google Cloud 服務的行為、健康狀態和效能。Cloud Monitoring 會自動收集並儲存大多數 Google Cloud 服務的效能資訊。 您可以使用 Google Cloud Managed Service for Prometheus 收集 Prometheus 指標。如果您在 Compute Engine 虛擬機器 (VM) 上安裝 Ops Agent,就可以從應用程式和第三方應用程式收集指標和記錄檔。
Cloud Monitoring 提供的快訊、測試和視覺化服務,可協助您解答下列重要問題:
- 我的服務負載量為何?
- 我的網站是否正常回應?
- 我的服務運作良好嗎?
- App Hub 應用程式的健康狀況如何?
Cloud Monitoring 為大多數服務提供 Google Cloud 控制台和 API 支援。部分服務也支援 Google Cloud CLI 或 Terraform。您可以直接在 Cloud Monitoring API 參考資料頁面 (例如 alertPolicies.list
頁面) 中,嘗試使用 API 呼叫。
Cloud Monitoring 服務
Cloud Monitoring 提供各種服務,可用來瞭解應用程式和其他 Google Cloud 您使用的服務的健康狀態和效能。
快訊與通知
如要在成效指標的值符合您定義的條件時收到通知,請建立快訊政策。警示政策包含要接收通知的使用者或群組清單。Monitoring 支援常見的通知管道,包括電子郵件、Cloud Mobile App,以及 PagerDuty 或 Slack 等服務。舉例來說,您可以建立快訊政策,在 VM 的 CPU 使用率超過 80% 時收到通知。
每則通知都包含失敗的相關資訊,以及事件的連結。事件是一種永久記錄,會儲存可用於排解失敗問題的資訊。通常,記錄會列出事件狀態、記錄檔連結、記錄的評估指標資料圖表、標籤和時間長度。
警示服務已整合許多 Google Cloud 服務。當這些整合功能可用時,您可能會看到列出建議快訊的面板,或是圖表上顯示的按鈕,可讓您建立快訊政策。無論是哪種情況,系統都會預先設定快訊政策,您只需指定要通知的使用者或群組清單即可。
您可以使用 Google Cloud 控制台、Cloud Monitoring API、Google Cloud CLI 或 Terraform 建立及管理警示政策。
主動監控和驗證
如要測試服務、應用程式、網頁和 API 的可用性、一致性和效能,請建立綜合監控器。舉例來說,您可以使用運作時間檢查來探測 HTTP、HTTPS 和 TCP 端點的回應速度,然後在端點無法回應時收到通知。您也可以建立無效連結檢查器,讓系統檢索網頁,並在偵測到無效連結時通知您。
您可以使用 Google Cloud 控制台、Cloud Monitoring API、Google Cloud CLI 或 Terraform 建立及管理模擬監控器。
資料視覺化
當您使用App Hub 例項化 Google Cloud 資源或註冊應用程式時,資訊主頁服務會自動建立 Google Cloud管理的資訊主頁。這些資訊主頁會顯示精選資訊,協助您瞭解資源和應用程式的健康狀況。舉例來說,如果是 App Hub 應用程式,系統會為應用程式和各項服務與工作負載建立資訊主頁。這些資訊主頁會顯示應用程式的記錄或指標資料,以及已開啟的快訊數量等資訊。
Google Cloud 建立的資訊主頁可能會提供足夠的資訊,讓您完成調查。不過,這些報表可能無法提供您查看趨勢、找出離群值或查看資料其他詳細資料所需的確切資料。如要完成這些工作,您可以使用資訊主頁和圖表服務:
如要控管要查看的資料和資料的顯示格式,請建立自訂資訊主頁。例如,您可以匯入 Grafana 資訊主頁,或從範本安裝資訊主頁。
自訂資訊主頁可顯示下列項目:
- 顯示指標資料的圖表和表格
- 記錄資料和錯誤群組
- 快訊政策的圖表
- 快訊相關資訊
- 文字
- 事件,例如 Google Cloud 事件、警示和叢集建立作業。
您可以使用 Google Cloud 主控台或 API 建立及管理資訊主頁。
圖表服務 Metrics Explorer 可讓您快速以視覺化方式呈現及探索時間序列資料。圖表設定可讓您比較目前資料與先前資料、顯示離群值和百分位數,以及顯示多個指標。您也可以將圖表儲存至自訂資訊主頁。
資料收集和儲存
Cloud Monitoring 會收集及儲存下列類型的指標資料:
- 由 Google Cloud 服務產生的系統指標。這些指標可提供服務運作方式的相關資訊。
- 系統和應用程式指標:作業套件代理程式收集的系統資源和在 Compute Engine 執行個體上執行的應用程式相關指標。您可以設定 Ops Agent,從第三方外掛程式收集指標,例如 Apache 或 Nginx 網路伺服器,或是 MongoDB 或 PostgreSQL 資料庫。
使用 Cloud Monitoring API 或 OpenTelemetry 等程式庫建立的使用者定義指標。
外部指標:由部分開放原始碼程式庫或第三方供應商定義。
由 Google Cloud Managed Service for Prometheus 收集的 Prometheus 指標,或由作業套件代理程式和 Prometheus 接收器或 OTLP 接收器收集的 Prometheus 指標。
- 記錄指標:記錄寫入 Cloud Logging 的記錄相關數值資訊。Google 定義的記錄指標包括服務偵測到的錯誤計數,以及 Google Cloud 專案收到的記錄項目總數。您也可以定義記錄指標。
查詢語言
建立警告政策或圖表時,您必須提供查詢,說明要監控或繪製圖表的資料:
Google Cloud 控制台:您可以從選單中選取項目來建立查詢,也可以自行撰寫查詢。查詢編輯器適用於 Prometheus 查詢語言 (PromQL) 和 Monitoring 查詢語言 (MQL)。查詢編輯器會提供語法檢查和建議。您也可以編寫 Monitoring 篩選器運算式。
Cloud Monitoring API:此 API 支援 Prometheus Query Language (PromQL)、MQL 查詢和 Monitoring 篩選運算式。
監控大型系統
本節說明如何將資源視為集合來管理,以及如何監控儲存在多個 Google Cloud 專案中的指標。
以集合形式管理資源
如要以集合 (而非個別) 的方式管理資源,請建立資源群組。「資源群組」是指符合您提供的部分條件的動態資源集合。當您新增及移除資源時 (例如在Google Cloud 專案中新增 Compute Engine VM 執行個體),群組的成員資格就會自動變更。以下是資源群組的範例:
- 名稱開頭為字串
prod-
的 Compute Engine 執行個體。 - 標記為
test-cluster
的資源。 - 位於區域 A 或區域 B 的 Amazon EC2 執行個體。
定義資源群組後,您可以像監控單一資源一樣監控群組。舉例來說,您可以設定運作時間檢查來監控資源群組。對於圖表和快訊政策,您也可以依群組名稱篩選。
詳情請參閱「設定資源群組」。
監控多項 Google Cloud 專案的指標
如要透過單一介面查看及監控多個Google Cloud 專案和 AWS 帳戶的時間序列資料,請設定多專案指標範圍。
根據預設, Google Cloud 控制台的 Cloud Monitoring 頁面只會提供存放在範圍專案中的時間序列存取權。範圍專案是指您使用Google Cloud 控制台專案選擇器選取的專案。設定專案範圍的專案會儲存您設定的快訊、綜合監控、資訊主頁和監控群組。
限定範圍專案也會代管指標範圍。指標範圍定義了限定範圍專案可查看指標的專案和帳戶。您可以設定指標範圍,納入其他 Google Cloud 專案和 AWS 帳戶的時間序列資料。如要進一步瞭解如何修改指標範圍,請參閱「為多個專案設定指標範圍」。
Cloud Monitoring 資料模型
本節將介紹 Cloud Monitoring 資料模型:
「指標類型」是指計量項目,指標類型範例包括虛擬機器的 CPU 使用率,以及磁碟的使用百分比。
「時間序列」是一種資料結構,含有加上時間戳記的指標評估結果,以及這些評估結果的來源和意義相關資訊。
以下是時間序列包含的詳細內容:
points
陣列包含加上時間戳記的測量結果。以下是包含兩個值的
points
陣列範例:"points": [ { "interval": { "startTime": "2020-07-27T20:20:21.597143Z", "endTime": "2020-07-27T20:20:21.597143Z" }, "value": { "doubleValue": 0.473005 } }, { "interval": { "startTime": "2020-07-27T20:19:21.597239Z", "endTime": "2020-07-27T20:19:21.597239Z" }, "value": { "doubleValue": 0.473025 } }, ],
如要瞭解某個值的含義,您需要參考時間序列中包含的其他資料,以及該資料的定義。
resource
欄位會說明正在監控的硬體或軟體元件。在 Cloud Monitoring 中,硬體或軟體元件稱為「受控資源」。監控的資源範例包括 Compute Engine 執行個體和 App Engine 應用程式。如需受控資源清單,請參閱受控資源清單。以下是
resource
欄位的範例:"resource": { "type": "gce_instance", "labels": { "instance_id": "2708613220420473591", "zone": "us-east1-b", "project_id": "sampleproject" } }
type
欄位會將受監控的資源列為gce_instance
,表示這些測量結果是在 Compute Engine VM 執行個體上取得。labels
欄位包含鍵/值組合,可提供受控資源的額外資訊。對於gce_instance
類型,標籤會標示要監控的 VM 執行個體。
metric
欄位會說明要評估的項目。以下是
metric
欄位的範例:"metric": { "labels": { "instance_name": "test" }, "type": "compute.googleapis.com/instance/cpu/utilization" },
- 對於 Google Cloud 服務,
type
欄位會指定服務和要監控的項目。在這個範例中,Compute Engine 服務會評估 CPU 使用率。如果type
欄位開頭為custom
或external
,則指標為自訂指標或第三方定義的指標。
labels
欄位包含鍵/值組合,可提供關於評估的額外資訊。這些標籤會定義為MetricDescriptor
的一部分,這是定義測量資料屬性的資料結構。指標compute.googleapis.com/instance/cpu/utilization
的MetricDescriptor
包含標籤instance_name
。
- 對於 Google Cloud 服務,
metricKind
欄位會說明時間序列中相鄰測量值之間的關係:GAUGE
指標會儲存特定時間點所測量物件的值,例如每小時的溫度記錄。CUMULATIVE
指標會儲存特定時間點所測量物件的累積值,例如車輛的里程表。DELTA
指標會儲存指定期間內所評估項目的價值變化,例如股票摘要,顯示股票的收益或損失。
valueType
欄位會說明評估值的資料類型:INT64
、DOUBLE
、BOOL
、STRING
或DISTRIBUTION
。
- 您可以顯示每個 VM 執行個體的 CPU 使用率。
- 您可以篩選
instance_id
標籤的單一值時間序列,顯示特定 VM 執行個體的 CPU 使用率。 您可以依據
machine_type
標籤將 VM 執行個體分組,然後顯示平均 CPU 使用率。下圖為使用此設定的圖表:
定價
一般來說,Cloud Monitoring 系統指標是免費的,但外部系統、代理程式或應用程式的指標則不包含在內。計費指標會依據擷取的位元組數或樣本數計費。
如要進一步瞭解 Cloud Monitoring 的定價,請參閱下列文件:
後續步驟
- 如要瞭解 Cloud Monitoring,請參閱監控 Compute Engine 執行個體的快速入門導覽課程。
- 如要瞭解如何設定 Google Cloud 專案,以便查看多個 Google Cloud 專案和 AWS 帳戶的指標,請參閱指標範圍總覽。
如需 Cloud Monitoring 資料模型的相關資訊,請參閱「指標、時間序列和資源」。
如需 Cloud Monitoring API 的相關資訊,請參閱 API 與參考資料。