本文へスキップ

Elastic Beanstalk

エージェントの適用

Elastic Beanstalkを使用してデプロイする場合、WhaTapエージェントを適用します。

ノート

Platform as a Service(PaaS) の環境では、対象アプリケーションにWhaTapエージェントの設定を含めて配布します。

  1. Spring Boot の結果をjarでデプロイする場合、.ebextensionsの内容は適用できません。次のファイルを圧縮して、zip形式でデプロイしてください。

    • .elasticbeanstalk/config.yml:ebコマンドを実行するディレクトリ下位に自動生成
    • .ebextensions/{config_name}.config:ebの設定ファイル
    • Procfile:JVM command lineオプションを設定するためのファイル
    • {application}.jar:実行するapplicaion.jarのファイル
  2. Serviceに適用するWhaTapエージェントのファイルを圧縮し、S3(またはダウンロードできるpublicパス)にアップロードしてください。

    • paramkey.txt
    • whatap.agent-2.0_25.jar
    • whatap.conf
    # ディレクトリ圧縮
    zip -r whatap-agent.zip agent
  3. _.ebextension/{config_name}.config_ファイルにダウンロードするWhaTapエージェントパスを入力してください。

    ダウンロード用の圧縮ファイルがある場合、ebを実行して自動的にダウンロードして解凍します。

    sources:
    target directory:
    S3のパス
    Example
    sources:
    /home/webapp:
    http://s3.ap-northeast-2.amazonaws.com/{bucket-name}/whatap-agent.zip
  4. WhaTapエージェントオプションを追加したJVM commandを入力してProcfileを作成してください。

    Procfile
    web: java -javaagent:${WHATAP_JAR_FILE_PATH} -Dwhatap.name=${WHATAP_NAME} -Dwhatap.okind=${WHATAP_OKIND_NAME} -Dwhatap.server.home=${APPLICAION_PATH} -Dwhatap.conf.path=${WHATAP_HOME} -jar ${APPLICAIONT}.jar
    Example
    web: java -javaagent:/home/webapp/agent/whatap.agent-X.Y.Z.jar -Dwhatap.name=bootTest -Dwhatap.okind=test -Dwhatap.server.home=/var/app/current -Dwhatap.conf.path=/home/webapp/agent -jar whatap-boot-test.jar
  5. Procfileファイルと*.ebextensionsファイル、{application}.jar*ファイルを圧縮してください。

    zip -r {application}.zip Procfile .ebextensions/{application}.jar
  6. _.elasticbeanstalk/config.yml_ファイルにデプロイする zipファイルのパスを追加してください。

    deploy:
    artifact: /path/to/{application}.zip
  7. eb配布コマンドを実行してください。

    eb deploy
ノート

Java 17 以降では、reflectionに関する次のオプションを追加します。


--add-opens=java.base/java.lang=ALL-UNNAMED

ノート

詳細は、AWSガイド文書を参考にしてください。

ヒープヒストグラム照会

WhaTapのJavaモニタリングでは、JVMメモリのヒープ占有オブジェクト現況(ヒープメモリ上のオブジェクト別サイズ)を照会できる機能を標準として提供します。 アプリケーション > インスタンスパフォーマンス分析メニューからヒープヒストグラムタブを選択してください。

Java 6~8バージョンでは、JVMオプションなしで標準対応しますが、一部のJavaバージョンによっては次のようにJVMオプションを適用する必要があります。

  • Java 9 ~ Java 15バージョン

    -Djdk.attach.allowAttachSelf=true
    example
    java -javaagent:{WHATAP_HOME}/whatap.agent-X.Y.Z.jar -Djdk.attach.allowAttachSelf=true -jar {application.jar}
  • Java 16バージョン以降

    -Djdk.attach.allowAttachSelf=true
    --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED
    example
    java -javaagent:{WHATAP_HOME}/whatap.agent-X.Y.Z.jar -Djdk.attach.allowAttachSelf=true --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=jdk.attach/sun.tools.attach=ALL-UNNAMED -jar {application.jar}
ノート

Java 5以前の旧バージョン、IBM Javaには対応していません。

次の段階

  • オープンソース追跡

    アプリケーションで使用するフレームワークやオープンソースライブラリによって、エージェントオプションの追加が必要になる場合があります。 たとえば、フレームワークやオープンソースでspring-boot-3.x、feign-client-11、okhttp3-4.4使用の際は、次のようにオプションを設定します。

    whatap.conf
    weaving=spring-boot-3.0,feign-11,okhttp3-4.4

    ユーザーのアプリケーション環境に合わせたフレームワークやオープンソースライブラリを設定する方法は、次の文書を参照してください。

  • インストールの点検

    プロジェクトの作成とエージェントのインストール、JVMオプションまですべて適用したら、次の文書でチェック事項を確認します。

  • インストール問題の解決

    エージェントをインストールする際に発生する可能性がある問題と、これを解決するための具体的なガイドを提供します。 ファイアウォールの設定、SpringBoot及びTomcat JMXの設定、OSGIフレームワーク使用サーバーの設定など、様々な状況に対する解決策を案内します。 詳細については、次の文書を参照にしてください。

  • エージェント設定

    エージェント設定(whatap.conf)ファイルにオプションを適用して、モニタリングのための様々な機能を提供します。 デフォルト設定から、サーバーの接続とデータ転送の設定、複数のアプリケーションサーバーの設定ファイルの管理方法、トランザクションの追跡などが含まれます。 詳細については、次の文書を参照にしてください。

  • モニタリングの開始

    すべての設定を完了してから、アプリケーションサーバーを再起動します。 エージェントが情報の収集を開始します。 まず、アプリケーションメニューでモニタリングデータが収集されていることを確認します。 アプリケーションメニューの詳細については、次の文書を参照にしてください。