Google Cloud 中的可觀察性

Google Cloud Observability 包含觀測服務,可協助您瞭解應用程式的行為、健康狀態和效能。瞭解應用程式的運作方式和元件連結方式,有助您更快速有效地預測、識別及回應意外變更。

這份文件包含以下資訊:

關於觀測能力

可觀測性是一種全方位方法,可收集及分析遙測資料,以便瞭解環境狀態。遙測資料是應用程式和應用程式基礎架構產生的指標、記錄、追蹤記錄和其他資料,可提供應用程式健康和效能相關資訊。「以應用程式為中心的觀測能力」是指可讓您從應用程式角度,以圖像化方式呈現及分析遙測資料的工具。

指標
指標是指在一段時間內,以規律間隔測量健康或效能的數值資料,例如 CPU 使用率和要求延遲時間。指標發生意外變化,可能表示有問題需要調查。您也可以隨著時間推移,分析指標模式,進一步瞭解使用模式並預測資源需求。
記錄

記錄是系統或應用程式活動在一段時間內產生的記錄。每個記錄檔都是時間戳記記錄項目的集合,而每個記錄項目都會描述特定時間點的事件。

記錄通常包含豐富的詳細資訊,可協助您瞭解應用程式特定部分發生的情況。不過,記錄無法提供良好資訊,說明應用程式某個元件的變更與其他元件的活動有何關聯。追蹤記錄可以協助填補這項缺口。

追蹤記錄

追蹤記錄代表分散式應用程式各個部分的請求路徑。在觸發快訊通知的應用程式元件中,指標或記錄項目可能是另一個元件中發生問題的症狀。您可以透過追蹤記錄追蹤要求流程,並檢查延遲資料,找出問題的根本原因。

其他資料

您可以分析其他資料的脈絡中的指標、記錄檔和追蹤記錄,進一步取得洞察。舉例來說,快訊嚴重程度的標籤或與記錄中要求相關的客戶 ID,可提供有用的背景資訊,協助您排解問題和偵錯。

分散式應用程式涉及許多系統和軟體元件,且通常會混合開放原始碼和商業軟體,因此監控、偵錯和排解分散式應用程式的問題可能相當困難。

可觀察性工具可收集有意義的資料,並提供探索、分析及關聯資料的功能,協助您應對這項複雜問題。觀察環境可協助您:

  • 主動偵測問題,避免使用者受到影響
  • 排解已知問題和新問題
  • 在開發期間偵錯應用程式
  • 規劃並瞭解應用程式變更的影響
  • 探索資料,發掘新的洞察資料

簡而言之,可觀察的環境有助於維持應用程式的可靠性。應用程式只要符合您目前的可用性和故障復原目標,就算是可靠的應用程式。

如要進一步瞭解可靠性做法,包括與可觀察性相關的原則和做法,請參閱《Site Reliability Engineering: How Google Runs Production Systems》一書。網路研討會包括以下主題:

Google Cloud Observability

Google Cloud 觀測服務可協助您收集、分析及連結遙測資料,包括來自應用程式和基礎架構的資料。這些服務還提供內建的預設值,協助您更快上手,例如 App Hub 應用程式的預設資訊主頁和預先設定的快訊政策。

建立 Google Cloud 專案時,系統會預設啟用 Cloud Monitoring、Cloud Logging 和 Cloud Trace。

監控:使用收集的指標來監控健康和效能、找出趨勢和問題,並在行為發生變化時發出通知。

  • 查看 App Hub 應用程式的健康狀態。
  • 自動收集大部分 Google Cloud 服務的指標。
  • 從第三方應用程式收集系統和應用程式指標。
  • 使用預設或自訂的資訊主頁,視覺化呈現及分析指標。
  • 使用綜合監控功能測試應用程式的效能。
  • 定義服務等級目標 (SLO),以監控服務可靠性。
  • 在發生問題時接收快訊。

記錄:使用收集到的記錄檔進行偵錯、排解問題,並深入瞭解應用程式。

  • 自動收集大部分 Google Cloud 服務的記錄。
  • 為大多數 Google Cloud服務自動收集稽核記錄
  • 收集第三方軟體的記錄檔。
  • 探索及分析記錄檔。
  • 使用 Log Analytics 搭配 BigQuery,針對記錄檔和其他資料執行分析。舉例來說,您可以使用 BigQuery 將記錄檔中的網址與已知惡意網址的公開資料集進行比較。
  • 從記錄檔建立指標。
  • 在記錄中出現特定訊息時收到警示。

Error Reporting:查看及分析運作中雲端服務的錯誤:

  • 匯總 Error Reporting 在記錄項目中偵測到的錯誤,並查看相關記錄。
  • 應用程式傳送至 Error Reporting API 的匯總錯誤。

Trace:在偵錯和排解問題時,查看及分析應用程式要求的流程和延遲時間。

  • 追蹤要求在應用程式中傳播的情形。
  • 收集應用程式的延遲資料,並查看資料圖表。
  • 查看顯示效能降低情形的延遲報表。
  • 接收應用程式延遲時間設定檔異動警示。
  • 將追蹤記錄匯出至 BigQuery,以便與其他資料一併探索。

Cloud Profiler:分析應用程式的 CPU 和記憶體用量,找出可改善效能的機會。

  • 從應用程式收集 CPU 用量和記憶體配置資料。
  • 找出使用最多資源的應用程式部分,並深入瞭解應用程式的整體效能。

開始使用

本節說明瞭解 Google Cloud中可觀察性功能的步驟。

嘗試快速入門導覽課程

請試用快速入門課程,熟悉可用的服務。

查看自動收集的資料

大多數 Google Cloud 服務都會自動產生預先定義的指標和記錄。也就是說,您可以開始查看支援的Google Cloud 服務的部分可觀察性資料,而無須額外設定。

  • 部分 Google Cloud 服務 (例如 Google Kubernetes Engine (GKE)Compute EngineCloud SQL) 會在 Google Cloud 控制台中提供預設資訊主頁,方便您在服務的內容相關內容中查看觀測能力資料。
  • Compute Engine、GKE 和 Cloud Run 預設會產生系統指標和記錄,您則可設定其他資料的收集。
  • Cloud Run 函式和 App Engine 會自動產生指標、記錄和追蹤記錄。

您也可以在 Metrics Explorer 中繪製收集的指標圖表、在 Logs Explorer 中查看記錄,或是在 Trace 中查看追蹤記錄。如要一併查看相關資料,請建立自訂資訊主頁。舉例來說,您可以建立資訊主頁,其中包含虛擬機器的記錄、效能指標和快訊政策。

設定 Compute Engine VM 以收集其他資料

根據預設,Compute Engine VM 只會在沒有作業套件代理程式的情況下,收集基本系統指標和記錄

安裝作業套件代理程式,從 Compute Engine 執行個體和應用程式收集其他遙測資料 (記錄檔、指標和追蹤記錄),以便進行疑難排解、監控效能和傳送警報。

設定 GKE 叢集以收集其他資料

根據預設,GKE 叢集會將系統記錄檔和系統指標傳送至 Logging 和 Monitoring。Google Cloud Managed Service for Prometheus 會處理第三方和使用者定義指標的收集作業。

  • 使用觀測指標套件,進一步瞭解應用程式和叢集資源的狀態。舉例來說,控制層指標可用於建立服務等級目標,以監控服務的可用性和延遲時間。
  • 監控第三方應用程式,例如 Postgres、MongoDB 和 Redis。這些整合功能提供預先設定的資訊主頁和警示政策。

設定 Cloud Run 收集自訂資料

如果您有 Cloud Run 服務會寫入 Prometheus 指標,則可以使用 Prometheus 補充資訊將指標傳送至 Cloud Monitoring。

如果 Cloud Run 服務改為寫入 OTLP 指標,您可以使用 OpenTelemetry 附加元件。如需範例,請參閱收集 OTLP 指標的教學課程,瞭解如何使用附加元件。

檢測應用程式

檢測程式碼是指您新增至應用程式中,用於發出遙測資料的程式碼。有幾個開放原始碼檢測架構可讓您從應用程式收集指標、記錄和追蹤記錄,並將這些資料傳送至任何供應商,包括 Google Cloud。不過,您可能不需要檢測應用程式。舉例來說,Cloud Run、Cloud Run 函式和 App Engine 都提供自動追蹤功能。

如要檢測應用程式,建議您使用開放原始碼的供應商中立檢測架構,例如 OpenTelemetry,而非供應商和產品專屬的 API 或用戶端程式庫。如要瞭解如何檢測應用程式,請參閱「 檢測和可觀察性」一文。

如需說明如何檢測應用程式以傳送遙測資料至 Google Cloud的程式碼範例,請參閱以下內容:

您或許會想探索以下主題: