Linux ホストでワンコマンド OpenTelemetry セットアップ

システム依存関係としての OpenTelemetry

アプリケーションやシステムに OpenTelemetry をセットアップするには、それらがどこで動作しているかに依存します。 OpenTelemetry Operator のおかげで Kubernetes は高度に自動化されていますし、AWS Lambda も OpenTelemetry Lambda レイヤーによって自動化されています。

しかし、Linux ホスト上で直接動作する数えきれないほどの Java、.NET、Node.js、Python アプリケーションには、このような自動化がありませんでした。 これらを計装するには、エージェントを手動でダウンロードし、環境変数を自分で設定する必要がありました。 今年2月にブリュッセルで開催された OTel Unplugged EU では、ある要望が繰り返し上がりました。 明確なパッケージング、インストール、使用方法のパスです。 皆さんが求めたのは次のようなものでした。

{apt|yum} install opentelemetry

そして今、実際にそれができるようになりました!

試してみよう

opentelemetry パッケージは、OpenTelemetry Injector と Java、.NET、Node.js、Python 向けの OpenTelemetry SDK および自動計装パッケージをインストールします。 インジェクターはホスト上のプロセス起動時にフックし、アプリケーションに対応する自動計装を有効化します。 アプリケーションコードやデプロイスクリプトの変更は不要です。

導入は3つのステップで完了します。 パッケージをインストールし、テレメトリーの送信先を SDK に設定し、計装対象のプロセスを再起動します。

パッケージのインストール

プロジェクトには今すぐ試すための手順が定義されています。 すぐに始めたい方は以下をご覧ください。

Debian、Ubuntu、およびその派生ディストリビューションでは、APT リポジトリを追加します。

echo "deb [trusted=yes] https://open-telemetry.github.io/opentelemetry-packaging/debian stable main" | sudo tee /etc/apt/sources.list.d/opentelemetry.list
sudo apt update
sudo apt install opentelemetry

Fedora、RHEL、およびその派生ディストリビューションでは、YUM リポジトリを追加します。

cat <<EOF | sudo tee /etc/yum.repos.d/opentelemetry.repo
[opentelemetry]
name=OpenTelemetry Auto-Instrumentation System Packages
baseurl=https://open-telemetry.github.io/opentelemetry-packaging/rpm/packages
enabled=1
gpgcheck=0
EOF
sudo dnf install opentelemetry

opentelemetry-injector パッケージと、監視したい言語の自動計装パッケージを個別にインストールすることもでき、それらはシームレスに連携します。

オプションやデータの送信先について詳しくは、完全な手順をお読みください。

テレメトリーの送信先の設定

デフォルトでは、自動計装は OTLP データを localhost に送信します。 ポート 4317 が OTLP/gRPC、ポート 4318 が OTLP/HTTP です。 ここから2つのオプションがあります。

SDK から直接テレメトリーを送信する場合: /etc/opentelemetry/injector/default_env.conf にエンドポイントとクレデンシャルを設定すると、インジェクターがそれらをすべての計装済みプロセスに渡します。

OTEL_EXPORTER_OTLP_ENDPOINT=https://otlp.example.com
OTEL_EXPORTER_OTLP_HEADERS=api-key=REPLACE_ME

ホスト上で Collector を実行する場合: デフォルトの localhost エンドポイントのまま、同じホストに OpenTelemetry Collector をインストールし、/etc/otelcol/config.yaml でテレメトリーの転送先を設定します。 Collector パッケージは現在 opentelemetry メタパッケージには含まれていません。 今後の変更については Collector パッケージングセクションをご覧ください。

Packaging SIG がお届けします

Packaging SIG は、2026年5月に正式に設立されました。

Packaging SIG の目標は、OpenTelemetry Injector による SDK と自動計装パッケージの注入、OpenTelemetry eBPF Instrumentation(OBI)、および OpenTelemetry Collector を組み合わせることで、(仮想)ホスト上で動作するアプリケーションの監視において、プロダクトライクで慣用的な体験を提供することです。

私たちは OpenTelemetry がプロダクトのように感じられるべきだと考えており、プロジェクトの Stable By Default ビジョンの実現に向けて取り組んでいます。

opentelemetry-packaging リポジトリで協力し、CNCF Slack の #otel-packaging チャンネルで議論し、毎週水曜日の太平洋時間午前10時にミーティングを開催しています。

ぜひお越しください!

今後の展望(TM)

パッケージングの取り組みはまだ新しいものです。 スコープ、スケーラビリティ、セキュリティに関する改善が直近のロードマップに含まれています。

本番環境に向けて

リポジトリは GitHub 上で GitHub Pages を通じてホストされています。 これは本番ワークロード向けではなく、本番環境レベルのホスティングソリューションを検討する予定です。

パッケージの署名はまだ行われていません。 手動でエラーが発生しやすいステップを作ることなく、迅速にリリースできるセキュアなソリューションを見つける予定です。

Collector パッケージング

OpenTelemetry Collector パッケージを新しいリポジトリに追加する作業に取り組みます。 Collector パッケージは現在 opentelemetry-collector-releases で公開されています。 詳しくはこちらのイシューを追跡してください。

対応言語の拡大と OBI

現在、インジェクターは Java、.NET、Node.js、Python 向けの SDK ベースの自動計装を有効化します。

SDK の自動計装がない言語(Go、Rust、C++ など)については、OpenTelemetry eBPF Instrumentation(OBI) と協力し、eBPF を使用してアプリケーションを計装できるようにする予定です。

OpenTelemetry Injector には Ruby のサポート計画もあり、近い将来に実現するかもしれません!

ありがとうございます!

この取り組みに参加してくださったコントリビューターの皆さん、ありがとうございます。

Packaging SIG の提案と初期実装を多くのレビュアーの皆さんにもお礼申し上げます!