QMetry and Reports Installation on AWS Cloud Linux - 3 Tier

This topic describes how to install the QMetry database on Amazon Web Services (AWS), the QMetry application, and QMetry Reports in a three-tier architecture. The installation requires MySQL 8.4.8 on Amazon Relational Database Service (RDS). The installer deploys QMetry in a Docker container that runs Apache Tomcat 11.0.5 and OpenJDK 17.0.2.

Deployment Architecture

The deployment uses four servers.

Server

Role

Server 1

QMetry App

Server 2

QMetry Reports

AWS RDS 1

QMetry Database

AWS RDS 2

QMetry Reports Database

Prerequisites

Confirm that you meet all of the following requirements before you begin. For details, refer to the Pre-requisites of QMetry Application and Report Server Installation document. Refer QMetry Deployment Document for the architectural requirements.

Prerequisite

What to confirm

Operating System

Linux - Ubuntu 24.04 or Amazon Linux 2024. No other OS is certified.

Servers

Four servers are required:

  • 2 AWS RDS for QMetry and Reports Databases.

  • QMetry Application.

  • QMetry Reporting.

Required commands

unzip, wget, curl, and vim commands are supported.

Internet access

Internet access is required to download and install docker and QMetry installation images.

Proxy Servers

No proxy blocks downloads from the internet.

Server communication

The application and report servers can reach each other on the required ports.

Root access

Docker installation requires root user access.

Disk space

The Docker and data directories have enough free space.

Installation files

Get the QMetry_Linux_Installer.zip file and docker credentials from QMetry Support.

Security Protocols

QMetry Application and Reports run on the same protocol. If integrating with Jira over HTTPS, run QMetry on HTTPS too.

Note

Docker stores data under /var/lib/ by default, and the installer also asks for a QMetry data location. Ensure both directories have enough disk space.

Required Ports

Open the following ports for inbound traffic.

Installation

Ports that need to be enabled

AWS RDS - QMetry and Reports Databases

3306 (both RDS)

QMetry Application

80/443

QMetry Reports

80/443, 8081, & 3306

AWS EFS

2049

AWS ElastiCache (if enabling the optional Redis Cache Cluster)

6379

Create and Configure Two Amazon RDS instances

Create two Amazon RDS instances that use the same parameter group family. One instance hosts the QMetry application database, and the other hosts the QMetry Reports database.

Step 1. Create DB parameter groups

To create a DB parameter group, do the following:

  1. In to AWS Management Console, and open the Amazon RDS console.

  2. In the navigation pane, select Parameter groups.

  3. Select Create parameter group.

  4. Parameter group family: Select mysql8 as DB parameter group family.

  5. Group name: Provide the name of the new DB parameter group.

  6. Description: Provide a description for the new DB parameter group.

  7. Click Create.

Repeat these steps to create a second parameter group for the Reports RDS instance.

Step 2. Edit the DB parameter groups

Application RDS parameter group

To edit the parameter groups, do the following:

  1. Open the parameter group that you created for the application database.

  2. Set the following parameters, and then save your changes.

    Parameter

    Value

    binlog_format

    ROW

    character_set_client

    utf8mb4

    character-set-client-handshake

    0

    character_set_server

    utf8mb4

    collation_server

    utf8mb4_unicode_ci

    group_concat_max_len

    500000000

    innodb_autoinc_lock_mode

    2

    innodb_thread_concurrency

    10

    log_bin_trust_function_creators

    1

    lower_case_table_names

    1

    max_allowed_packet

    536870912

    sql_mode

    NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO

    thread_cache_size

    200

    innodb_log_buffer_size

    536870912

    innodb_log_file_size

    1073741824

  3. Open the parameter group that you created for the Reports database.

  4. Set the following parameters, and then save your changes.

    Parameter

    Value

    character-set-client-handshake

    0

    group_concat_max_len

    500000000

    innodb_autoinc_lock_mode

    2

    innodb_strict_mode

    0

    lower_case_table_names

    1

    max_allowed_packet

    536870912

    thread_cache_size

    200

Step 3. Create the Application Database RDS instance

To create the RDS instance for the QMetry application database, do the following:

  1. Create an RDS with MySQL database version 8.4.8

  2. Enter the RDS instance name, user name, and password.

  3. Select the application DB parameter group that you configured in Step 2.

  4. Start the service: RDS → Databases → Actions → Start.

  5. Connect to the application RDS instance and run the following command. This command keeps MySQL binary logs for 24 hours, which the Reports data sync needs.

    call mysql.rds_set_configuration('binlog retention hours', 24);

Note

Save the Application RDS username, password, schema name, and endpoint. You will need them during installation.

Step 4. Create the Reports Database RDS

To create the RDS instance for the QMetry Reports database, do the following:

  1. Create an RDS with MySQL database version 8.4.8

  2. Enter the RDS instance name, user name, and password.

  3. Select the Reports DB parameter group.

  4. Connect to the Reports RDS instance and run the following command to create the analytics schema.

    CREATE SCHEMA `qtmanalytics` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Note

Save the Reports RDS username, password, schema name, and endpoint.

Prepare Shared Storage (EFS)

Set up Amazon EFS so that all QMetry application nodes share the same data directory.

  1. Create an EFS file system. Make sure that all Amazon Elastic Compute Cloud (EC2) servers that run the QMetry application can access it. In the security group, open inbound port 2049 for connections from the EC2 servers.

  2. When you create the application EC2 instance, go to Configure storage**, select File systems. Select the file system that you created in the previous step. Refer to the AWS Official Documentation for attaching EFS file system when creating an EC2 instance.

  3. Mount the EFS file system to a directory on the EC2 server. Example, `/opt/qmetryapp`. Use the same directory as the application directory during installation.

Install QMetry Application

To install QMetry Application, perform the following steps:

Note

Recommended: Back up the application data directory on a regular schedule. Periodic backups help prevent data loss if a disaster occurs.

  1. Copy QMetry_Linux_Installer.zip installation file received from QMetry Support to your server. Go to the directory where this file is kept and unzip the file.

    unzip QMetry_Linux_Installer.zip
  2. Run the installer.

    cd QMetry_Linux_Installer 
    sudo su
    chmod +x install.sh
    ./install.sh
  3. Enter your response for the online prompt.

    Options

    Allowed Values

    Default Value

    Recommended Value

    Do you want to make an online installation (Y/N)?

    Y, y, N, n

    Y

    Y

  4. Enter the docker credentials that you received from QMetry support.

  5. At the main installation menu, type 2 to install the QMetry application.

    image-20260331-061107.png
  6. Enter a directory path on the host machine to store QMetry data such as attachments, licenses, imports, and exports. You can specify any valid path, and the installer creates the directory automatically if it does not exist.

    Options

    Description

    Example

    Please enter QMetry application directory

    Enter the EFS file system directory mounted for QMetry installation from the pre-requisites section above step 1.

    /opt/qmetryapp

  7. Configure the parameters.

    Options

    Details

    Default Value

    Example

    Enter QMetry Database Hostname

    Enter QMetryDatabase Host as DNS/IP Address

    <RDS DB Endpoint>

    Enter RDS DB Endpoint

    Enter QMetryDatabase Port

    Enter QMetryDatabase Port. If it is unchanged, use "3306" as the Database port.

    3306

    3306

    Enter QMetryDatabase Schema

    QMetry Application Database schema name.

    qmetry

    qmetry

    Enter QMetryDatabase Username

    QMetry Application Database root user name

    -

    dbadmin

    Enter QMetry Database Password (root user)

    Enter QMetryApplication Database Password for the root user.

    -

    QMetry@123

    Enter QMetry User (admin) Email (admin user)

    Enter QMetry user email address for Admin.

    -

    [email protected]

    Enter QMetry User (admin) Password

    Enter QMetry user password for Admin.

    -

    Admin@123

    Enter Min. Heap Memory for the webserver

    Enter Heap Memory in GB(s)

    2

    2

    Enter Max. Heap Memory for the webserver

    Enter Heap Memory in GB(s)

    4

    4

    Enter QMetry Database Connection Pool Size

    Enter Pool Size in number format

    100

    100

  8. Verify the docker.

    docker ps
    docker_ps.png
  9. Get QMetry License and install it.

    • Evaluation: Use the evaluation license, valid for 30 days, that you received with the installation.

    • Commercial: You must generate a license using the server MAC address and domain name.

      • Get MAC address

        ifconfig 
      • Send the domain name and MAC address to QMetry Support at [email protected] to request your license.

      Once you receive license.key from QMetry Support, you can follow the Steps to Apply License File.

  10. Open the QMetry application in a browser at the following address, where you substitute your own value. http://<your IP address OR domain name>. Log in with the Default QMetry credentials.

    • Username: admin

    • Password: <user specified password in Step # 4 >

    MySQL database is installed on port 3306 with the following details.

    • Username: root

    • Password: <user specified password in Step # 4 >

  11. Log in to the QMetry application and update the administrator profile.

    • Go to Admin Profile and click Edit.

    • Update the administrator email address in the Email field.

    • In the Base URL field, enter your QMetry URL.

    • Select Update.

    QSvrlog into QMetry application.png
  12. Configure Additional Tomcat settings.QMetry installs with a default configuration for minimum and maximum heap memory. You can adjust these settings to match your hardware configuration. For more information, refer to Additional Configuration.

Install QMetry Reports

Note

If you have purchased Advanced Reporting, then you will need a separate server for installing QMetry Reports.

Steps to Follow for QMetry Report Installation

To install QMetry Reports on the second server, perform the following steps:

After successful installation of QMetry Report, you will see the message "QMetry Report Installation is complete".

Note

In cases when you need to force sync to re-sync any missing data, just repeat step 4, and skip all parameter details (by hitting enter) and just enter y when prompted for a force sync.

  1. Connect to the report server. Upload the QMetry_Linux_Installer.zip to the /opt directory of the Report server and extract it with the following commands.

    sudo su -
    cd /opt
    unzip QMetry_Linux_Installer.zip 
    cd QMetry_Linux_Installer/
  2. Run the reports installer.

    chmod +x install.sh
    ./install.sh
  3. Enter your response for the prompt.

    Options

    Allowed Values

    Default Value

    Recommended Value

    Do you want to make an online installation (Y/N)?

    Y, y, N, n

    Y

    Y

  4. Enter the docker credentials that you received from QMetry support.

  5. At the main installation menu, enter 3 to install QMetry Reports.

    image-20260331-061107.png
  6. Configure the parameters.

    Options

    Details

    Default Value

    Example

    Enter Number of CPU's to allocate

    Allocate 3/4th of the available CPUs. For example, if CPU has 8 cores, enter 6.

    To check total CPUs, run the command : lscpu

    4

    6

    Enter Memory to allocate in GB(s)

    Entered memory would be used by the sync job while running full sync of data. Enter 3/4th of total memory available on the server. For example, if the memory on the server is 24 GB, enter 18.

    4

    18

  7. After the installation starts, enter the following parameters when prompted.

    Options

    Details

    Example

    Enter Mysql Database Host IP / DNS Name (Qmetry)

    Enter Database Host Public IP/DNS of QMetry application.

    Specify QMetry App RDS DB Endpoint

    Enter Mysql Database Port (Qmetry)

    Enter Database Port of QMetry application. If it is unchanged, use "3306" as Database port.

    3306

    Enter Mysql Database Schema (Qmetry)

    Enter Database schema name of QMetry application.

    qmetry

    Enter Mysql Database Username (Qmetry)

    Enter Database username of QMetry application. If it is unchanged, use "root" as username.

    root

    Enter Mysql Database Password (Qmetry)

    Enter Database password of QMetry application.

    QMetry@123

    Enter Mysql Database Host IP / DNS Name (Reports)

    Enter Database Host Public IP/DNS of QMetry Report.

    Specify QMetry Reports RDS DB Endpoint

    Enter Mysql Database Port (Reports)

    Enter Database Port of QMetry Report Database. If it is unchanged, enter "3306" as Database Port.

    3306

    Enter Mysql Database Schema (Reports)

    Enter Database schema name as “qtmanalytics“ for QMetry Reports Database.

    qtmanalytics

    Enter Mysql Database Username (Reports)

    Enter Database username of QMetry Reports Database. If it is unchanged, use "root" as username.

    root

    Enter Mysql Database Password (Reports)

    Enter Database password of QMetry Reports Database.

    QMetryreports@!Nf0#

    Enter Port To Start SyncJob (Reports)

    Reports Sync Job runs from this port - 8080.

    8080

    Do you want to Run Force Sync Now? (y/n)

    Enter y to sync all the QMetry data to Reports Database with the current script.

    Always enter y at the time of fresh reports install. Always enter y at the time of fresh reports install.

    Y

    Enter Memory to allocate in GB(s) to Spark

    Entered memory would be used by the sync job while running full sync of data. Enter 3/4th of total memory available on the server. For example, if the memory on the server is 24 GB, enter 18.

    18

  8. Verify the docker

    docker ps 
    image-20220215-070122.png
  9. Restart the report services.

    docker restart qmetry-reports

    Wait for about 2 minutes before proceeding with the next step.

  10. Log in to QMetry with 'admin' user login, and configure the reports server URL in the configuration menu.

    • Login to QMetry with administrator credentials and go to Customizations.

    • Select Insight Configuration and open Database Configuration tab.

    • Under Database Configuration tab, enter the following details:

      • Host: Reports Server Host Public IP/DNS.

      • Port: 3306

      • Username: root

      • Password : <Enter Report database password>

      • Database Name: <Report DB schema specified during installation>

    • Select Test to confirm a successful connection, and then select Test & Save.

      image-20260416-074350.png
  11. On the Sync Data tab, set up the Report Data Sync from your reports server to QMetry Reporting.

    • Report Server URL: Enter your report server domain URL followed by port 8081. Confirm that port 8081 is open on the report server.

    • Select Test to confirm a successful connection and then select Test & Save.

    Note

    Run Sync Data the first time after you install QMetry reports installation. The time that the sync takes depends on the amount of data in QMetry. You can monitor sync progress and status in the interface. QMetry custom reports are not accessible while the sync runs. Run the sync only during off-peak hours.

    Users can start using QMetry Reports when the sync is completed. QMetry remains available during this time.

    image2020-7-1_12-31-2.png

Enabling Redis Caching Cluster (optional)

QMetry provides a capability for improving the overall performance and scalability even more by setting up Redis Caching Cluster. This step is optional. Follow the below steps to configure Redis Cache.

Redis_URL_setup.png
  1. Create a Redis cluster using AWS ElastiCache service for the Redis v7.0.7

  2. AWS ElastiCache Redis Cluster should be accessible to all the EC2 servers of QMetry application for caching related communication and configuration.

    • Ensure port #6379 is opened for incoming connections in the security group to allow connections from AWS EC2.

    • Port #6379 should be free and not in use by other applications.

  3. Configure Redis connection details in QMetry.

    1. Login to QMetry Application using “admin“ account, and go to the top right corner admin > Profile section. Edit the Profile.

    2. Enter the Redis URL and Test. In case, the test fails, check and ensure connectivity between ElastiCache Redis Cluster and AWS EC2.

    3. Upon successful Test, update the details.

Install Automation API Features

Installing the Automation API with your on-premise QMetry installations will enable several automation API related features including faster automation result file imports into QMetry. If you plan to use Automation APIs to import test results into QMetry, refer to Install Automation API Feature for Offline Installation.

Get Support

If you encounter any issues during installation, create a ticket on the QMetry Support Portal or contact your sales representative.

Publication date: