Google Cloud 中的可觀察性

Google Cloud Observability 包含觀測服務,可協助您瞭解應用程式的行為、健康狀態和效能。瞭解應用程式的行為方式和元件的連結方式,有助於預測、找出及因應非預期的變化,並提高效率。

這份文件包含下列資訊:

關於可觀測性

可觀測性是一種全方位做法,可收集及分析遙測資料,進而瞭解環境狀態。遙測資料包括指標、記錄、追蹤,以及應用程式和應用程式基礎架構產生的其他資料,可提供應用程式健康狀態和效能的相關資訊。以應用程式為中心的觀測能力是指可從應用程式的角度,將遙測資料視覺化並加以分析的工具。

指標
指標是您定期測量的健康狀態或效能相關數值資料,例如 CPU 使用率和要求延遲時間。指標出現未預期的變化,可能表示有問題需要調查。隨著時間推移,您也可以分析指標模式,進一步瞭解使用模式並預測資源需求。
記錄

記錄檔是系統或應用程式活動在一段時間內產生的記錄。每個記錄檔都是記錄項目的集合,並附上時間戳記,每個記錄項目則說明特定時間點的事件。

記錄通常包含豐富的詳細資訊,有助於瞭解應用程式特定部分的狀況。不過,記錄無法提供實用的資訊,說明應用程式中某個元件的變更與另一個元件的活動有何關聯。追蹤記錄有助於填補這項落差。

追蹤記錄

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

其他資料

您可以分析其他資料背景下的指標、記錄和追蹤記錄,進一步瞭解情況。舉例來說,警示嚴重程度的標籤,或記錄中與要求相關聯的客戶 ID,可提供有助於疑難排解和偵錯的背景資訊。

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

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

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

簡單來說,可觀測的環境有助於維持應用程式的可靠性。應用程式符合您目前對可用性和故障復原能力的要求時,就是可靠的應用程式。

如要進一步瞭解可靠性做法,包括與觀測能力相關的原則和做法,請參閱《網站可靠性工程:Google 如何執行生產系統》一書。網路研討會包括以下主題:

Google Cloud Observability

Google Cloud Observability 服務可協助您收集、分析及關聯遙測資料,包括應用程式和基礎架構的資料。這些服務也提供內建預設值,協助您更快上手,例如應用程式中心的預設資訊主頁,以及預先設定的快訊政策。

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

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

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

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

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

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

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

追蹤記錄:偵錯及疑難排解時,查看及分析應用程式要求的流程和延遲時間。

  • 追蹤要求在應用程式中的傳播情形。
  • 收集應用程式的延遲資料,並查看資料圖表。
  • 查看顯示效能下降情形的延遲報表。
  • 接收應用程式延遲設定檔變更的快訊。
  • 將追蹤記錄匯出至 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 Sidecar。如需範例,請參閱使用 Sidecar 收集 OTLP 指標的教學課程

檢測應用程式

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

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

如需程式碼範例,瞭解如何設定應用程式,將遙測資料傳送至 Google Cloud,請參閱下列內容:

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