選擇插樁方法

本頁提供建議,說明如何在不同Google Cloud 平台 (例如 Google Kubernetes Engine (GKE) 和 Cloud Run) 上檢測應用程式。如果應用程式尚未完成檢測,請參考這些建議,瞭解如何檢測應用程式,將遙測資料傳送至 Google Cloud。這個頁面的建議並非唯一解決方案,其他方法也可能有效。如需其他指引,請與Google Cloud 支援團隊聯絡。

最佳化建議適用於下列項目:

如需插碼範例的相關資訊,請參閱「程式碼範例」一節列出的文件。

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. 使用作業套件代理程式收集指標和追蹤記錄。

    如需範例,請參閱「收集 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. 安裝作業套件代理程式並設定接收器。如需範例,請參閱「記錄接收器」。

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 函式

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

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

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

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

App Engine

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

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

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

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

建議使用的記錄架構

為收集記錄,建議您使用可設定為將序列化 JSON 物件輸出至 stdoutstderr 或檔案的架構。無論是整合或安裝,記錄代理程式都會擷取檔案,並為 Cloud Logging 寫入結構化記錄。如要寫入記錄資料,建議採取下列做法:

程式碼範例

使用 OpenTelemetry 程式庫檢測應用程式時,您可以決定如何將遙測資料傳送至 Google Cloud 專案。基本方法有兩種:

  • 您可以使用 OpenTelemetry SDK 監測應用程式程式碼,並使用 SDK 內含的程序內 OTLP 匯出工具,將資料傳送至 OpenTelemetry 收集器。收集器會接收處理中匯出工具的資料,然後將資料傳送至 Google Cloud 專案。您對應用程式程式碼所做的變更與供應商無關。收集器包含將遙測資料傳送至 Google Cloud 專案的邏輯。

  • 您可以使用 OpenTelemetry SDK 檢測應用程式碼,並使用程序內匯出工具,將資料直接傳送至 Google Cloud 專案。您對應用程式所做的部分變更僅適用於特定供應商。不過,您不需要設定或部署收集器。

如果您的環境支援使用收集器,建議您使用 OpenTelemetry 收集器匯出遙測資料。在某些環境中,您必須使用程序內匯出工具,直接將資料傳送至Google Cloud 專案。

以收集器為準的匯出作業範例

如需特定語言的檢測範例,請參閱下列文件:

如要瞭解如何定義及部署收集器,請參閱樣本總覽

使用程序內匯出工具直接匯出的範例

OpenTelemetry 參照

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

一般參考資料:

Go

Java

JavaScript

Python