Java 用 Stackdriver Debugger の設定

App Engine スタンダード環境

デバッガはデフォルトで有効になっています。構成は不要です。GCP Console の [デバッグ] ページには、アプリの作成に使用された Java ソースファイルが自動的に表示されます。

詳細については、ソースコードを自動的に選択するをご覧ください。

App Engine フレキシブル環境

デフォルトでは、Java ランタイムにデバッガは有効になっています。構成は不要です。GCP Console の [デバッグ] ページには、アプリの作成に使用された Java ソースファイルが自動的に表示されます。

Google 提供の Java 用ベースイメージを使用するカスタム ランタイムの場合、デフォルトでデバッガが含まれています。デフォルトのエントリポイントを使用している場合、構成は不要です。GCP Console の [デバッグ] ページには、アプリの作成に使用された Java ソースファイルが自動的に表示されます。

他のベースイメージで作成されたカスタム ランタイムで Stackdriver Debugger を使用する場合は、Compute Engine の設定手順に従ってください。

詳細については、ソースコードを自動的に選択するをご覧ください。

GKE

  1. クラスタが次のいずれかのアクセス スコープで作成されていることを確認します。

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger

    例:

    gcloud container clusters create EXAMPLE-CLUSTER-NAME \
        --scopes https://www.googleapis.com/auth/cloud-platform
    
  2. Compute Engine の手順に従います。

Compute Engine

Google Compute Engine インスタンス上で実行されている Java アプリについて Stackdriver Debugger を使用できます。アプリの実行中のすべてのインスタンスに対して Stackdriver Debugger を有効にすることをおすすめします。

  1. Compute Engine VM インスタンスが実行されていることを確認します。

    • 64 ビット Debian Linux イメージ
    • Java JDK バージョン 7、8 または 9
  2. Compute Engine VM インスタンスが [すべての Cloud API に完全アクセス権を許可] アクセス スコープ オプションで作成されていることを確認するか、次のいずれかのアクセス スコープを使用します。

    • https://www.googleapis.com/auth/cloud-platform
    • https://www.googleapis.com/auth/cloud_debugger
  3. ビルド済みのエージェント パッケージをダウンロードします。

    mkdir /opt/cdbg
    wget -qO- https://storage.googleapis.com/cloud-debugger/compute-java/debian-wheezy/cdbg_java_agent_gce.tar.gz | \
        tar xvz -C /opt/cdbg
    
  4. Java の呼び出しにエージェントを追加します。
    (Tomcat または Jetty を使用している場合は、ウェブサーバーのセクションをご覧ください)。

    java -agentpath:/opt/cdbg/cdbg_java_agent.so \
      -Dcom.google.cdbg.module=MODULE \
      -Dcom.google.cdbg.version=VERSION \
      -jar PATH_TO_JAR_FILE
    

    ここで:

    • PATH_TO_JAR_FILE は、アプリの JAR ファイルへの相対パスです。たとえば ~/myapp.jar です。

    • MODULE はアプリの名前です。GCP Console では、この名前とバージョンでアプリを識別します。たとえば MyAppBackendFrontend です。

    • VERSION はアプリのバージョン(例: ビルド ID)です。GCP Console では、実行中のアプリが MODULE - VERSION として表示されます。たとえば v1.0build_147v20160520 です。

これで、アプリでデバッガを使用できるようになりました。

GCP Console の [デバッグ] ページにデプロイ済みアプリのソースコードを自動的に表示する方法については、ソースコードを自動的に選択するをご覧ください。

ウェブサーバー

Java のウェブサーバーは通常、ブートストラップ プロセスを通じて開始し、ウェブサーバーごとに Java オプションを独自にカスタマイズしています。

Tomcat

次の行を /etc/default/tomcat7 または /etc/default/tomcat8 に追加します。

JAVA_OPTS="${JAVA_OPTS} -agentpath:/opt/cdbg/cdbg_java_agent.so \
  -Dcom.google.cdbg.module=MODULE \
  -Dcom.google.cdbg.version=VERSION"

Docker コンテナで Tomcat を実行している場合は、Dockerfile に次の行を追加します。

ENV JAVA_OPTS -agentpath:/opt/cdbg/cdbg_java_agent.so \
              -Dcom.google.cdbg.module=MODULE \
              -Dcom.google.cdbg.version=VERSION

Jetty

/var/lib/jetty/start.d に次の行を追加します。

--exec
-agentpath:/opt/cdbg/cdbg_java_agent.so
-Dcom.google.cdbg.module=MODULE
-Dcom.google.cdbg.version=VERSION

ローカルと他の場所

  1. ビルド済みのデバッガ エージェント パッケージをダウンロードします。

    mkdir /opt/cdbg
    wget -qO- https://storage.googleapis.com/cloud-debugger/compute-java/debian-wheezy/cdbg_java_agent_service_account.tar.gz | \
        tar xvz -C /opt/cdbg
    
  2. サービス アカウントの認証情報をダウンロードします。
    Google Cloud Platform でホストされていないマシンで Java 用 Stackdriver Debugger エージェントを使用するには、エージェントが GCP サービス アカウントの認証情報を使用して Stackdriver Debugger サービスの認証を行う必要があります。

    GCP Console の [サービス アカウント] ページで、既存または新しいサービス アカウントの認証情報ファイルを作成します。サービス アカウントには、少なくとも Stackdriver Debugger Agent 役割が必要です。

    サービス アカウントの JSON ファイルを Java 用 Stackdriver Debugger エージェントとともに配置します。

  3. Java の呼び出しにエージェントを追加します。

    java -agentpath:/opt/cdbg/cdbg_java_agent.so \
      -Dcom.google.cdbg.module=MODULE \
      -Dcom.google.cdbg.version=VERSION \
      -Dcom.google.cdbg.auth.serviceaccount.enable=true
      -Dcom.google.cdbg.auth.serviceaccount.jsonfile=/opt/cdbg/gcp-svc.json
      -jar PATH_TO_JAR_FILE
    

    ここで:

    • PATH_TO_JAR_FILE は、アプリの JAR ファイルへの相対パスです。たとえば ~/myapp.jar です。

    • MODULE はアプリの名前です。GCP Console では、この名前とバージョンでアプリを識別します。たとえば MyAppBackendFrontend です。

    • VERSION はアプリのバージョン(例: ビルド ID)です。GCP Console では、実行中のアプリが MODULE - VERSION として表示されます。たとえば v1.0build_147v20160520 です。

    • auth.serviceaccount.jsonfile システム プロパティを追加せずに、GOOGLE_APPLICATION_CREDENTIALS 環境変数を使用することもできます。

これで、アプリでデバッガを使用できるようになりました。

GCP Console の [デバッグ] ページには、ローカル環境のソースファイルをアップロードせずに表示できます。ソースコードを手動で選択するをご覧ください。

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Stackdriver Debugger のドキュメント