Google 建構的 OpenTelemetry 收集器總覽

這組文件說明 Google 建構的 OpenTelemetry Collector,並說明如何部署 Collector,收集來自檢測應用程式的 OpenTelemetry Protocol (OTLP) 追蹤記錄、指標和記錄檔,並將這些資料匯出至 Google Cloud Observability 和其他後端。

Google 建構的 OpenTelemetry Collector 是開放原始碼的實際生產環境版本,源自於使用上游 OpenTelemetry Collector 元件建構的 OpenTelemetry Collector。OpenTelemetry 是 雲端原生運算基金會的一部分,提供開放原始碼 API、程式庫和 SDK,可收集分散式追蹤記錄、指標和記錄,用於應用程式監控。

Google 建構的 OpenTelemetry Collector 可讓您將相關的 OTLP 追蹤記錄、指標和記錄,從使用 OpenTelemetry SDK 檢測的應用程式傳送至 Google Cloud Observability 和其他後端。收集器也會擷取 Google Cloud 資源的中繼資料,方便您將應用程式效能資料與基礎架構遙測資料建立關聯。搭配 Google 內建的收集器使用 Google Cloud Observability,您就能取得洞察資料,改善應用程式和基礎架構的效能。如要進一步瞭解收集器,請參閱「Google 建構的 OpenTelemetry 收集器說明」。

使用 Google 建構的 OpenTelemetry Collector

您可以使用 Google 建構的收集器,從在 Kubernetes (包括 Google Kubernetes Engine)、Container-Optimized OS 或獨立容器上執行的應用程式中收集遙測資料。本節的文件說明如何在下列環境中設定及部署 Google 建構的收集器:

如果您沒有準備好使用收集器的應用程式,可以使用 Google 建構的收集器部署 OpenTelemetry 示範。詳情請參閱「試用 OpenTelemetry 示範」。

如要瞭解如何使用 OpenTelemetry 檢測工具,從應用程式產生追蹤記錄、指標和記錄檔,請參閱下列文件:

Google 建構的 OpenTelemetry 收集器說明

Google 建構的 OpenTelemetry Collector 是使用上游 OpenTelemetry 元件和工具建構,並完全從 Google 建構-測試-發布基礎架構 (Artifact Registry) 擷取。Google 建構的收集器與上游存放區中的 OpenTelemetry 收集器版本相容。它也以 Docker 映像檔形式代管,可在任何容器系統 (包括 Kubernetes 和 GKE) 上靈活部署。

Google 建構的 Collector 提供 Google 精選套件,其中包含大多數使用者在 Google Cloud上享有豐富可觀察性體驗所需的元件。您不必選取元件,也不必手動建構自己的收集器。使用 Google 建構的收集器,您可以:

  • 收集 Google Cloud 資源的中繼資料,以便將應用程式效能資料與基礎架構遙測資料建立關聯。
  • 使用匯出工具 (包括原生支援 OpenTelemetry 的後端),將遙測資料轉送至 Google Cloud Observability 或您選擇的後端。
  • 透過建議的設定和最佳做法自助監控,簡化新手上路流程,包括健康檢查和批次處理。
  • 使用代管 Docker 映像檔,在任何容器系統 (包括 Kubernetes 和 GKE) 上靈活部署。

最佳做法

OpenTelemetry 會維護設定 OpenTelemetry Collector擴充 Collector 的最佳做法清單。本節會提供一些額外的建議。

使用健康狀態檢查擴充功能

健康狀態檢查擴充功能可啟用可進行探測的 HTTP 網址,以便檢查 OpenTelemetry 收集器的狀態。使用這個擴充功能可帶來下列好處:

  • 及早偵測問題:健康檢查可協助您主動監控 Collectors 的狀態,在潛在問題對遙測資料造成負面影響前,即可偵測到這些問題。這項預防措施有助於確保可觀察性管道的可靠性。
  • 改善疑難排解功能:當問題發生時,健康檢查可提供有關 Collectors 目前狀態的重要洞察資料。這類資訊可簡化診斷和解決問題的程序,減少停機時間,並簡化疑難排解作業。
  • 提高可靠性:持續監控收集器的健康狀況,確保運作一致性,並避免發生意外故障。這項預防措施可提升可觀察性系統的整體可靠度,並盡可能降低遙測資料遺失或缺漏的風險。

在 Kubernetes 和 GKE 上,健康狀態檢查擴充功能與 Kubernetes 有效性和就緒性探測器相容。如要瞭解如何設定這些探測器,請參閱「Kubernetes 最佳做法:設定健康狀態檢查來探測 readiness 和 liveness」一文。

在 Cloud Run 中,單一健康狀態檢查擴充功能可做為 Cloud Run 服務設定中啟動和生存探針的端點。

使用批次處理工具

批次處理器會收集追蹤記錄、指標或記錄,並將這些項目組合成批次進行傳輸。使用批次處理工具可享有下列優點:

  • 減少傳出連線數量:OpenTelemetry 收集器會將資料傳輸作業分組成批次,大幅減少傳出連線數量。這種整合方法可降低配額使用量,並有可能降低整體網路費用。
  • 改善資料壓縮功能:分批處理可提高資料壓縮效率,減少傳輸的整體資料大小。
  • 彈性的批次處理策略:同時支援以大小和時間為依據的批次處理,可彈性因應各種情境進行最佳化。以大小為依據的批次處理可確保批次在達到特定大小後才會傳送,而以時間為依據的批次處理則會在特定時間間隔過後傳送批次。這項彈性功能可讓您微調批次處理策略,以符合資料的特定特性和應用程式的特定需求。

使用 googlesecretmanager 提供者

googlesecretmanager 供應器可讓您在 Secret Manager 中儲存設定檔所需的機密資訊。這項服務專門用於安全儲存、存取及管理機密資料。使用 googlesecretmanager 供應器可享有下列優點:

  • 強化安全性:設定檔案不會包含密碼等機密資訊。
  • 降低外洩風險:Secret Manager 會在收集器初始化期間擷取密鑰,避免純文字密鑰意外記錄在記錄檔中。

如要瞭解如何使用這個供應工具,請參閱「在收集器設定中管理密鑰」。

版本資訊

Google 建構的 OpenTelemetry Collector 會與上游 OpenTelemetry Collector 同步版本。目前的版本為 v0.128.0;相應的 Docker 映像檔 (儲存在 Artifact Registry 中) 為 us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.128.0。每個新版本都會在本頁列出與 Google Cloud 使用者最相關的變更。

支援性

如有任何 Google 建構的 OpenTelemetry Collector 用戶端問題,包括功能要求、錯誤報告和一般問題,請在適當的 GitHub 存放區中提出問題。Google 會監控這些存放區,並盡力分類及解決問題。

  • Google 建構的 OpenTelemetry Collector 封裝存放區,適用於下列相關問題:

    • 包裝
    • Google Cloud上的部署作業
    • Google Cloud中的驗證
    • 要求新增 OpenTelemetry 元件
  • OpenTelemetry Collector Contrib 存放區,針對下列問題:

    • Google 專屬的 OpenTelemetry 元件,例如:
      • googlecloudexporter
      • googlemanagedprometheusexporter
      • googleclientauthextension
      • resourcedetectionprocessor
    • 由上游社群管理的非 Google 專屬 OpenTelemetry 元件

如果 Google 建構的 OpenTelemetry Collector 使用 Google Cloud Observability 服務和 API 時發生問題 (例如伺服器錯誤或配額),請與 Cloud 客戶服務團隊聯絡。

定價

部署及使用 Google 建構的 OpenTelemetry Collector 不會產生任何費用。

將遙測資料傳送至 Google Cloud時,系統會根據擷取量收費。如要瞭解擷取追蹤記錄、記錄和 Google Cloud Managed Service for Prometheus 指標的相關費用,請參閱 Google Cloud 可觀察性定價

試用 OpenTelemetry 範例

本節說明如何使用 Google 建構的 OpenTelemetry 收集器,部署並執行 Google Cloud 的 OpenTelemetry 示範。

這個部分為選填。如果您已準備好將 Google 建構的收集器整合至自家部署作業,請參閱下列文件:

事前準備

OpenTelemetry 示範需要已設定 Workload Identity Federation 的 Kubernetes 叢集。如要瞭解如何為 OpenTelemetry 示範設定 Workload Identity 聯盟,請參閱「Workload Identity 必要條件」。

更新示範程式,以便使用 Google 建構的收集器

根據預設,OpenTelemetry 示範會使用上游 OpenTelemetry Collector。如要改用 Google 建構的 OpenTelemetry 收集器,請按照下列步驟操作:

  1. 複製 OpenTelemetry 示範存放區:

    git clone https://github.com/GoogleCloudPlatform/opentelemetry-demo.git
    
  2. 前往 kubernetes 目錄。

    cd kubernetes
    
  3. 編輯檔案 opentelemetry-demo.yaml,取代收集器圖片要使用的行。該行看起來會像以下內容,但版本可能不同:

    image: "otel/opentelemetry-collector-contrib:0.108.0"
    

    image: 欄位的值替換為 us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.128.0,使該行看起來像以下內容,然後儲存檔案:

    image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.128.0"
    

部署示範

套用更新後的 opentelemetry-demo.yaml 檔案,部署該示範:

kubectl apply --namespace otel-demo -f opentelemetry-demo.yaml

連線至示範

套用更新後的設定後,您可以將資料轉送至本機埠。舉例來說,如要連線至 localhost:8080 的示範,請發出下列指令:

kubectl port-forward --n otel-demo svc/opentelemetry-demo-frontendproxy 8080:8080

接著,您可以使用瀏覽器連線至 localhost:8080 的示範內容。

查看遙測

OpenTelemetry 示範會使用 Google 建構的 OpenTelemetry Collector,將指標、追蹤記錄和記錄傳送至 Google Cloud 。如要瞭解該示範應用程式傳送的特定遙測資料,請參閱示範應用程式的說明文件中的「查看遙測資料」一節。

查看指標

Google 建構的 OpenTelemetry 收集器會收集 Prometheus 指標,您可以使用 Metrics Explorer 查看這些指標。收集的指標取決於應用程式的檢測功能,不過 Google 建構的收集器也會寫入一些自有指標。

如要查看 Google 建構的 OpenTelemetry 收集器收集的指標,請按照下列步驟操作:
  1. 前往 Google Cloud 控制台的 「Metrics Explorer」頁面:

    前往 Metrics Explorer

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果

  2. 在 Google Cloud 控制台的工具列中,選取 Google Cloud 專案。 如要設定 App Hub,請選取 App Hub 主機專案或已啟用應用程式的資料夾管理專案。
  3. 在「指標」元素中,展開「選取指標」選單,在篩選列中輸入 Prometheus Target,然後使用子選單選取特定資源類型和指標:
    1. 在「Active resources」選單中,選取「Prometheus Target」
    2. 如要選取指標,請使用「Active metric categories」和「Active metrics」選單。 由 Google 建構的 OpenTelemetry Collector 收集的指標會加上前置字串 prometheus.googleapis.com
    3. 按一下 [套用]
  4. 設定資料的檢視方式。

    當指標的測量值為累積值時,「Metrics Explorer」會自動根據對齊期間將測量資料標準化,因此圖表會顯示速率。詳情請參閱「類型、類型和轉換」。

    當系統測量整數或雙精度值時 (例如使用 counter 指標),Metrics Explorer 會自動加總所有時間序列。如要變更這項行為,請將「Aggregation」項目的第一個選單設為「None」

    如要進一步瞭解如何設定圖表,請參閱「在使用 Metrics Explorer 時選取指標」。

查看追蹤記錄

如要查看追蹤記錄資料,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Trace Explorer」頁面:

    前往「Trace Explorer」頁面

    您也可以透過搜尋列找到這個頁面。

  2. 在 Google Cloud 控制台的工具列中,選取您的 Google Cloud 專案。如要設定 App Hub,請選取 App Hub 主機專案或啟用應用程式的資料夾管理專案。
  3. 在頁面中的表格部分選取一列。
  4. 在「Trace details」面板的甘特圖中,選取所需時距。

    畫面上會開啟一個面板,顯示追蹤要求的相關資訊。這些詳細資料包括方法、狀態碼、位元組數量,以及呼叫端的使用者代理程式。

  5. 如要查看與此追蹤記錄相關聯的記錄,請選取「Logs & Events」分頁標籤。

    這個分頁會顯示個別記錄。如要查看記錄項目的詳細資料,請展開記錄項目。您也可以按一下「查看記錄檔」,然後使用記錄檔探索工具查看記錄檔。

如要進一步瞭解如何使用 Cloud Trace 探索工具,請參閱「尋找及探索追蹤記錄」一文。

查看記錄檔

您可以透過「記錄檔探索器」檢查記錄,也可以查看相關的追蹤記錄 (如有)。

  1. 前往 Google Cloud 控制台的「Logs Explorer」頁面:

    前往「Logs Explorer」(記錄檔探索工具)

    如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果

  2. 找出已檢測應用程式的記錄項目。如要查看詳細資料,請展開記錄項目。

  3. 在含有追蹤記錄訊息的記錄項目上,按一下 「Traces」,然後選取「View trace details」

    「Trace details」面板會隨即開啟,並顯示所選的追蹤記錄。

如要進一步瞭解如何使用記錄檔探索工具,請參閱「使用記錄檔探索工具查看記錄檔」。