Google Summer of Code (GSoC) 2020 is an international annual program run by Google for college students interested in getting a stipend to contribute to open source projects.

Percona, a leader in open source database software and services, has been a dedicated supporter of the open source community since 2006, and has actively contributed to the community by providing bug fixes for open source projects, engineering open source software for use and redistribution, and hosting the Percona Live Open Source Database Conference twice a year.

Percona is participating in GSoC 2020, and sees it as an excellent opportunity for students to participate in the active and vibrant open source community.

Our GSoC Projects are focused on improving Percona Monitoring and Management (PMM), which is an open source platform for managing and monitoring MySQL, PostgreSQL, and MongoDB performance. It provides thorough time-based analysis for MySQL, PostgreSQL, and MongoDB servers to ensure that your data works as efficiently as possible.

Contact Information

You can contact the Percona GSoC team directly via email, or join our GSoC mailing list. The mailing list allows you to take part in project-related discussions.

If you are a student, you can also post your interest on our Google Group and we will add you to our community chat platform. This allows you to engage further in project discussions and talk to mentors directly on Slack.

Student Information

If you are student and are interested in participating, the following is useful information:

Proposal Guidelines

Before applying as a Percona contributor, we suggest you review the points below. It can help you with creating a strong proposal:

  • Read about Percona open source software products.
  • Go through the list of ideas for GSoC 20.
  • Start contributing to the project and engage within the community.
  • Read about Percona Monitoring and Management here.
  • To understand how or what PMM does, please take a look at our demo.
Application Template for Students

If you are planning to send us a proposal, please make sure you have addressed the following elements:

  • Tell us about yourself (background, experience, education, hobbies)
  • Project background (current state of what exist)
  • Design/description of work
  • Benefit of your work to the project users and developers
  • Deliverables
  • Scheduling
  • Other commitments (i.e., exams, part time work, holidays, lectures, etc.)
  • Community engagement (involvement, sample PR's, forum discussions, other open source involvement)

Percona GSoC 2020 Idea List

Keep your database live

Project I: Refactor PMM Framework

Project Description: We currently use PMM-framework to setup Percona Monitoring and Management with different databases for our Internal testing and creating our development instances. A major part of this framework needs a lot of refactoring and we need help with that.

  • Use our Internal PXC-QA startup script and use it with PMM-framework to setup PXC with PMM. To understand better, read this blog
  • Use our internal PSMDB-QA startup script and use it with PMM-framework to setup MongoDB with PMM.
  • Add support for load testing with Sysbench or some other tool on similar lines.
  • Refactor the framework and distribute different implementation in different shell scripts, and increase logging to improve debugging.
  • Add support for setting up different versions of DBs.

Knowledge Prerequisite: Shell Scripting, Dockers, Linux, Jenkins-Pipeline

Difficulty: Medium

Possible Mentors: Nailya Kutlubaeva, Puneet Kala

Keep your database live

Project II: Preparing Prometheus Alerting Rules Files

Project Description: To work on this project, it is required to go through the technologies involved, including Grafana and Prometheus, as well as an understand of the need for alerting and how it works.

Create alerting rules files for possible elements in Grafana dashboards to define alert conditions based on Prometheus expression language expressions and to send notifications about firing alerts to an external service.

  • To check whether a rule file is syntactically correct, install and run Prometheus' promtool command-line utility tool.
  • Find elements on each dashboard that could be used for an alerting purpose and prepare rules files for dashboards.

Knowledge Prerequisite: Grafana, Prometheus, PromQL

Difficulty: Medium

Possible Mentors:Vadim Yalovets, Roma Novikov

Keep your database live

Project III: Query Analytics for ProxySQL

Project Description: Add ProxySQL as an additional source of query metrics in PMM

  • Add collecting data from ProxySQL as a data source.
  • Integrate it into query analytics in PMM.
  • Add views in UI to present data.

Knowledge Prerequisite: Golang, ProxySQL, Clickhouse

Difficulty: High

Possible Mentors: Andrii Skomorokhov, Roma Novikov