このドキュメント セットでは、Google が構築した OpenTelemetry Collector について説明します。また、Collector をデプロイして、計測対象のアプリケーションから OpenTelemetry Protocol(OTLP)トレース、指標、ログを収集し、そのデータを Google Cloud Observability などのバックエンドにエクスポートする方法についても説明します。
Google が構築した OpenTelemetry Collector は、アップストリームの OpenTelemetry Collector コンポーネントで構築されたアップストリームの OpenTelemetry Collector のオープンソースの製品版ビルドです。Cloud Native Computing Foundation の一部である OpenTelemetry は、アプリケーション モニタリング用に分散トレース、指標、ログを収集するオープンソースの API、ライブラリ、SDK を提供します。
Google が構築した OpenTelemetry Collector を使用すると、OpenTelemetry SDK を使用して計測されたアプリケーションから、関連する OTLP トレース、指標、ログを Google Cloud Observability やその他のバックエンドに送信できます。Collector はリソースのメタデータもキャプチャするため、アプリケーションのパフォーマンス データをインフラストラクチャのテレメトリー データと関連付けることができます。 Google Cloud Google が構築したコレクタを Google Cloud Observability で使用すると、アプリケーションとインフラストラクチャのパフォーマンスを改善するための分析情報を得ることができます。Collector の詳細については、Google が構築した OpenTelemetry Collector の説明をご覧ください。
Google が構築した OpenTelemetry Collector を使用する
Google が構築したコレクタを使用すると、Kubernetes(Google Kubernetes Engine を含む)、Container-Optimized OS、スタンドアロン コンテナで実行されているアプリケーションからテレメトリー データを収集できます。このセクションのドキュメントでは、Google が構築したコレクタを次の環境に構成してデプロイする方法について説明します。
コレクタを使用できるアプリケーションがない場合は、Google が構築したコレクタを使用して OpenTelemetry デモをデプロイできます。詳細については、OpenTelemetry のデモを試すをご覧ください。
OpenTelemetry 計測を使用してアプリケーションからトレース、指標、ログを生成する方法については、次のドキュメントをご覧ください。
Google が構築した OpenTelemetry Collector の説明
Google が構築した OpenTelemetry Collector は、アップストリームの OpenTelemetry コンポーネントとツールを使用してビルドされます。また、Google のビルドテスト リリース インフラストラクチャ(Artifact Registry)から完全にビルドされ、取得されます。Google が構築した Collector は、アップストリーム リポジトリの OpenTelemetry Collector ビルドと互換性があります。また、Kubernetes や GKE など、任意のコンテナベースのシステムに柔軟にデプロイできるように Docker イメージとしてホストされています。
Google が構築した Collector は、 Google Cloudで豊富なオブザーバビリティ エクスペリエンスを実現するためにほとんどのユーザーが必要とするコンポーネントが含まれた、Google がキュレートしたパッケージを提供します。コンポーネントを選択して独自のコレクタを手動でビルドする必要はありません。Google が構築したコレクタを使用すると、次のことができます。
- Google Cloud リソースのメタデータを収集して、アプリケーションのパフォーマンス データをインフラストラクチャ テレメトリー データと関連付けることができます。
- エクスポータ(OpenTelemetry をネイティブにサポートするバックエンドなど)を使用して、テレメトリー データを Google Cloud Observability または任意のバックエンドに転送します。
- 推奨構成とベスト プラクティスのセルフモニタリング(ヘルスチェックやバッチ処理など)を使用して、オンボーディングを簡素化します。
- ホストされた Docker イメージを使用して、Kubernetes や GKE などのコンテナベースのシステムに柔軟にデプロイします。
ベスト プラクティス
OpenTelemetry には、OpenTelemetry Collector の構成と Collector のスケーリングに関するベスト プラクティスのリストが用意されています。このセクションでは、その他の推奨事項について説明します。
ヘルスチェック拡張機能を使用する
ヘルスチェック拡張機能を使用すると、OpenTelemetry コレクタのステータスを確認するためにプローブできる HTTP URL を有効にできます。この拡張機能を使用すると、次のようなメリットがあります。
- 早期の問題検出: ヘルスチェックにより、コレクタのステータスを事前にモニタリングできるため、問題がテレメトリー データに悪影響を及ぼす前に潜在的な問題を検出できます。この予防措置は、オブザーバビリティ パイプラインの信頼性を確保するのに役立ちます。
- トラブルシューティングの改善: 問題が発生した場合、ヘルスチェックはコレクタの現在の状態に関する有益な分析情報を提供します。この情報により、診断と解決のプロセスが簡素化され、ダウンタイムが短縮され、トラブルシューティングの作業が効率化されます。
- 信頼性の向上: Collector の状態を継続的にモニタリングすることで、一貫したオペレーションが確保され、予期しない障害を防ぐことができます。この事前対策により、オブザーバビリティ システムの全体的な信頼性が向上し、テレメトリー データのデータ損失やギャップのリスクが最小限に抑えられます。
Kubernetes と GKE では、ヘルスチェック拡張機能は Kubernetes の liveness プローブと readiness プローブと互換性があります。これらのプローブの設定については、Kubernetes のベスト プラクティス: readiness プローブと liveness プローブを使用してヘルスチェックを設定をご覧ください。
Cloud Run では、単一のヘルスチェック拡張機能が、Cloud Run サービス構成の起動プローブとライブネス プローブの両方のエンドポイントとして機能します。
バッチ プロセッサを使用する
バッチ プロセッサは、トレース、指標、ログを収集し、バッチにバンドルして送信します。バッチ処理プロセッサを使用すると、次のメリットがあります。
- アウトバウンド接続を最小限に抑える: OpenTelemetry Collector は、データ転送をバッチにグループ化することで、アウトバウンド接続の数を大幅に削減します。この統合アプローチにより、割り当ての使用量が削減され、ネットワークの全体的な費用を削減できる可能性があります。
- データ圧縮の改善: バッチ処理により、より効率的なデータ圧縮が可能になり、転送されるデータの全体的なサイズが削減されます。
- バッチ処理戦略の柔軟性: サイズベースと時間ベースの両方のバッチ処理をサポートしているため、さまざまなシナリオに合わせて柔軟に最適化できます。サイズベースのバッチ処理では、バッチが特定のサイズに達する前に送信されます。時間ベースのバッチ処理では、特定の時間間隔が経過した後にバッチが送信されます。この柔軟性により、データの特定の特性とアプリケーションの特定の要件に合わせてバッチ処理戦略を微調整できます。
リリースノート
Google が構築した OpenTelemetry Collector は、アップストリームの OpenTelemetry Collector と同期してバージョン管理されています。現在のバージョンは v0.122.1 です。Artifact Registry に保存されている対応する Docker イメージは us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.122.1 です。新しいバージョンごとに、ユーザーに最も関連性の高い変更がこのページに記載されています。 Google Cloud
0.122.1:
- Google が構築した OpenTelemetry Collector: OpenTelemetry Collector Core バージョン v0.122.1 と OpenTelemetry Collector Contrib v0.122.0 に更新。
- 新しいコンポーネント
googleclientauthextension
を追加しました。 - 既知の問題に関するアドバイザリ:
- コレクタ セルフテレメトリーの OTLP エクスポートを使用する場合は、次の問題に注意してください。https://github.com/open-telemetry/opentelemetry-collector/issues/12701
- OpenTelemetry Collector Core リポジトリ: リリースノート
- OpenTelemetry Collector Contrib リポジトリ: リリースノート
0.121.0:
サポート性
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 コンポーネント(例:
Google が構築した OpenTelemetry Collector が Google Cloud Observability サービスと API を使用する際の問題(サーバーエラーや割り当てなど)については、Cloud カスタマーケアにお問い合わせください。
料金
Google が構築した OpenTelemetry Collector のデプロイと使用に料金はかかりません。
テレメトリー データを Google Cloudに送信する場合は、取り込み量に基づいて課金されます。トレース、ログ、Google Cloud Managed Service for Prometheus 指標の取り込みに関連する費用については、Google Cloud Observability の料金をご覧ください。
OpenTelemetry デモを試す
このセクションでは、Google が構築した OpenTelemetry Collector を使用して Google Cloudの OpenTelemetry デモをデプロイして実行する方法について説明します。
このセクションは省略可能です。Google が構築した Collector を独自のデプロイに統合する準備ができたら、次のドキュメントをご覧ください。
- Google Kubernetes Engine に Collector をデプロイする
- Container-Optimized OS にコレクタをデプロイする
- Cloud Run に Collector をデプロイする
始める前に
OpenTelemetry デモには、Workload Identity 連携が構成された Kubernetes クラスタが必要です。OpenTelemetry デモ用に Workload Identity 連携を設定する方法については、Workload Identity の前提条件をご覧ください。
Google が構築したコレクタを使用するようにデモを更新する
デフォルトでは、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.122.1
に置き換えて、行が次のようになり、ファイルを保存します。image: "us-docker.pkg.dev/cloud-ops-agents-artifacts/google-cloud-opentelemetry-collector/otelcol-google:0.122.1"
デモをデプロイする
更新された 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 は、Metrics Explorer を使用して表示できる Prometheus 指標を収集します。収集される指標はアプリの計測に依存しますが、Google が構築したコレクタも一部のセルフ指標を書き込みます。
Google が構築した OpenTelemetry Collector によって収集された指標を表示する手順は次のとおりです。-
Google Cloud コンソールで、[leaderboardMetrics Explorer] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] である結果を選択します。
- Google Cloud コンソールのツールバーで、Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
- [指標] 要素の [指標を選択] メニューを開いてフィルタバーに「
Prometheus Target
」と入力し、サブメニューを使用して特定のリソースタイプと指標を選択します。- [有効なリソース] メニューで、[Prometheus Target] を選択します。
- 指標を選択するには、[有効な指標カテゴリ] メニューと [有効な指標] メニューを使用します。Google が構築した OpenTelemetry Collector によって収集された指標には、接頭辞
prometheus.googleapis.com
が付いています。 - [適用] をクリックします。
- データの表示方法を構成します。
指標の測定値が累積の場合、Metrics Explorer はアライメント期間ごとに測定データを自動的に正規化し、グラフに率を表示します。詳細については、種類、タイプ、変換をご覧ください。
counter
指標など、integer 値または double 値が測定されると、Metrics Explorer はすべての時系列を自動的に合計します。この動作を変更するには、[集計] エントリの最初のメニューを [なし] に設定します。グラフの構成の詳細については、Metrics Explorer 使用時の指標の選択をご覧ください。
トレースを表示する
トレースデータを表示するには、次の操作を行います。
-
Google Cloud コンソールで、[Trace エクスプローラ] ページに移動します。
このページは、検索バーを使用して見つけることもできます。
- Google Cloud コンソールのツールバーで、Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
- ページの表セクションで、行を選択します。
[トレースの詳細] パネルのガントチャートで、スパンを選択します。
トレースされたリクエストに関する情報が表示されるパネルが開きます。詳細には、メソッド、ステータス コード、バイト数、呼び出し元のユーザー エージェントが含まれます。
このトレースに関連付けられているログを表示するには、[ログとイベント] タブを選択します。
このタブには、個々のログが表示されます。ログエントリの詳細を表示するには、ログエントリを開きます。[ログを表示] をクリックし、ログ エクスプローラを使用してログを表示することもできます。
Cloud Trace エクスプローラの使用方法について詳しくは、トレースを検索して調査するをご覧ください。
ログを表示する
ログ エクスプローラではログを調査できます。また、関連するトレース(存在する場合)を確認することもできます。
-
Google Cloud コンソールで、[ログ エクスプローラ] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが「Logging」の結果を選択します。
計測対象のアプリのログエントリを見つけます。詳細を表示するには、ログエントリを開きます。
トレース メッセージを含むログエントリの [
トレース] をクリックし、[トレースの詳細を表示] を選択します。
[トレースの詳細] パネルが開き、選択したトレースが表示されます。
ログ エクスプローラの使用方法については、ログ エクスプローラを使用してログを表示するをご覧ください。