這組文件說明 Google 建構的 OpenTelemetry Collector,並說明如何部署 Collector,從已檢測的應用程式收集 OpenTelemetry Protocol (OTLP) 追蹤記錄、指標和記錄檔,然後將這些資料匯出至 Google Cloud Observability 和其他後端。
Google 建構的 OpenTelemetry Collector 是上游 OpenTelemetry Collector 的開放原始碼版本,可供正式環境使用,並以 OpenTelemetry Collector 上游元件建構而成。OpenTelemetry 是雲端原生運算基金會 (Cloud Native Computing Foundation) 的一部分,提供開放原始碼 API、程式庫和 SDK,可收集分散式追蹤記錄、指標和記錄檔,用於監控應用程式。
透過 Google 內建的 OpenTelemetry Collector,您可以將相關的 OTLP 追蹤記錄、指標和記錄檔,從使用 OpenTelemetry SDK 檢測的應用程式傳送至 Google Cloud Observability 和其他後端。Collector 也會擷取 Google Cloud 資源的中繼資料,方便您將應用程式成效資料與基礎架構遙測資料建立關聯。搭配使用 Google Cloud Observability 與 Google 建構的 Collector,可取得洞察資訊,進而提升應用程式和基礎架構的效能。如要進一步瞭解 Collector,請參閱「Google 建構的 OpenTelemetry Collector 說明」。
使用 Google 打造的 OpenTelemetry Collector
您可以透過 Google 建構的收集器,從 Kubernetes (包括 Google Kubernetes Engine)、Container-Optimized OS 或獨立容器上執行的應用程式收集遙測資料。本節的說明文件說明如何在下列環境中設定及部署 Google 建構的 Collector:
如果您沒有可使用 Collector 的應用程式,可以部署 OpenTelemetry 示範,並搭配 Google 建構的 Collector。詳情請參閱「試用 OpenTelemetry 示範應用程式」。
如要瞭解如何使用 OpenTelemetry 檢測功能,從應用程式產生追蹤記錄、指標和記錄檔,請參閱下列文件:
Google 建構的 OpenTelemetry 收集器說明
Google 建構的 OpenTelemetry Collector 是使用上游 OpenTelemetry 元件和工具建構而成,完全是從 Google 建構測試發布基礎架構 (Artifact Registry) 建構及擷取。Google 建構的 Collector 與上游存放區的 OpenTelemetry Collector 建構版本相容。此外,這項服務也以 Docker 映像檔的形式託管,方便您在任何以容器為基礎的系統上彈性部署,包括 Kubernetes 和 GKE。
Google 打造的 Collector 提供 Google 精選套件,內含大多數使用者在 Google Cloud上獲得豐富可觀測體驗所需的元件。您不必選取元件,也不必手動建構自己的 Collector。使用 Google 打造的 Collector,您可以:
- 收集 Google Cloud 資源的中繼資料,以便將應用程式效能資料與基礎架構遙測資料建立關聯。
- 使用匯出工具 (包括原生支援 OpenTelemetry 的後端),將遙測資料傳送至 Google Cloud Observability 或您選擇的後端。
- 透過建議的設定和最佳做法自我監控 (包括健康狀態檢查和批次處理),簡化新手上路程序。
- 使用代管 Docker 映像檔,在任何以容器為基礎的系統 (包括 Kubernetes 和 GKE) 上彈性部署。
最佳做法
OpenTelemetry 維護了設定 OpenTelemetry Collector 和擴大 Collector 規模的最佳做法清單。本節提供一些額外建議。
使用健康狀態檢查擴充功能
健康狀態檢查擴充功能會啟用可探測的 HTTP 網址,以檢查 OpenTelemetry Collector 的狀態。使用這項擴充功能可享有下列優點:
- 及早偵測問題:健康檢查可主動監控收集器的狀態,在潛在問題對遙測資料造成負面影響前偵測到問題。這項預防措施有助於確保可觀測性管道的可靠性。
- 改善疑難排解:發生問題時,健康檢查可提供 Collector 目前狀態的寶貴洞察資料。這項資訊可簡化診斷和解決程序、縮短停機時間,並簡化疑難排解工作。
- 提升可靠性:持續監控收集器的健康狀態,確保運作穩定,避免發生意外故障。這項主動式措施可提升整體可觀測性系統的可靠性,並盡量降低資料遺失或遙測資料缺漏的風險。
在 Kubernetes 和 GKE 上,健康狀態檢查擴充功能與 Kubernetes 執行中和已就緒探測器相容。如要瞭解如何設定這些探測器,請參閱「Kubernetes 最佳做法:設定健康狀態檢查來探測 readiness 和 liveness」。
在 Cloud Run 中,單一健康狀態檢查擴充功能可做為 Cloud Run 服務設定中啟動和存活探查的端點。
使用批次處理器
批次處理器會收集追蹤記錄、指標或記錄檔,並將這些項目組合成批次進行傳輸。使用批次處理器可享有以下好處:
- 減少輸出連線:OpenTelemetry Collector 會將資料傳輸作業分批處理,大幅減少輸出連線數。這種整合式做法可降低配額用量,並有助於降低整體網路費用。
- 提升資料壓縮率:批次處理可提高資料壓縮效率,減少傳輸的資料總大小。
- 批次處理策略的彈性:支援以大小和時間為準的批次處理,可彈性因應不同情境進行最佳化。以大小為準的批次處理方式可確保批次達到特定大小後再傳送,而以時間為準的批次處理方式則會在特定時間間隔過後傳送批次。這項彈性功能可讓您微調批次處理策略,以符合資料的特定特徵和應用程式的特定需求。
使用 googlesecretmanager
提供者
googlesecretmanager
提供者可讓您在 Secret Manager 中儲存設定檔所需的機密資訊。Secret Manager 專門用於安全地儲存、存取及管理機密資料。使用 googlesecretmanager
供應商可享有下列好處:
- 提升安全性:設定檔不會包含密碼等私密資訊。
- 降低外洩風險:Secret Manager 會在 Collector 初始化期間擷取密鑰,避免純文字密鑰意外記錄在記錄檔中。
如要瞭解如何使用這個供應商,請參閱「在 Collector 設定中管理密鑰」。
版本資訊
Google 建構的 OpenTelemetry Collector 版本會與上游 OpenTelemetry Collector 同步。目前版本為 v0.131.0;對應的 Docker 映像檔儲存在 Artifact Registry 中,為 us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.131.0。 這個頁面會顯示每個新版本最相關的 Google Cloud 使用者變更。
0.131.0:
- Google 建構的 OpenTelemetry Collector:更新至 OpenTelemetry Collector Core 和 OpenTelemetry Collector Contrib 版本 v0.131.0。
- OpenTelemetry Collector Core 存放區: 版本資訊 (v0.131.0)
- OpenTelemetry Collector Contrib 存放區: 版本資訊 (v0.131.0)
0.130.0:
- Google 建構的 OpenTelemetry Collector:更新至 OpenTelemetry Collector Core 和 OpenTelemetry Collector Contrib v0.130.0 版。
- 先前版本中 Prometheus 接收器的已知問題現已修正。
- 已新增 healthcheckv2extension 元件。
- OpenTelemetry Collector Core 存放區: 版本資訊 (v0.130.0)
- OpenTelemetry Collector Contrib 存放區: 版本資訊 (v0.130.0)
0.129.0:
- Google 建構的 OpenTelemetry Collector:更新至 OpenTelemetry Collector Core 和 OpenTelemetry Collector Contrib 版本 v0.129.0。
- 已知問題諮詢:
- Prometheus 接收器:網址的基本驗證停止運作 (問題連結);
- 這個問題會影響 0.127.0、0.128.0 和 0.129.0 版。
- 如要解決這個問題,請使用 0.126.0 以下版本。
- Prometheus 接收器:網址的基本驗證停止運作 (問題連結);
- OpenTelemetry Collector Core 存放區: 版本資訊 (v0.129.0)
- OpenTelemetry Collector Contrib 存放區: 版本資訊 (v0.129.0)
0.128.0:
- Google 建構的 OpenTelemetry Collector:更新至 OpenTelemetry Collector Core 和 OpenTelemetry Collector Contrib 版本 v0.128.0。
- OpenTelemetry Collector Core 存放區: 版本資訊 (v0.127.0)
- OpenTelemetry Collector Contrib 存放區: 版本資訊 (v0.127.0)
0.127.0:
- Google 建構的 OpenTelemetry Collector:更新至 OpenTelemetry Collector Core 和 OpenTelemetry Collector Contrib v0.127.0 版。
- OpenTelemetry Collector Core 存放區: 版本資訊 (v0.127.0)
- OpenTelemetry Collector Contrib 存放區: 版本資訊 (v0.127.0)
0.126.0:
- Google 建構的 OpenTelemetry Collector:更新至 OpenTelemetry Collector Core 和 OpenTelemetry Collector Contrib v0.126.0 版。
- 新增元件:
- 處理器:
metricstarttime
- 供應商:
googlesecretmanager
。如要瞭解如何使用這個供應商,在 Collector 設定中排除純文字密鑰,請參閱「管理 Collector 設定中的密鑰」。
- 處理器:
- OpenTelemetry Collector Core 存放區:
- OpenTelemetry Collector Contrib 存放區:
0.124.1:
- Google 建構的 OpenTelemetry Collector:更新至 OpenTelemetry Collector Core v0.124.0 版,以及 OpenTelemetry Collector Contrib v0.124.1 版。
- 新增元件:
- 接收器:
dockerstats
、jmx
、redis
、statsd
、syslog
- 處理器:
metricsgeneration
- 接收器:
- OpenTelemetry Collector Core 存放區:
- OpenTelemetry Collector Contrib 存放區:
0.122.1:
- Google 建構的 OpenTelemetry Collector:更新至 OpenTelemetry Collector Core 版本 v0.122.1,以及 OpenTelemetry Collector Contrib v0.122.0。
- 新增元件:
googleclientauthextension
- 已知問題諮詢:
- 如果您使用 OTLP 匯出收集器自我遙測資料,請注意下列 OpenTelemetry Collector 問題:https://github.com/open-telemetry/opentelemetry-collector/issues/12701
- OpenTelemetry Collector Core 存放區: 版本資訊
- OpenTelemetry Collector Contrib 存放區: 版本資訊
0.121.0:
支援性
如要回報錯誤、要求功能或提出一般問題,請在適當的 GitHub 存放區中提出問題。Google 會監控這些存放區,並盡可能分類及解決問題。
Google 建構的 OpenTelemetry Collector 封裝存放區,適用於下列相關問題:
- 包裝
- 部署作業 ( Google Cloud)
- Google Cloud內的驗證
- 要求新增 OpenTelemetry 元件
OpenTelemetry Collector Contrib 存放區,適用於下列相關問題:
- Google 專屬的 OpenTelemetry 元件,例如:
googlecloudexporter
googlemanagedprometheusexporter
googleclientauthextension
resourcedetectionprocessor
- 由上游社群管理的非 Google 專屬 OpenTelemetry 元件
- Google 專屬的 OpenTelemetry 元件,例如:
如果 Google-Built OpenTelemetry Collector 使用 Google Cloud Observability 服務和 API 時發生問題 (例如伺服器錯誤或配額問題),請與 Cloud 客戶服務聯絡。
定價
部署及使用 Google 打造的 OpenTelemetry Collector 不會產生費用。
將遙測資料傳送至 Google Cloud時,系統會根據擷取量向您收費。如要瞭解擷取追蹤記錄、記錄和 Google Cloud Managed Service for Prometheus 指標的相關費用,請參閱 Google Cloud Observability 定價。
試用 OpenTelemetry 示範應用程式
本節說明如何部署及執行 OpenTelemetry 試用版,以搭配 Google 建構的 OpenTelemetry 收集器使用Google Cloud。
這個部分為選用。如要將 Google 建構的 Collector 整合至自己的部署作業,請參閱下列文件:
- 在 Google Kubernetes Engine 上部署 Collector
- 在 Container-Optimized OS 上部署 Collector
- 在 Cloud Run 上部署 Collector
事前準備
OpenTelemetry 示範需要已設定 Workload Identity Federation 的 Kubernetes 叢集。如要瞭解如何為 OpenTelemetry 示範設定 Workload Identity Federation,請參閱「Workload Identity 先決條件」。
更新試用版,改用 Google 建構的 Collector
根據預設,OpenTelemetry 示範會使用上游 OpenTelemetry Collector。如要改用 Google 建構的 OpenTelemetry Collector,請按照下列步驟操作:
複製 OpenTelemetry 示範存放區:
git clone https://github.com/GoogleCloudPlatform/opentelemetry-demo.git
前往
kubernetes
目錄。cd kubernetes
編輯
opentelemetry-demo.yaml
檔案,取代要使用的 Collector 圖片行。該行看起來如下所示,但版本可能不同:image: "otel/opentelemetry-collector-contrib:0.108.0"
將
image:
欄位的值替換為us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.131.0
,使該行看起來如下所示,然後儲存檔案:image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.131.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 Collector 會收集 Prometheus 指標,您可以使用 Metrics Explorer 查看這些指標。收集的指標取決於應用程式的檢測,不過 Google 建構的收集器也會寫入一些自我指標。
如要查看 Google 內建 OpenTelemetry Collector 收集的指標,請按照下列步驟操作:-
前往 Google Cloud 控制台的 leaderboard「Metrics Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果。
- 在 Google Cloud 控制台的工具列中,選取您的 Google Cloud 專案。 如要進行 App Hub 設定,請選取 App Hub 主專案或已啟用應用程式的資料夾的管理專案。
- 在「指標」元素中,展開「選取指標」選單,
在篩選列中輸入
Prometheus Target
, 然後使用子選單選取特定資源類型和指標:- 在「Active resources」(有效資源) 選單中,選取「Prometheus Target」(Prometheus 目標)。
- 如要選取指標,請使用「使用中的指標類別」和「使用中的指標」選單。
Google 建構的 OpenTelemetry Collector 收集的指標會加上
prometheus.googleapis.com
前置字元。 - 按一下 [套用]。
- 設定資料的顯示方式。
如果指標的測量值是累計值,指標探索工具會自動以對齊週期將測量資料正規化,因此圖表會顯示比率。詳情請參閱「種類、型別和轉換」。
如果測量整數或雙精度值 (例如使用
counter
指標),Metrics Explorer 會自動加總所有時間序列。如要變更這項行為,請將「彙整」項目的第一個選單設為「無」。如要進一步瞭解如何設定圖表,請參閱「使用 Metrics Explorer 時選取指標」。
查看追蹤記錄
如要查看追蹤記錄資料,請按照下列步驟操作:
-
前往 Google Cloud 控制台的「Trace Explorer」頁面:
您也可以透過搜尋列找到這個頁面。
- 在 Google Cloud 控制台的工具列中,選取您的 Google Cloud 專案。如要進行 App Hub 設定,請選取 App Hub 主專案或已啟用應用程式的資料夾管理專案。
- 在頁面的表格部分中,選取一列。
在「Trace details」(追蹤記錄詳細資料) 面板的甘特圖中,選取時距。
畫面上會開啟面板,顯示追蹤要求相關資訊。這些詳細資料包括方法、狀態碼、位元組數,以及呼叫者的使用者代理程式。
如要查看與這項追蹤記錄相關聯的記錄檔,請選取「記錄檔和事件」分頁標籤。
這個分頁會顯示個別記錄。如要查看記錄項目的詳細資料,請展開記錄項目。您也可以按一下「查看記錄」,然後使用記錄探索工具查看記錄。
如要進一步瞭解如何使用 Cloud Trace 探索工具,請參閱「尋找及探索追蹤記錄」。
查看記錄檔
您可以在記錄檔探索器中檢查記錄,也可以查看相關聯的追蹤記錄 (如有)。
-
前往 Google Cloud 控制台的「Logs Explorer」頁面:
如果您是使用搜尋列尋找這個頁面,請選取子標題為「Logging」的結果。
找出已插碼應用程式的記錄項目。如要查看詳細資料,請展開記錄項目。
在含有追蹤記錄訊息的記錄項目上,按一下「追蹤記錄」
,然後選取「查看追蹤記錄詳細資料」。
「Trace details」(追蹤記錄詳細資料) 面板隨即開啟,並顯示所選追蹤記錄。
如要進一步瞭解如何使用記錄檔探索工具,請參閱「使用記錄檔探索工具查看記錄檔」。