檢測和觀測能力

檢測是指產生或收集應用程式執行階段行為相關資料的特定程式碼。在應用程式中,OpenTelemetry 等檢測工具可收集有關語言執行階段、架構或應用程式邏輯的網域特定資訊,然後將這些資料傳送至 Google Cloud 專案或其他目的地。這類資料也稱為遙測資料,包括指標記錄檔追蹤記錄

系統層級指標 (例如 CPU 用量、記憶體用量和磁碟用量) 對於偵測應用程式問題非常有用,但無法提供太多應用程式層級問題的洞察資訊。因為產生的遙測資料會顯示應用程式內部發生的情形,因此檢測工具可協助應用程式產生診斷問題根本原因所需的資料。舉例來說,記錄通常會包含程式的相關背景資訊,例如特定錯誤訊息或堆疊追蹤,以及原始碼中的位置。同樣地,分散式追蹤記錄可協助您瞭解多個服務在處理要求時的互動情形。指標可讓您在應用程式運作不正常時收到通知。

檢測應用程式時,系統會產生遙測資料,並將資料傳送至可儲存及查詢資料的位置。舉例來說,您的檢測程式可能會將遙測資料傳送至 Google Cloud 專案。Google Cloud Observability 中的服務可協助您收集、分析及比對遙測資料。這些預設值可讓您更快上手,例如預設資訊主頁和快訊政策。如要進一步瞭解 Google Cloud Observability,請參閱「 Google Cloud中的觀測功能」。

下圖說明應用程式如何使用檢測功能,產生並傳送遙測資料至儲存系統:

圖示說明程序內檢測功能的架構。

如上圖所示,檢測程式碼位於應用程式程序中,並與應用程式互動以產生遙測資料。然後,檢測架構會將遙測資料匯出至已設定的儲存系統。在圖中,儲存系統就是您的 Google Cloud 專案。

關於廠商中立的檢測架構

即使您只打算將遙測資料傳送至 Google Cloud,我們仍建議您使用廠商中立的開放原始碼檢測架構,為應用程式進行檢測。這類架構有幾項重要優點:

不必受制於特定廠商
供應商中立架構不會綁定任何特定供應商,且會為產生的遙測資料提供專屬資料模型。因此,您可以將資料傳送至多個供應商,而且通常可以變更使用的供應商,而無須修改程式碼。
收集遙測資料的標準程序
OpenTelemetry 等精心設計的架構提供標準化方法,可從應用程式收集遙測資料。您可以為使用支援語言編寫的應用程式使用相同的架構。由於架構已標準化,您可以收集並比較所有服務的遙測資料。
可互通的程式庫
安裝測試架構包含豐富的程式庫生態系統,可收集遙測信號,且這些程式庫可互通。舉例來說,OpenTelemetry 提供的程式庫可用於收集追蹤資料和指標資料。您可以使用其中一個或兩個程式庫。

一般建議

本節提供有關如何檢測應用程式的一般建議。如需 Google Cloud專屬指南,請參閱「選擇檢測方法」。

如要收集指標,建議您使用 OpenTelemetryPrometheus

  • OpenTelemetry 是開放原始碼專案,可為應用程式檢測提供統一架構。也為熱門程式庫提供檢測資料庫。OpenTelemetry 提供獨立的代理程式 OpenTelemetry Collector,可接收、轉換及匯出遙測資料。OpenTelemetry 收集器設定檔會決定 OpenTelemetry 收集器的行為。如要將遙測資料傳送至代理程式或直接傳送至儲存系統,請使用 OpenTelemetry Protocol (OTLP)

  • Prometheus 是熱門的開放原始碼監控系統。您可以使用 Prometheus 用戶端程式庫,從應用程式產生指標,此外,也有熱門架構的第三方檢測程式庫生態系統。Prometheus 用戶端會將指標公開為 HTTP 端點,以便由代理程式擷取。

如要收集追蹤記錄,建議您使用 OpenTelemetry

如要收集記錄,建議您使用可設定為輸出 Cloud Logging 的 JSON 結構化記錄 的架構。如要寫入記錄資料,建議您採取下列做法:

Google Cloud solutions

Google Cloud 觀測功能提供多種收集遙測資料的彈性選項:

後續步驟

如要進一步瞭解 Google Cloud Observability,請參閱「 Google Cloud中的觀測功能」。