/my2Collector

My2Collector (my2) is a simple, self contained MySQL statistics collector

MIT LicenseMIT

my2Collector

My2Collector (my2) is a simple, self contained MySQL statistics collector

MySQL Statistics Collector

Most intresting MySQL performance data is available in the GLOBAL_STATUS system table, but MySQL does not mantain any history of it. My2Collector (my2) is a simple, self contained MySQL statistics collector. my2 creates the my2.status table that contains the history of performance statistics. Every 10 minutes my2 automatically executes a Stored Routine to collect data.

Install my2

To install my2Collector execute the following command on Your MySQL database:

mysql --user=root -pXXX < my2.sql

For security reasons the creation of the user my2 is commented out: change the password and create the user!

my2 user creation is in the last 3 lines of the script.

Database structure

my2.status table has columns similar to the MySQL GLOBAL_STATUS system table:

  • variable_name
  • variable_value

my2.status adds a third column timest with the timestamp

Available statistics

my2.status table collects several performance statistics:

  • All numeric GLOBAL_STATUS variables
  • All statement execution counters ("statement/sql/%" from events_statements_summary_global_by_event_name)
  • Some PROCESSLIST information (eg. USER, HOST, COMMAND, STATE)
  • Some summary statistic (eg. sum_timer_wait from events_statements_summary_global_by_event_name)
  • Some GLOBAL_VARIABLE variables
  • Delta values for most used counters using my2.current stage table
  • Database size (collected daily and not every 10 minutes)
  • And other useful stats...

Statistics usage

SELECT variable_value+0 as value, timest as time_sec
  FROM my2.status
 WHERE variable_name='THREADS_CONNECTED'
 ORDER BY timest ASC;

Version support

my2 can connect to any version of MySQL, MariaDB, Percona, or other forks but... with old MySQL releases many statistics not available. my2 uses a Scheduled Job which is available since MySQL 5.1 (2008). PROCESSLIST table is available since 5.1.7 while GLOBAL_STATUS is available since 5.1.12. The PERFORMANCE_SCHEMA was introduced in 5.5 version and greatly enhanched in 5.6 version. There are many little differences between different MySQL versions: My2 is aware of them and tries to collect all the information available. For MySQL 8.0 a different script is provided. my2 gives its best with MySQL 5.7, MySQL 8.0 and MariaDB 10.x with performance schema enabled.