User guide for Data Center App Performance Toolkit
Link: https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jira/
The above link is the Data Center App Performance Toolkit User Guide for Jira.
In this document, it covers the use of the Data Center App Performance Toolkit in two types of environments:
Development environment
Enterprise-scale environment
New Data Center App Performance Toolkit version 8.3.2 with JMeter 5.6.3 support was released.
JMeter 5.6 has a bug which leads to broken .jmx
file after opening JMeterUI 5.6.
Also, added pre-run hostname and license validations.Detailed release notes: https://github.com/atlassian/dc-app-performance-toolkit/releases . To get the latest version of the toolkit do git pull on the master
branch.How to upgrade virtual env: pip install -r requirements.txt
from your virtual env.
How to update docker image: docker pull atlassian/dcapt
Step 1:
For both types of environment need to the same steps as mentioned in the documentation. But while running the below command, if it fails we need to run manually.
To execute the installation command for conf.tfvars
using Docker and winpty, follow the steps below:
Run the complete installation command with
winpty
:winpty docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ -it atlassianlabs/terraform:2.7.1 ./install.sh -c conf.tfvars
If this command fails, proceed to the next step.
If the full command fails, run the Docker container separately:
winpty docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ -it atlassianlabs/terraform:2.7.1
you’ll get like below screenshot after executing the above command
After executing the above command, you will enter the Docker container environment.
Inside the Docker container, execute the installation command manually:
./install.sh -c conf.tfvars
After running this command, you should see the installation progress.
This approach allows you to troubleshoot any issues that may arise during the installation process. If the full command fails, you can break it down into steps to identify and resolve any problems with the installation.
If the installation command fails, it should be reattempted until successful. Upon successful execution, the console output will provide a Product URL resembling http://a1234-54321.us-east-2.elb.amazonaws.com/jira
.
Manual steps to run test execution
For each of the test runs (run1 to run5), the same documented steps should be followed. If the test execution commands fail during any run, manual steps must be taken to proceed with the test execution.
To manually initiate the test execution, follow the steps below:
Set the environment name in the Git Bash:
export ENVIRONMENT_NAME=your_environment_name
Run the following commands:
docker run --pull=always --env-file ./app/util/k8s/aws_envs \ -e REGION=us-east-2 \ -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ -it atlassianlabs/terraform:2.7.1 bash
Configure AWS EKS:
aws eks update-kubeconfig --name atlas-"$ENVIRONMENT_NAME"-cluster --region "$REGION"
Get the name of the execution environment pod:
exec_pod_name=$(kubectl get pods -n atlassian -l=exec=true --no-headers -o custom-columns=":metadata.name") echo "INFO: Execution environment pod name: $exec_pod_name"
Execute a shell in the identified pod:
kubectl exec -it "$exec_pod_name" -n atlassian -- bash
The provided image serves as a reference for the expected outcomes after completing all the aforementioned commands.
Certainly! Below are the revised sentences based on the provided commands:
Exit the current session by running the command:
exit
List all files and directories in the current location:
ls -la
List all files and directories in the "dc-app-performance-toolkit" directory:
ls -la dc-app-performance-toolkit
Remove the "/dc-app-performance-toolkit" directory from the container named "$exec_pod_name" in the "atlassian" namespace:
kubectl exec -it "$exec_pod_name" -n atlassian -- rm -rf /dc-app-performance-toolkit
Copy the local "dc-app-performance-toolkit" directory to the container named "$exec_pod_name" in the "atlassian" namespace. Retry up to 10 times in case of failures:
kubectl cp --retries 10 dc-app-performance-toolkit atlassian/"$exec_pod_name":/dc-app-performance-toolkit
Run a Docker container named "dcapt" with the specified configurations using the Jira YAML file. Ensure the correct application host name is set for proper functionality:
kubectl exec -it "$exec_pod_name" -n atlassian -- docker run --pull=always --shm-size=4g -v "/dc-app-performance-toolkit:/dc-app-performance-toolkit" atlassian/dcapt jira.yml
Please refer to the screenshot above to confirm that the execution is proceeding correctly.
The above screenshot shows the results after completion of run.
Note: Ensure that the application hostname is accurately configured; otherwise, the tool won't have the necessary information to navigate.
Once the run is completed, execute the following command from within the container:
kubectl cp --retries 10 atlassian/"$exec_pod_name":dc-app-performance-toolkit/app/results dc-app-performance-toolkit/app/results
This command will copy the run results back to your local environment. Don’t forgot to run the above command, otherwise it will not copy results to your local.
Just need to follow the same steps after every run.
Cleanup
kubectl exec -it "$exec_pod_name" -n atlassian -- rm -rf /dc-app-performance-toolkit
Copy from local to pod
kubectl cp --retries 10 dc-app-performance-toolkit atlassian/"$exec_pod_name":/dc-app-performance-toolkit
Start execution
kubectl exec -it "$exec_pod_name" -n atlassian -- docker run --pull=always --shm-size=4g -v "/dc-app-performance-toolkit:/dc-app-performance-toolkit" atlassian/dcapt jira.yml
Copy results back to local
kubectl cp --retries 10 atlassian/"$exec_pod_name":dc-app-performance-toolkit/app/results dc-app-performance-toolkit/app/results
Termination
Terminate the cluster by using the command
winpty docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ -it atlassianlabs/terraform:2.7.1 ./uninstall.sh -c conf.tfvars
If the complete command didn’t worked and it throws an error then follow the below command
./uninstall.sh -c conf.tfvars
Note: Need to clear the instances running in the aws environment. Make sure check all the cases like volumes, groups, instances, EKS cluster, RDS database and General purpose buckets.
Step 2:
After pulling the Data Center App Performance Toolkit locally then follow the step 4. Setting up Jira Data Center enterprise-scale environment with "large" dataset. of documentation https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jira
docker run --pull=always --env-file ./app/util/k8s/aws_envs \ -e REGION=us-east-2 \ -e ENVIRONMENT_NAME=$ENVIRONMENT_NAME \ -v "/$PWD:/data-center-terraform/dc-app-performance-toolkit" \ -v "/$PWD/app/util/k8s/bzt_on_pod.sh:/data-center-terraform/bzt_on_pod.sh" \ -it atlassianlabs/terraform:2.9.1 bash bzt_on_pod.sh jira.yml
Then we need to start execution by Navigate to dc-app-performance-toolkit
folder. Before running the command need to add winpty before the command start as shown below
winpty docker run --pull=always --env-file aws_envs \ -v "/$PWD/dcapt.tfvars:/data-center-terraform/conf.tfvars" \ -v "/$PWD/dcapt-snapshots.json:/data-center-terraform/dcapt-snapshots.json" \ -v "/$PWD/logs:/data-center-terraform/logs" \ -it atlassianlabs/terraform:2.9.1 ./install.sh -c conf.tfvars
After running the step 4 of doc then follow step 5.
Need to add the application hostname without ‘http’ and ‘/jira’.
And the same steps need to follow as mentioned in the documentation https://developer.atlassian.com/platform/marketplace/dc-apps-performance-toolkit-user-guide-jira
Before Proceeding Scenario 2: Scalability testing need to prepare the jira.jmx file, for this need to follow the step 3. Develop and test app-specific action locally. Use JMeter app-specific action development example.
Once all the runs completed we need to generate the dependency tree and dependency check report.
clone the repo
open command inside the repo folder -- atlas-mvn clean
atlas-mvn package
After this commands jar and obr file will generate in target folder
Then go to dependency-check-8.3.1-release\dependency-check\bin path and open command
dependency-check.bat --scan BulkProfileImporter-1.8.jar --out . --format HTML
will generate the dependency check report in htmlTo get the dependency tree, need to add atlas- before the command
mvn dependency:tree -DoutputType=dot -DoutputFile=maven_dependency_tree.gv
updated: atlas-mvn dependency:tree -DoutputType=dot -DoutputFile=maven_dependency_tree.gv