如果您編寫應用程式,可以檢測程式碼來產生遙測資料,深入瞭解應用程式的內部執行階段行為。本頁面將介紹程序內檢測概念、說明 OpenTelemetry 等供應商中立架構的優點,並提供 Google Cloud Observability 的語言專屬指南和程式碼範例。
什麼是檢測設備和觀測能力?
檢測機制是指產生或收集應用程式執行階段行為資料的特定程式碼。在應用程式中,OpenTelemetry 等檢測工具可以收集語言執行階段、架構或應用程式邏輯的網域專屬資訊,然後將資料傳送至 Google Cloud 專案或其他目的地。這類資料也稱為遙測,包括記錄、指標和追蹤記錄。
CPU 使用率、記憶體用量和磁碟使用率等系統層級指標有助於偵測應用程式問題,但無法深入瞭解應用程式層級的問題。因為產生的遙測資料會顯示應用程式內發生的情況,因此插樁有助於應用程式產生診斷問題根本原因所需的資料。例如,日誌通常包含有關程式的上下文信息,例如具體的錯誤訊息或堆疊跟踪,以及在原始程式碼中的位置。同樣地,分散式追蹤記錄可協助您瞭解處理要求時,多項服務如何互動。指標可協助您判斷應用程式是否運作異常。
為應用程式加入檢測功能時,需要產生遙測資料並傳送至系統,以便儲存及查詢資料。舉例來說,您的檢測可能會將遙測資料傳送至 Google Cloud 專案。Google Cloud Observability 服務可協助您收集、分析及關聯遙測資料。此外,這些範本也提供內建預設值,例如預設資訊主頁和快訊政策,協助您更快上手。有關 Google Cloud Observability 的更多信息,請參閱 Observability in Google Cloud。
下圖說明應用程式如何使用檢測功能產生遙測資料,並傳送至儲存系統:
如上圖所示,檢測程式碼位於應用程式程序中,並與應用程式互動來產生遙測資料。然後,該檢測框架會將您的遙測資料匯出到已配置的儲存系統。在圖中,儲存系統是您的 Google Cloud 專案。
為什麼要使用與供應商無關的儀表板架構
即使您打算僅向 Google Cloud發送遙測數據,我們也建議您使用廠商中立的開源偵測框架來偵測您的應用程式。這類架構有幾項主要優點:
- 不必受制於特定廠商
- 與供應商無關的架構不會與任何特定供應商綁定,且會為產生的遙測資料提供自己的資料模型。因此,您可以將資料傳送給多個供應商,而且通常不必修改程式碼,就能變更使用的供應商。
- 收集遙測資料的標準化程序
- 設計良好的框架,例如 OpenTelemetry,提供了一種從應用程式收集遙測資料的標準化方法。對於用受支援語言編寫的應用程序,您可以使用相同的框架。由於該框架是標準化的,因此您可以收集和比較來自所有服務的遙測資料。
- 可互通的程式庫
- 儀表板架構包含豐富的程式庫生態系統,可收集遙測信號,且這些程式庫可互通。例如,OpenTelemetry 提供了用於收集追蹤數據和收集指標數據的程式庫。你可以使用其中一個函式庫,或同時使用兩個函式庫。
決定您的插碼策略
- 選擇一種儀器方法根據您的 Google Cloud 計算平台和遙測要求提供儀器建議。
- 「什麼是 OpenTelemetry?」一文說明瞭 OpenTelemetry 的使命和目標。
- 「可觀測性」 Google Cloud提供一般資訊。
範例和導入指南
範例總覽說明下列以收集器為基礎的程式碼範例架構,以及必要的 Identity and Access Management 角色:
從 Trace 匯出工具遷移至 OTLP 端點:說明如何更新使用直接匯出的應用程式,以傳送 OTLP 格式的追蹤資料。
使用 OpenTelemetry 零程式碼檢測功能,收集 GKE 上 Java 工作負載的遙測資料:說明如何收集遙測資料,而不必修改 Java 應用程式。