Linux ホスト上の OpenTelemetry

OpenTelemetry をシステムパッケージとしてインストールし、Linux ホスト上で動作するアプリケーションを自動的に計装します。

OpenTelemetry のセットアップは通常、アプリケーションの実行環境に依存します。 OpenTelemetry Operator のおかげで高度に自動化されている Kubernetes や、OpenTelemetry Lambda レイヤーを備えた Functions as a Service のような環境もあります。 しかし、多くの Java、.NET、Node.js、Python アプリケーションは Linux ホスト上で直接動作しており、これらの計装にはエージェントを手動でダウンロードし、環境変数を自分で設定する必要がありました。

OpenTelemetry Packaging SIG は、OpenTelemetry をホスト自体の依存関係にするシステムパッケージを提供しています。 パッケージを1つインストールしてアプリケーションを再起動するだけで、ホスト上の Java、.NET、Node.js、Python プロセスが自動的に計装され、テレメトリーの送信を開始します。

仕組み

opentelemetry パッケージは、以下に依存するメタパッケージです。

  • OpenTelemetry Injector。 プロセスの起動時にサポートされているランタイムが対応する自動計装を読み込むよう、ダイナミックリンカーを設定します。
  • Java、.NET、Node.js、Python 向けの言語固有の自動計装パッケージ。

インストール後、インジェクターはホスト上で新たに起動された、動的リンクされたすべてのプロセスにアタッチします。 サポートされているランタイムのプロセスにのみ作用し、対応する自動計装を読み込みます。 OpenTelemetry SDK がないランタイムのプロセスには影響しません。 すでに実行中のアプリケーションは、再起動後に計装されます。 デフォルトでは、テレメトリーは OTLP を使用して localhost のポート 4317(gRPC)および 4318(HTTP)にエクスポートされるため、通常はローカルの OpenTelemetry コレクターを実行してテレメトリーを受信し、転送します。 コレクター自体は OpenTelemetry Collector Releases プロジェクトによってシステムパッケージとして配布されています。 このシステムパッケージリポジトリへの統合は opentelemetry-collector-releases#1561 で追跡されています。

Packaging SIG と OBI SIG は、OpenTelemetry eBPF Instrumentation もシステムパッケージとして提供し、Go、Rust、C++ などの追加ランタイムにゼロコード計装を拡張する予定です。

はじめに

  • インストール:リポジトリを追加し、Debian、Ubuntu、Fedora、または RHEL とその派生ディストリビューションにパッケージをインストールします。
  • 設定:インジェクターがコレクターまたはバックエンドを参照するよう設定し、計装対象を調整します。

ステータスと制限事項

さらに詳しく


インストール

OpenTelemetry パッケージリポジトリを追加し、Debian、Ubuntu、Fedora、または RHEL とその派生ディストリビューションにシステムパッケージをインストールします。

設定

OpenTelemetry Injector の参照先をコレクター またはバックエンドに変更し、Linux ホスト上で計装する対象を制御します。