選擇插樁方法

您可以根據 Google Cloud 運算平台和遙測需求,為應用程式選擇最有效的檢測方法。本指南提供 Google Kubernetes Engine (GKE)、Compute Engine 和 Cloud Run 的建議,協助您決定要使用 Google 建構的 OpenTelemetry Collector、Ops Agent,還是直接在程序內匯出 OpenTelemetry。

本文提供一般建議,以及下列平台的指南:

如需範例應用程式,請參閱「範例和導入指南」。

本頁提供的建議並非唯一解決方案,其他方法也可能有效。如需其他指引,請與 Cloud Customer Care 聯絡。

一般建議

本節提供檢測應用程式的一般建議。如需個別平台的指南,請參閱「平台建議」。

OpenTelemetry 收集架構

使用 OpenTelemetry 程式庫檢測應用程式時,您可以透過獨立的 OpenTelemetry 收集器轉送遙測資料,或直接從應用程式程序匯出。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。

如要檢測,請執行下列任一操作:

追蹤記錄

請執行下列步驟:

  1. 在 Google Kubernetes Engine 部署 Google 建構的 OpenTelemetry Collector。

    收集器會從 SDK 的程序內 OTLP 匯出工具接收追蹤記錄資料,處理資料後,再使用 Telemetry (OTLP) API 將處理過的資料傳送至 Google Cloud 專案。

  2. 使用適用於您語言的 OpenTelemetry SDK 和 OTLP 匯出工具。
記錄

將應用程式設為輸出 JSON 結構化記錄至 stdout 和 stderr。如需架構清單,請參閱「建議的記錄架構」。

GKE 會自動收集寫入 stdout 和 stderr 的記錄。詳情請參閱「關於 GKE 記錄檔」。

Compute Engine

如需 Compute Engine 的一般資訊,請參閱「虛擬機器執行個體」。

類型 建議
指標和追蹤記錄

請執行下列步驟:

  1. 使用 Ops Agent 收集指標和追蹤記錄。

    如需範例,請參閱「收集 OpenTelemetry Protocol (OTLP) 指標和追蹤記錄」。本指南說明如何設定 Ops Agent,從 SDK 的程序內 OTLP 匯出工具接收指標和追蹤記錄資料、轉換資料,然後將資料傳送至 Google Cloud 專案。指標資料會透過 Cloud Monitoring API 傳送,追蹤記錄資料則會透過 Cloud Trace API 傳送。

  2. 使用適用於您語言的 OpenTelemetry SDK 和 OTLP 匯出工具。

或者,如果只想設定 Prometheus 格式指標的收集作業,請使用 Ops Agent Prometheus 接收器,收集透過 Prometheus 用戶端程式庫或 OpenTelemetry SDK 檢測的指標。

記錄

請執行下列步驟:

  1. 將應用程式設為將 JSON 結構化記錄輸出至檔案。 如需架構清單,請參閱「建議的記錄架構」。
  2. 安裝 Ops Agent 並設定接收器。如需範例,請參閱「記錄接收器」。

Cloud Run

如需 Cloud Run 的一般資訊,請參閱「什麼是 Cloud Run」。

類型 建議
指標和追蹤記錄

請執行下列步驟:

  1. 使用適用於您語言的 OpenTelemetry SDK 和 OTLP 匯出工具。
  2. 部署 OpenTelemetry sidecar,收集指標和追蹤記錄。

    如需範例,請參閱下列文件:

  3. Cloud Run 服務採用以執行個體為依據的計費模式。如果採用以執行個體為依據的計費方式,系統會在整個執行個體生命週期分配 CPU,這是因為 OpenTelemetry 檢測會執行背景程序。詳情請參閱「Cloud Run 服務的計費設定」。

或者,如果只想設定 Prometheus 格式指標的收集作業,請使用 Cloud Run 的 Prometheus 補充資訊,收集透過 Prometheus 用戶端程式庫或 OpenTelemetry SDK 檢測的指標。

記錄

將應用程式設為輸出 JSON 結構化記錄至 stdout 和 stderr。如需架構清單,請參閱「建議的記錄架構」。

Cloud Run 會自動收集寫入 stdout 和 stderr 的記錄。詳情請參閱「寫入容器記錄」。

Cloud Run functions

如要瞭解 Cloud Run functions 的一般資訊,請參閱「Cloud Run functions 總覽」。

類型 建議
指標 Cloud Run functions 不支援直接寫入指標資料。您可以產生記錄指標。
追蹤記錄 使用適用於您語言的 OpenTelemetry SDK 和 OTLP 匯出工具。
記錄

將應用程式設為輸出 JSON 結構化記錄至 stdout 和 stderr。如需架構清單,請參閱「建議的記錄架構」。

Cloud Run functions 會自動收集寫入 stdout 和 stderr 的記錄。詳情請參閱「Cloud Run functions:監控與記錄總覽」。

App Engine

如需 App Engine 的一般資訊,請參閱「App Engine 總覽」。

類型 建議
指標 使用適用於您語言的 OpenTelemetry SDK 和 OTLP 匯出工具。
追蹤記錄 使用適用於您語言的 OpenTelemetry SDK 和 OTLP 匯出工具。
記錄

將應用程式設為輸出 JSON 結構化記錄至 stdout 和 stderr。如需架構清單,請參閱「建議的記錄架構」。

App Engine 會自動收集寫入 stdout 和 stderr 的記錄。詳情請參閱「寫入及查看記錄」。

發現內容和導入指南

OpenTelemetry 說明文件

本節提供 OpenTelemetry SDK 和 OTLP 匯出工具的連結,並提供不同語言版本。

一般參考資料:

Go

Java

JavaScript

Python