選擇插樁方法

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

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

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

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

一般建議

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

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。

如要進行插碼,請執行下列任一操作:

追蹤記錄

請執行下列步驟:

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

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

  2. 使用適用於您所用語言的 OpenTelemetry SDK 和 OTLP 匯出器
記錄

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

GKE 會自動收集寫入 stdoutstderr 的記錄。詳情請參閱「關於 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 Sidecar,收集透過 Prometheus 用戶端程式庫OpenTelemetry SDK 檢測的指標。

記錄

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

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

Cloud Run functions

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

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

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

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

App Engine

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

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

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

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

範例和導入指南

OpenTelemetry 說明文件

本節提供 OpenTelemetry SDK 的連結,以及 OTLP、Cloud Trace 和 Cloud Monitoring 的匯出工具。

一般參考資料:

Go

Java

JavaScript

Python