Elastic Beanstalk
エージェントの適用
Elastic Beanstalkを使用してデプロイする場合、WhaTapエージェントを適用します。
Platform as a Service(PaaS) の環境では、対象アプリケーションにWhaTapエージェントの設定を含めて配布します。
-
Spring Boot の結果をjarでデプロイする場合、_.ebextensions_の内容は適用できません。次のファイルを圧縮して、zip形式でデプロイしてください。
- .elasticbeanstalk/config.yml:ebコマンドを実行するディレクトリ下位に自動生成
- .ebextensions/
{config_name}
.config:ebの設定ファイル - Procfile:JVM command lineオプションを設定するためのファイル
{application}
.jar:実行するapplicaion.jarのファイル
-
Serviceに適用するWhaTapエージェントのファイルを圧縮し、S3(またはダウンロードできるpublicパス)にアップロードしてください。
- paramkey.txt
- whatap.agent-2.0_25.jar
- whatap.conf
# ディレクトリ圧縮
zip -r whatap-agent.zip agent -
_.ebextension/
{config_name}
.config_ファイルにダウンロードするWhaTapエージェントパスを入力してください。ダウンロード用の圧縮ファイルがある場合、ebを実行して自動的にダウンロードして解凍します。
sources:
target directory:
S3のパスExamplesources:
/home/webapp:
http://s3.ap-northeast-2.amazonaws.com/{bucket-name}/whatap-agent.zip -
WhaTapエージェントオプションを追加したJVM commandを入力して_Procfile_を作成してください。
Procfileweb: 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
Exampleweb: 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
-
Procfile_ファイルと.ebextensions_ファイル、_
{application}
.jar_ファイルを圧縮してください。zip -r {application}.zip Procfile .ebextensions/{application}.jar
-
_.elasticbeanstalk/config.yml_ファイルにデプロイする zipファイルのパスを追加してください。
deploy:
artifact: /path/to/{application}.zip -
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
examplejava -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-UNNAMEDexamplejava -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には対応していません。
モニタリングの開始
すべての設定を完了してからアプリケーションサーバーを再起動すると、エージェントが情報収集を開始します。次の文書を確認してください。