A demo application for experimenting with databases and PMM. Test load on databases

Hi,
I want to tell you about an application I developed and maybe you will find it useful.

I have installed Percona Everest many times and created databases in it. I have also installed databases many times using Docker, Percona Operators and just installed them on the server.

And every time I had a problem, the databases are empty, I wanted to try to do queries, see monitoring in PMM and play with settings and load.

Yes, I could connect via pgAdmin, MongoDB Atlas or MySQL Workbench. Create test schemas, import data and do queries. But that would take a long time.

I have developed a demo application that can:

  1. connect to databases
  2. create test data schemas and import a dataset
  3. generate load
  4. manage the load in a user-friendly panel

The app has light and dark themes and opens in a browser.

You can connect several different databases, with different types or different settings for the number of nodes and resources.

I want to invite you to become first users and share feedback with me. I’m really passionate about development and want to make this app better.

I have prepared instructions on how to:

  1. Run locally in Docker
  2. Run in k8s with HELM

For example,

  1. You can create one or more Postgres, MongoDB, MySQL databases in Percona Everest.
  2. Connect them in the Demo application settings.
  3. Enable database load. Adjust the load with the slider by increasing the number of concurrent connections.
  4. Monitor the database performance in PMM.
  5. Scale databases vertically or horizontally in Percona Everest and observe performance in PMM.
  6. Switch SQL and NoSQL query types in the control panel and explore them in QAN PMM and see how they affect performance.


The application can generate from 0 to 100 concurrent connections that can generate thousands of requests per second. You can also scale the load generation service in the web interface or with k8s.

Separate Go routines with a loop in which SQL and NoSQL queries are executed are used as load generation. GitHub repository database is used as a test dataset.

Would love it if you try this and share feedback.

Project repository