Elastic Beanstalk
Applying the agent
The following explains how to apply the WhaTap agent when deploying with Elastic Beanstalk.
In the Platform as a Service (PaaS) environment, including the WhaTap agent settings, deployment is performed to the target application.
-
To release the Spring Boot result as jar, the content of .ebextensions cannot be applied. Compress the following files and deploy the zip file.
- .elasticbeanstalk/config.yml: Automatically created under the directory where the eb command is executed
- .ebextensions/
{config_name}
.config: eb configuration file - Procfile: File to configure the JVM command line options
{application}
.jar: applicaion.jar file to execute
-
Compress the WhaTap agent file to be applied to the service and then upload it to S3 (or a public downloadable path).
- paramkey.txt
- whatap.agent-2.0_25.jar
- whatap.conf
# Compressing a directory
zip -r whatap-agent.zip agent -
Enter the WhaTap agent path in the .ebextension/
{config_name}
.config file.When its zip file to download exists, execute the eb command to download the file and then unzip it.
sources:
target directory:
S3 pathExamplesources:
/home/webapp:
http://s3.ap-northeast-2.amazonaws.com/{bucket-name}/whatap-agent.zip -
Enter the JVM command with the WhaTap agent option added to create a 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
-
Compress the following files: Procfile, .ebextensions, and
{application}
.jar.zip -r {application}.zip Procfile .ebextensions/{application}.jar
-
Add the zip file path to deploy in the .elasticbeanstalk/config.yml file.
deploy:
artifact: /path/to/{application}.zip -
Execure the eb deployment command.
eb deploy
In case of Java 17 or later, add the following options for reflection.
--add-opens=java.base/java.lang=ALL-UNNAMED
For more information, see AWS Guide.
Viewing the heap histogram
WhaTap's Java Monitoring provides the function to view the status of heap occupancy objects in the JVM memory (sizes for each object in heap memory). In APP > Instance performance analysis, select the Heap histogram tab.
Java versions 6 to 8 support basic functions without the JVM options. However, for some Java versions, the JVM options must be applied as follows:
-
Java 9 to 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 or later
-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}
It does not support Java 5 or earlier and IBM Java.
Next steps
-
Open source tracing
Depending on the framework or open source library used in applications, you may need to add agent options. For example, when using spring-boot-3.x, feign-client-11, or okhttp3-4.4 with a framework or open source, set the options as follows:
whatap.confweaving=spring-boot-3.0,feign-11,okhttp3-4.4
For information on how to configure the framework or open source library that suits your application environment, see the following.
-
Checking the installation
If you have created a project, installed an agent, and applied all JVM options, see the checklist in the following.
-
Installation troubleshooting
It provides various problems that may occur when installing the agent and specific instructions for resolving them. It provides solutions against various situations, including firewall configuration, SpringBoot and Tomcat JMX configuration, and server configuration using the OSGI framework. For more information, see the following.
-
Agent setting
It provides various features for monitoring by applying some options to the agent configuration file (whatap.conf). It includes basic configuration, configuration for server connection and data transfer, how to manage the configuration files for multiple application servers, and transaction tracing, and more. For more information, see the following.
-
Starting the monitoring
After all settings are made, restart the application server. The agent starts collecting data. First, check whether the monitoring data has been collected in Application Dashboard. For more information about Application Dashboard, see the following.