檢測是指產生或收集應用程式執行階段行為相關資料的特定程式碼。在應用程式中,OpenTelemetry 等檢測工具可收集有關語言執行階段、架構或應用程式邏輯的網域特定資訊,然後將這些資料傳送至 Google Cloud 專案或其他目的地。這類資料也稱為遙測資料,包括指標、記錄檔和追蹤記錄。
系統層級指標 (例如 CPU 用量、記憶體用量和磁碟用量) 對於偵測應用程式問題非常有用,但無法提供太多應用程式層級問題的洞察資訊。因為產生的遙測資料會顯示應用程式內部發生的情形,因此檢測工具可協助應用程式產生診斷問題根本原因所需的資料。舉例來說,記錄通常會包含程式的相關背景資訊,例如特定錯誤訊息或堆疊追蹤,以及原始碼中的位置。同樣地,分散式追蹤記錄可協助您瞭解多個服務在處理要求時的互動情形。指標可讓您在應用程式運作不正常時收到通知。
檢測應用程式時,系統會產生遙測資料,並將資料傳送至可儲存及查詢資料的位置。舉例來說,您的檢測程式可能會將遙測資料傳送至 Google Cloud 專案。Google Cloud Observability 中的服務可協助您收集、分析及比對遙測資料。這些預設值可讓您更快上手,例如預設資訊主頁和快訊政策。如要進一步瞭解 Google Cloud Observability,請參閱「 Google Cloud中的觀測功能」。
下圖說明應用程式如何使用檢測功能,產生並傳送遙測資料至儲存系統:
如上圖所示,檢測程式碼位於應用程式程序中,並與應用程式互動以產生遙測資料。然後,檢測架構會將遙測資料匯出至已設定的儲存系統。在圖中,儲存系統就是您的 Google Cloud 專案。
關於廠商中立的檢測架構
即使您只打算將遙測資料傳送至 Google Cloud,我們仍建議您使用廠商中立的開放原始碼檢測架構,為應用程式進行檢測。這類架構有幾項重要優點:
- 不必受制於特定廠商
- 供應商中立架構不會綁定任何特定供應商,且會為產生的遙測資料提供專屬資料模型。因此,您可以將資料傳送至多個供應商,而且通常可以變更使用的供應商,而無須修改程式碼。
- 收集遙測資料的標準程序
- OpenTelemetry 等精心設計的架構提供標準化方法,可從應用程式收集遙測資料。您可以為使用支援語言編寫的應用程式使用相同的架構。由於架構已標準化,您可以收集並比較所有服務的遙測資料。
- 可互通的程式庫
- 安裝測試架構包含豐富的程式庫生態系統,可收集遙測信號,且這些程式庫可互通。舉例來說,OpenTelemetry 提供的程式庫可用於收集追蹤資料和指標資料。您可以使用其中一個或兩個程式庫。
一般建議
本節提供有關如何檢測應用程式的一般建議。如需 Google Cloud專屬指南,請參閱「選擇檢測方法」。
如要收集指標,建議您使用 OpenTelemetry 或 Prometheus:
OpenTelemetry 是開放原始碼專案,可為應用程式檢測提供統一架構。也為熱門程式庫提供檢測資料庫。OpenTelemetry 提供獨立的代理程式 OpenTelemetry Collector,可接收、轉換及匯出遙測資料。OpenTelemetry 收集器設定檔會決定 OpenTelemetry 收集器的行為。如要將遙測資料傳送至代理程式或直接傳送至儲存系統,請使用 OpenTelemetry Protocol (OTLP)。
Prometheus 是熱門的開放原始碼監控系統。您可以使用 Prometheus 用戶端程式庫,從應用程式產生指標,此外,也有熱門架構的第三方檢測程式庫生態系統。Prometheus 用戶端會將指標公開為 HTTP 端點,以便由代理程式擷取。
如要收集追蹤記錄,建議您使用 OpenTelemetry。
如要收集記錄,建議您使用可設定為輸出 Cloud Logging 的 JSON 結構化記錄 的架構。如要寫入記錄資料,建議您採取下列做法:
Google Cloud solutions
Google Cloud 觀測功能提供多種收集遙測資料的彈性選項:
如需說明如何檢測應用程式以傳送遙測資料至 Google Cloud的程式碼範例,請參閱以下內容:
如要瞭解如何收集及查看應用程式的延遲時間資料,請參閱「查看應用程式要求的延遲時間」。
如要瞭解 Google Cloud針對 Prometheus 提供的全代管、多雲端、跨專案解決方案,請參閱 Google Cloud Managed Service for Prometheus。
如要瞭解如何設定作業套件代理程式,請參閱下列文件:
後續步驟
如要進一步瞭解 Google Cloud Observability,請參閱「 Google Cloud中的觀測功能」。