Docker デプロイ

前提条件

  • Docker
  • Docker Compose v2.0.0+
  • Make(オプション)
  • アプリケーション用に 6 GB の RAM(または最小モードを使う場合は約 3 GB)
  • 14 GB のディスク容量

デモの取得と実行

  1. デモリポジトリをクローンしてください。

    git clone https://github.com/open-telemetry/opentelemetry-demo.git
    
  2. デモフォルダに移動します。

    cd opentelemetry-demo/
    
  3. デモを起動1します。

    make start
    
    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
    

    デプロイモード

    デモはいくつかのデプロイモードに対応しています。 デフォルトの make start はすべてのサービスとオブザーバビリティスタックを含むフルデモを実行します。 他のモードではリソース使用量を削減したり、特定のコンポーネントを除外したりできます。

    モードMake ターゲット説明
    Fullmake startすべてのサービスとオブザーバビリティバックエンド(デフォルト)
    Minimalmake start-minimalKafka とそれに依存するサービス(accountingfraud-detectionkafka)を除外し、メモリ使用量を約 3 GB に削減
    No observabilitymake start-no-o11yオブザーバビリティバックエンド(Jaeger、Grafana、Prometheus、OpenSearch)なしですべてのサービスを実行
    Minimal, no observabilitymake start-minimal-no-o11yオブザーバビリティバックエンドなしの最小サービス
    Profilingmake start-profilingeBPF プロファイラーとプロファイリングデータ用の Firepit UI を含むフルモード
    Agenticmake start-agenticAI エージェント、MCP サーバー、デモ操作用チャットボットを含むフルモード

    たとえば、最小モードでデモを起動するには以下を実行します。

    make start-minimal
    
    docker 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
    
  4. (オプション)テレメトリーサニティテストを実行します。

    デモには、各サービスがトレース、メトリクス、ログを生成し、期待されるバックエンド(Jaeger、Prometheus、OpenSearch)に到達していることを検証するテレメトリーサニティテストスイートが含まれています。 詳細は test/telemetry/README.md を参照してください。

    テストスコープMake ターゲット起動内容
    Fullmake run-telemetry-testsフルデプロイ(make start
    Minimalmake run-telemetry-tests-minimal最小デプロイ(make start-minimal
    Agenticmake 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
    

ウェブストアとテレメトリーの確認

イメージがビルドされ、コンテナが開始されると以下にアクセスできるようになります。

以下はオブザーバビリティスタックが実行中の場合(*-no-o11y モード以外)に利用可能です。

以下は特定のデプロイモードでのみ利用可能です。

デモのプライマリーポート番号の変更

デフォルトでは、デモアプリケーションは 8080 ポートにバウンドされたすべてのブラウザのトラフィックに対してプロキシを開始します。 ポート番号を変更するには、デモを開始する前に環境変数 ENVOY_PORT を設定してください。

  • 次の設定は 8081 ポートを利用する場合の例です1

    ENVOY_PORT=8081 make start
    
    ENVOY_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]
    

ベンダーのバックエンドは認証のために追加のパラメーターを必要とするかもしれません。ドキュメントを確認してください。 一部のバックエンドは異なるエクスポーターが必要です。それらのエクスポーターとドキュメントについて opentelemetry-collector-contrib/exporter で入手できます。

otelcol-config-extras.yml を更新した後に、make start を実行してデモを開始してください。 しばらくして、あなたのバックエンドにトレースが流れるのも確認できるはずです。


  1. docker-compose は非推奨です. 詳細は、 Migrate to Compose V2 を確認してください。 ↩︎ ↩︎