What’s the Use of Developer Studio in ClusterControl?

Lukas Vileikis

If you are a frequent user of Severalnines’ products, you have probably heard of one of its flagship products - ClusterControl. And since you have probably heard of ClusterControl, you have probably heard of at least one or more of its functions: ClusterControl can do a lot of things including monitoring your query performance, backing up your data, deploying load balancers like ProxySQL and others, it also comes with some database management capabilities. In this blog post, we are going to take a closer look at one of its features called the developer studio.

Why ClusterControl?

Before actually telling you what’s the use of this feature in ClusterControl, we should probably tell you why you should use ClusterControl to monitor your database clusters in the first place. You see, ClusterControl is developed by world’s leading database experts and they have put their heart and soul into the product: that’s the one the reasons why ClusterControl comes with so many extensive features including, but not limited to backup management, monitoring and alerting, it can help you deploy and scale your database nodes and clusters, it will also help you stay up to date with current data protection regulations, and tell you how best to improve the performance of your database clusters as well. Don’t be mistaken though - that’s not everything ClusterControl can offer for your business.

Developer Studio?

ClusterControl also has another feature that might be sometimes overlooked - that feature is called the Developer Studio of ClusterControl. The entire developer studio can be found once we hover over the Manage tab of ClusterControl (we need to be logged into our accounts):

Click on Developer Studio and you shall see all of the scripts currently imported into ClusterControl “separated” by categories:

For example, expand the InnoDB section (just below i_s and above p_s), then choose the file you want to edit from the dropdown menu you are given. You should see something like this:

In this case, some javascript knowledge should help - however, it’s not absolutely necessary since if you are a developer, you can probably already understand what’s written in this section of ClusterControl as-is. This file:

  • Includes a couple of relevant javascript files for its operation.

  • Describes itself (“var DESCRIPTION”) and also enables you to set how often should it be running by modifying the var MINUTES parameter.

  • Loops through all of the available MySQL nodes and checks if they are connected to ClusterControl.

  • Includes relevant logfile size checking code inside of itself and provides advice (you would need to check out the entire file to see its entire contents, but for the purposes of this blog post, this code snippet will do):
     

     

However, don’t think that all of the advisors are built on the base of a single code snippet - that’s not the case! For example, the CPU usage checking advisor will provide you with relevant advice that will depict whether your CPU usage is low or high by checking if your iowait, user, sys, and other parameters combined exceed a certain threshold that is allocated to produce a warning or other statuses (status codes can also include “Ok” which indicates that everything is ok with your database clusters):
 

Some advisors inside of the developer studio, for example, can be used to predict the disk usage, so be sure to look around for the advisors that you need - you will surely find the right one for your specific needs:

If you observe even closer, you will even be able to see that advisors in the developer studio are split into categories called “common” and s9s (depicting all of the advisors relevant to Severalnines.) As you can see, the Severalnines advisors are split into a couple of different parts in and of themselves: ClusterControl has advisors that can help with MaxScale, MongoDB, MySQL, NDBCluster, the advisors can also be helpful to make predictions or reports.

However, what’s also very interesting is the fact that all of the database advisors can be scheduled (and also saved or removed as well!):

Click Schedule Advisor and you will see that the scheduling mechanism present in ClusterControl can have two modes: basic or advanced:

A basic schedule of the advisors in the Developer Studio of ClusterControl will let you schedule your advisors to run every minute, five minutes, every hour, every day, or every month. An advanced schedule, on the other hand, will let you schedule minutes, hours, days, months, and even weekdays if you so desire. In this case, each advisor can be tagged as well to help you easily find them when you need to.

We can also display all advisors that are available - ClusterControl will also help us filter them by category (Severalnines advisors, MySQL advisors, security or schema advisors, replication advisors, performance, InnoDB, general or connection advisors, etc.):

Performance advisors, as we have already stated, can have multiple categories, and all of them are outlined below:

Summary

We hope that this blog post has provided you with some insight into the developer studio of ClusterControl and you will consider using it when you need to - however, if you find yourself needing some further advice, look around on the blog: we are 100% sure you will find some information that suits your needs. Happy reading!

ClusterControl
The only management system you’ll ever need to take control of your open source database infrastructure.