您可以根據 Google Cloud 運算平台和遙測需求,為應用程式選擇最有效的檢測方法。本指南提供 Google Kubernetes Engine (GKE)、Compute Engine 和 Cloud Run 的建議,協助您在 Google 建構的 OpenTelemetry Collector、Ops Agent 和直接的程序內 OpenTelemetry 匯出之間做出選擇。
本文提供一般建議,以及下列平台的指引:
如需範例應用程式,請參閱「範例和實作指南」。
這個頁面的建議並非唯一解決方案,其他方法也可能有效。如需其他指引,請與 Cloud Customer Care 團隊聯絡。
一般建議
本節提供有關如何檢測應用程式的一般建議。如需平台專屬指南,請參閱「平台建議」。
記錄資料:建議使用可設定為輸出Cloud Logging 適用的 JSON 結構化記錄的框架。如要寫入記錄資料,建議採取下列做法:
指標資料:建議您使用 OpenTelemetry 或 Prometheus 用戶端程式庫:
- OpenTelemetry 提供不限廠商的開放原始碼架構和用戶端程式庫,可檢測應用程式的指標。
- Prometheus 用戶端程式庫 (Go、Java、Python 等) 會產生指標,這些指標可透過 HTTP 端點公開,並由代理程式擷取。
追蹤資料:建議您使用 OpenTelemetry,從應用程式程式碼產生分散式追蹤資料。
OpenTelemetry 收集架構
使用 OpenTelemetry 程式庫檢測應用程式時,您可以透過獨立的 OpenTelemetry Collector 傳送遙測資料,也可以直接從應用程式程序匯出資料。OpenTelemetry Collector 設定檔可控管收集器接收、處理及匯出遙測資料的方式。一般來說,我們建議收集器使用 OpenTelemetry Protocol (OTLP) 接收及匯出遙測資料。Telemetry (OTLP) API 會實作這項通訊協定。
將遙測資料傳送至 Google Cloud 專案的基本方法有兩種:
以收集器為基礎的匯出 (與供應商無關): 您可以使用 OpenTelemetry SDK 檢測應用程式程式碼,並使用程序內 OTLP 匯出工具將資料傳送至 OpenTelemetry 收集器,例如 Google 建構的 OpenTelemetry 收集器或 Ops Agent 接收器。 收集器會接收遙測資料,並轉送至您的 Google Cloud 專案。 您的應用程式程式碼完全不受供應商影響。
直接匯出 (廠商專屬):您可以使用 OpenTelemetry SDK 檢測應用程式程式碼,並設定 OpenTelemetry,透過 Telemetry API 將遙測資料傳送至專案。您不需要部署收集器,但應用程式程式碼包含廠商專屬的依附元件。
如果您的運算環境支援 OpenTelemetry 收集器,建議您使用該收集器。如果環境不適合執行獨立的收集器程序,請使用直接的程序內匯出功能。
平台建議
由於 Google Cloud 運算環境的生命週期和 Sidecar 功能各不相同,因此最佳的收集模式會因平台而異。下列各節提供部署環境的具體建議。
GKE
如需 GKE 的一般資訊,請參閱 GKE 總覽。
| 類型 | 建議 |
|---|---|
| 指標 | 建議您使用 Google Cloud Managed Service for Prometheus。 如要進行插碼,請執行下列任一操作:
|
| 追蹤記錄 | 請執行下列步驟:
|
| 記錄 | 將應用程式設為輸出 JSON 結構化記錄至 GKE 會自動收集寫入 |
Compute Engine
如要瞭解 Compute Engine 的一般資訊,請參閱虛擬機器執行個體。
| 類型 | 建議 |
|---|---|
| 指標和追蹤記錄 | 請執行下列步驟:
或者,如果您只想設定 Prometheus 格式指標的收集作業,請使用 Ops Agent Prometheus 接收器,收集透過 Prometheus 用戶端程式庫或 OpenTelemetry SDK 檢測的指標。 |
| 記錄 | 請執行下列步驟: |
Cloud Run
如需 Cloud Run 的一般資訊,請參閱「什麼是 Cloud Run」。
| 類型 | 建議 |
|---|---|
| 指標和追蹤記錄 | 請執行下列步驟:
或者,如果您只想設定 Prometheus 格式指標的收集作業,請使用 Cloud Run 的 Prometheus Sidecar,收集透過 Prometheus 用戶端程式庫或 OpenTelemetry SDK 檢測的指標。 |
| 記錄 | 將應用程式設為輸出 JSON 結構化記錄至 Cloud Run 會自動收集寫入 |
Cloud Run functions
如要瞭解 Cloud Run functions 的一般資訊,請參閱「Cloud Run functions 簡介」。
| 類型 | 建議 |
|---|---|
| 指標 | Cloud Run functions 不支援直接寫入指標資料。您可以產生記錄指標。 |
| 追蹤記錄 | 使用適用於您所用語言的 OpenTelemetry SDK 和 Cloud Trace 匯出工具。 |
| 記錄 | 將應用程式設為輸出 JSON 結構化記錄至 Cloud Run functions 會自動收集寫入 |
App Engine
如需 App Engine 的一般資訊,請參閱 App Engine 總覽。
| 類型 | 建議 |
|---|---|
| 指標 | 使用適用於您所用語言的 OpenTelemetry SDK 和 Cloud Monitoring 匯出工具。 |
| 追蹤記錄 | 使用適用於您所用語言的 OpenTelemetry SDK 和 Cloud Trace 匯出工具。 |
| 記錄 | 將應用程式設為輸出 JSON 結構化記錄至 App Engine 會自動收集寫入 |
範例和導入指南
範例總覽說明下列以收集器為基礎的程式碼範例架構,以及必要的 Identity and Access Management 角色:
從 Trace 匯出工具遷移至 OTLP 端點:說明如何更新使用直接匯出的應用程式,以傳送 OTLP 格式的追蹤資料。
為生成式 AI 應用程式加入檢測功能:說明如何為使用 LangGraph 或 Agent Development Kit (ADK) 框架建構的生成式 AI 代理加入檢測功能或啟用該功能。
OpenTelemetry 說明文件
本節提供 OpenTelemetry SDK 的連結,以及 OTLP、Cloud Trace 和 Cloud Monitoring 的匯出工具。
一般參考資料: