Docker デプロイ
前提条件
- Docker
- Docker Compose v2.0.0+
- Make(オプション)
- アプリケーション用に 6 GB の RAM(または最小モードを使う場合は約 3 GB)
- 14 GB のディスク容量
デモの取得と実行
デモリポジトリをクローンしてください。
git clone https://github.com/open-telemetry/opentelemetry-demo.gitデモフォルダに移動します。
cd opentelemetry-demo/デモを起動1します。
make startdocker compose --env-file .env --env-file .env.override \ -f compose.yaml -f compose.full.yaml \ -f compose.observability.yaml -f compose.extras.yaml \ up --force-recreate --remove-orphans --detachデプロイモード
デモはいくつかのデプロイモードに対応しています。 デフォルトの
make startはすべてのサービスとオブザーバビリティスタックを含むフルデモを実行します。 他のモードではリソース使用量を削減したり、特定のコンポーネントを除外したりできます。モード Make ターゲット 説明 Full make startすべてのサービスとオブザーバビリティバックエンド(デフォルト) Minimal make start-minimalKafka とそれに依存するサービス( accounting、fraud-detection、kafka)を除外し、メモリ使用量を約 3 GB に削減No observability make start-no-o11yオブザーバビリティバックエンド(Jaeger、Grafana、Prometheus、OpenSearch)なしですべてのサービスを実行 Minimal, no observability make start-minimal-no-o11yオブザーバビリティバックエンドなしの最小サービス Profiling make start-profilingeBPF プロファイラーとプロファイリングデータ用の Firepit UI を含むフルモード Agentic make start-agenticAI エージェント、MCP サーバー、デモ操作用チャットボットを含むフルモード たとえば、最小モードでデモを起動するには以下を実行します。
make start-minimaldocker compose --env-file .env --env-file .env.override \ -f compose.yaml -f compose.observability.yaml -f compose.extras.yaml \ up --force-recreate --remove-orphans --detach(オプション)テレメトリーサニティテストを実行します。
デモには、各サービスがトレース、メトリクス、ログを生成し、期待されるバックエンド(Jaeger、Prometheus、OpenSearch)に到達していることを検証するテレメトリーサニティテストスイートが含まれています。 詳細は test/telemetry/README.md を参照してください。
テストスコープ Make ターゲット 起動内容 Full make run-telemetry-testsフルデプロイ( make start)Minimal make run-telemetry-tests-minimal最小デプロイ( make start-minimal)Agentic make run-telemetry-tests-agenticAgentic デプロイ(エージェント、MCP、チャットボット付き) 各ターゲットは
./test/telemetryからテストイメージをビルドし、対応するデプロイを起動してテストを実行した後、デモを停止します。make run-telemetry-tests# テスト開始前にデモが実行中である必要があります。 docker build -t opentelemetry-demo-telemetry-tests ./test/telemetry docker run --rm --network opentelemetry-demo \ --env-file .env --env-file .env.override \ -e TEST_SCOPE=full \ opentelemetry-demo-telemetry-tests
ウェブストアとテレメトリーの確認
イメージがビルドされ、コンテナが開始されると以下にアクセスできるようになります。
- ウェブストア: http://localhost:8080/
- ロードジェネレーター UI: http://localhost:8080/loadgen/
- Flagd 設定 UI: http://localhost:8080/feature
- テレメトリードキュメント(Weaver で生成): http://localhost:8080/telemetry/
以下はオブザーバビリティスタックが実行中の場合(*-no-o11y モード以外)に利用可能です。
- Grafana: http://localhost:8080/grafana/
- Jaeger UI: http://localhost:8080/jaeger/ui/
- OpAMP UI: http://localhost:8080/opamp/
以下は特定のデプロイモードでのみ利用可能です。
- Firepit UI(プロファイリングモード): http://localhost:8080/profiles/
- チャットボット(Agentic モード): http://localhost:8080/chatbot/
デモのプライマリーポート番号の変更
デフォルトでは、デモアプリケーションは 8080 ポートにバウンドされたすべてのブラウザのトラフィックに対してプロキシを開始します。
ポート番号を変更するには、デモを開始する前に環境変数 ENVOY_PORT を設定してください。
次の設定は 8081 ポートを利用する場合の例です1。
ENVOY_PORT=8081 make startENVOY_PORT=8081 docker compose --env-file .env --env-file .env.override \ -f compose.yaml -f compose.full.yaml \ -f compose.observability.yaml -f compose.extras.yaml \ up --force-recreate --remove-orphans --detach
独自のバックエンドを導入する
おそらく、あなたがすでに所持しているオブザーバビリティバックエンド(たとえば、Jaeger、Zipkin、または選択したベンダーのいずれかの既存インスタンス)のデモアプリケーションとしてウェブストアを利用したいでしょう。
OpenTelemetry Collector はテレメトリーデータを複数のバックエンドに送信するのに利用可能です。 デフォルトで、デモアプリケーションの Collector は以下のファイルから設定をマージします(順序通り)。
otelcol-config.yml— ベースのレシーバー、プロセッサー、パイプラインotelcol-config-full.yml— Kafka と PostgreSQL メトリクスレシーバー(フルモード)otelcol-config-observability.yml— Jaeger、Prometheus、OpenSearch エクスポーター(オブザーバビリティスタック使用時)otelcol-config-extras.yml— カスタマイズ用の空スタブ、常に最後にロード
あなたのバックエンドに追加するために、エディターで src/otel-collector/otelcol-config-extras.yml ファイルを開いてください。
新しいエクスポーターを追加することで始めます。 たとえば、もしあなたのバックエンドが OTLP over HTTP をサポートしているのであれば、以下を追加してください。
exporters: otlphttp/example: endpoint: <your-endpoint-url>そして、
exportersをあなたのバックエンドに使いたいテレメトリーパイプラインに上書きしてください。service: pipelines: traces: exporters: [debug, otlp_grpc/jaeger, span_metrics, otlphttp/example]
YAML の値を Collector とマージすると、オブジェクトはマージされて、配列は置き換えられます。
span_metrics コネクターはトレースからメトリクスへの橋渡しを行うため、パイプラインを上書きする場合はトレースの exporters とメトリクスの receivers に残す必要があります。
これを省略すると Collector がクラッシュします。
他のエクスポーターはすべてオプションです。
いずれかを省略すると、そのバックエンドへのデータ送信が停止されるだけです。
アップストリームのエクスポーター名は以下の通りです。
- traces:
debug、otlp_grpc/jaeger、span_metrics(必須) - metrics:
debug、otlp_http/prometheus - logs:
debug、opensearch
ベンダーのバックエンドは認証のために追加のパラメーターを必要とするかもしれません。ドキュメントを確認してください。 一部のバックエンドは異なるエクスポーターが必要です。それらのエクスポーターとドキュメントについて opentelemetry-collector-contrib/exporter で入手できます。
otelcol-config-extras.yml を更新した後に、make start を実行してデモを開始してください。
しばらくして、あなたのバックエンドにトレースが流れるのも確認できるはずです。
docker-composeは非推奨です. 詳細は、 Migrate to Compose V2 を確認してください。 ↩︎ ↩︎
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!