Refactor PMM-Framework
- Google Summer of Code Project Link
- My Contributions (throughout the program)
PMM (Percona Monitoring and Management) is an open-source platform for managing and monitoring MySQL, Percona Server, PostgreSQL, MongoDB, and Percona XtraDB Cluster
performance. PMM integrates open source tools like Prometheus, Grafana, Clickhouse, etc. to facilitate different features. PMM-framework is the internal automated testing framework, used to set up PMM with various databases and their multiple instances, perform load tests, and wipe everything after tests are done. PMM-Framework also incorporates multiple other scripts and tools for further extended functionalities.
The core objectives of this project are to refactor PMM-framework and introduce new features, fix bugs, make it user friendly and so forth.
In the earlier phase of the project, I introduced major refactor and made the PMM-framework more robust and useful, providing all the necessary fixes and improving code readability. Provided multiple methods to install and setup PMM-server and PMM-client.
In the latter phase, I prepared a user friendly CLI based tool to use pmm-framework, namely PMM-Framework-cli
. Node Package of the same is published to NPM : PMM-Framework-CLI
Read more about the project at Percona Community Blog
My work on PMM-Framework can be found at GSoC Project Branch on pmm-qa and work on PMM-Framework-CLI
can be found here.
-
7693d36 - Default Docker tag:
dev-latest
; parameterise Percona/Perconalab Dockerhub org -
b359906 - Added PMM2-client installation using yum/apt
- Pull Request #310
- installs latest public release of pmm2-client using
percona-release
repository by default
-
4998f71 - Change CLI options passing configuration, refactored DB configuration to functions
- Improve options passing functionality in script using getopt
- Refactor mysql/mongodb/postgresql configuration into separate functions
-
73981d7 - Added
--dev
repo installation support for PMM-Client, fix indentations- Pull Request #316
- Pull in changes form
percona/pmm-qa/master
branch
-
Pull Request #326 - pmm-framework major refactor
- 90659c2 - Refactor
pmm-server-docker
setup - 3e79c93 - remove
OVA/AMI server
cleanup - c8c7751 - Fix
install_client()
- Tarball installation - 78f73fa - Add filecheck for
get_download_link.sh
& download if needed - 65cfa89 - Update flag descriptions, fix indentations
- 1753e14 - Remove all
OVA/AMI/AWS
configurations & flags, fix indentations - d6c83ea - Removed unused flag: --is-bats-run
- 24f6e2d - Remove unused vars: SUSER, SPASS
- 90659c2 - Refactor
-
Pull Request #334 - Update with master, installation refactor, ssl flag fix
-
- e968e1d - Fixed
get_download_link.sh
permissions, remove unnecessary sanity check, AddClient error hotfix
- e968e1d - Fixed
-
Pull Request #341 - Pulled new changes from
percona/pmm-qa/master
branch toGSOC-2020
branch -
Pull Request #343 - PMM-Framework Documentation
-
Pull Request #345 - Create
setup-db.sh
: ms,ps,md,modb,pgsql,pxc -
Contributions on
pmm-framework-cli
: Commits · Percona-Lab/pmm-framework-cliPMM-Framework-CLI
on NPM
-
Miscellaneous contributions: GitHub Gist
-
Fetch DockerHub tags - shell script
It has been a fantastic experience working under Percona for the Google Summer of Code. Mentors have been very appreciating, friendly, very responsive, and supportive throughout the program. During the project, I learned and experimented with so many tools and technologies and experienced crucial decision-making and time management. Bash Scripting, Docker, NodeJS, Linux, Networking, Databases, Ansible, SSH, Jenkins Pipelines are among the technologies I learned and experimented with. Having great support from the mentors' side, I could implement all the targets with utmost momentum and incorporate more things into the project's scope. Of course, there have been many technical hurdles as well, coming up with the solutions for the same has taught me a lot. I'm grateful for having a chance to make a real impact in the open-source community of Percona.
Overall, it has been an absolutely amazing experience working with Percona and a special thanks to the mentors Puneet Kala, Nailya Kutlubaeva, Vasyl Yurkovych of Percona for guiding me throughout. I will continue to be the part of open-source community of Percona post GSoC.