MySQL Monitoring

Overview

MySQL is the most popular Open Source Relational SQL database management system. MySQL is one of the best RDBMS being used for developing web-based software applications.
For monitoring, MySQL server, user needs to provide following credentials:

  • Host or IP (where MySQL server is running)
  • Port
  • User Name
  • Password

For enabling SSL in MySQL Monitor, user needs to provide -s option as monitor arguments. This will make connection to MySQL server through SSL.
This page provides MySQL monitoring capabilities supported by Cavisson.

MySQL Replication

MySQL replication is a process that allows you to maintain easily multiple copies of a MySQL data by having them copied automatically from a master to a slave database. This can helpful for many reasons including facilitate a backup for the data, a way to analyze it without using the main database, or simply as a means to scale out. Replication enables data from one MySQL database server (the master) to be copied to one or more MySQL database servers (the slaves). Replication is asynchronous by default; slaves do not need to be connected permanently to receive updates from the master. Depending on the configuration, you can replicate all databases, selected databases, or even selected tables within a database.
Advantages of replication in MySQL:

  • Scale-out Solutions: Spreading the load among multiple slaves to improve performance. In this environment, all writes and updates must take place on the master server. Reads, however, may take place on one or more slaves. This model can improve the performance of writes (since the master is dedicated to updates), while dramatically increasing read speed across an increasing number of slaves.
  • Data security: Because data is replicated to the slave, and the slave can pause the replication process, it is possible to run backup services on the slave without corrupting the corresponding master data.
  • Analytics: Live data can be created on the master, while the analysis of the information can take place on the slave without affecting the performance of the master.
  • Long-distance Data Distribution: You can use replication to create a local copy of data for a remote site to use, without permanent access to the master.

MySQL Replication Metrics

Cavisson MySQL monitoring supports following metrics (for slave only):

Metrics Name Description
Slave_IO_State The current state of the slave.
Slave_IO_Running Whether the I/O thread for reading the master’s binary log is running.
Slave_SQL_Running Whether the SQL thread for executing events in the relay log is running
Slave_SQL_Running Whether the SQL thread for executing events in the relay log is running
Relay_Log_Space The total combined size of all existing relay log files.
SQL_Delay The number of seconds that the slave must lag the master.
SQL_Remaining_Delay When Slave_SQL_Running_State is Waiting until MASTER_DELAY seconds after master executed event, this field contains the number of delay seconds remaining
Slave_SQL_Running_State The state of the SQL thread
Master_Retry_Count The number of times the slave can attempt to reconnect to the master in the event of a lost connection.

MySQL Metrics

MySQL Activity Stats

MySQL Activity monitors metrics related to MySQL operations, transactions, InnoDB operations etc.

Graph Name Type Description
MySQL Sent Bytes Between Client-Server/Sec Rate Number of bytes sent to all clients per second.
MySQL Received Bytes between Client-Server/Sec Rate Number of bytes received from all clients per second.
MySQL Total Attempts/Sec Rate Number of connection attempts (successful or not) per second to the MySQL server.
MySQL Total Failed And Aborted/Sec Rate Number of aborted or failed connections, aborted because the client died without closing the connection properly or failed attempts to connect to MySQL.
MySQL InnoDB Bytes Read/Sec Rate The amount of data read per second in Bytes.
MySQL InnoDB Bytes Written/Sec Rate The amount of data write per second in Bytes.
MySQL InnoDB File Synchronization/Sec Rate Number of file Synchronization operation called per second.
MySQL InnoDB Rows Queried/Sec Rate Number of rows read per second from InnoDB tables.
MySQL InnoDB Rows Deleted/Sec Rate Number of rows deleted per second from InnoDB tables.
MySQL InnoDB Rows Updated/Sec Rate Number of rows updated per second from InnoDB tables.
MySQL InnoDB Rows Inserted/Sec Rate Number of rows inserted per second from InnoDB tables.
MySQL Requests/Sec Rate The number of statements executed per second by the server. This includes only statements sent to the server by clients.
MySQL Inserts/Sec Rate Number of insert and replace statements executed per second by the server.
MySQL Queries/Sec Rate Number of queries per second by the server from select command and from cache.
MySQL Deletes/Sec Rate Number of delete statements executed per second by the server.
MySQL Updates/Sec Rate Number of delete statements executed per second by the server.
MySQL Tables Opened/Sec Rate Number of tables the server has opened per second by the server.
MySQL Temporary Tables Created /Sec Rate The number of internal on-disk temporary tables created per second by the server while executing statements.
MySQL Transactions/Sec Rate Number of total transactions per second.
MySQL Rolled Back Transactions/Sec Rate Number of roll back transactions per second.
MySQL Committed Transactions/Sec Rate Number of committed transactions per second.
MySQL Total Sort/sec Rate The number of sorts per second, done by scanning the table and using ranges.

MySQL Efficiency Stats

MySQL Efficiency monitors metrics related to key cache, query cache, InnoDB cache etc.

Graph Name Type Description
MySQL Slow Queries (Pct) Sample Percentage of queries that have taken more than long_query_time.
MySQL Key Cache Read Hits/Sec Rate The number of physical reads per second of a key block from disk into the MyISAM key cache.
MySQL Key Cache Write Hits/Sec Rate The number of physical writes per second of a key block from disk into the MyISAM key cache.
MySQL Query Cache Hits (Pct) Sample Percentage of query cache hits.
MySQL InnoDB Cache Buffer Pool Hits/Sec Rate Number of logical reads per second from the buffer pool.
MySQL InnoDB Cache Buffer Pool Writes Waited (Pct) Sample Percentage of InnoDB buffer Pool waiting request to write.
MySQL InnoDB Row Locks Waiting Sample Number of row locks currently being waited for by operations on InnoDB tables.
MySQL InnoDB Row Locks Avg Lock Time (Sec) Sample Average time to acquire a row lock for InnoDB tables, in seconds.
MySQL Table Locks Waited (Pct) Sample Percentage of request for a table lock that could not be granted immediately and a wait was needed.

MySQL Resource Usage Stats

MySQL Resource Usage Stats monitors metrics related to resource consumption of MySQL.

Graph Name Type Description
MySQL Connections Used (Pct) Sample Percentage of used connections from total connections.
MySQL Total Active Threads Sample Number of threads that are not sleeping.
MySQL Total Cached Threads Sample Number of threads in the thread cache.
MySQL Total Connected Threads Sample Number of currently open connections.
MySQL Open Tables| Sample Number of tables that are open.
MySQL Key Cache Used (Pct) Sample Percentage of used key cache.
MySQL Query Cache Used (Pct) Sample Percentage of used query cache.
MySQL InnoDB Buffer Pool Used (Pct) Sample Percentage of used InnoDB Buffer Pool
MySQL Opened Files Sample Number of opened files
MySQL Slow Queries/Sec Rate The number of queries per second that have taken more than long_query_time second(s)
MySQL Max Used Connections Sample The maximum number of connections that have been in use simultaneously since the server started.

MySQL Replication Stats

MySQL Replication monitors metrics related to slave IO state, slave IO running etc.

Graph Name Type Description
MySQL Slave IO State Sample The current status of the slave. Slave IO state is 1 = Checking master version, 2 = Connecting to master, 3 = Queueing master event to the relay log, 4 = Reconnecting after a failed binlog dump request, 5 = Reconnecting after a failed master event read, 6 = Registering slave on master, 7 = Requesting binlog dump, 8 = Waiting for its turn to commit, 9 = Waiting for master to send event, 10 = Waiting for master update, 11 = Waiting for slave mutex on exit, 12 = Waiting for the slave SQL thread to free enough relay log space, 13 = Waiting to reconnect after a failed binlog dump request, 14 = Waiting to reconnect after a failed master event read.
MySQL Slave IO Running Sample Whether the I/O thread for reading the master’s binary log is running. Slave IO running is 0 = No, 1 = yes, 2 = Connecting.
MySQL Slave SQL Running Sample Whether the SQL thread for executing events in the relay log is running. Slave Sql running is 0 = No, 1 = yes.
MySQL Second Behind Master (Sec) Sample The number of seconds that the slave SQL thread is behind processing the master binary log.
Relay_Log_Space Sample The total combined size of all existing relay log files.
SQL_Delay Sample The number of seconds that the slave must lag the master.
SQL_Remaining_Delay Sample When Slave SQL Running State is Waiting until MASTER DELAY seconds after master executed event, It contains the number of delay seconds remaining.
Slave_SQL_Running_State Sample The state of the SQL thread. Slave Sql Running state is 1 = Killing slave, 2 = Making temporary file (append) before replaying LOAD DATA INFILE, 3 = Making temporary file (create) before replaying LOAD DATA INFILE, 4 = Reading event from the relay log, 5 = Slave has read all relay log; waiting for more updates, 6 = Waiting for an event from Coordinator, 7 = Waiting for slave mutex on exit, 8 = Waiting for Slave Workers to free pending events, 9 = Waiting for the next event in relay log, 10 = Waiting until MASTER_DELAY seconds after master executed event.
Master_Retry_Count Sample The number of times the slave can attempt to reconnect to the master in the event of a lost connection.

MySQL Group Replication

MySQL Group Replication provides virtually synchronous updates on any member in a group of MySQL servers, with conflict handling and automatic group membership management and failure detection. The multi master plugin for MySQL is here. MySQL Group Replication provides virtually synchronous updates on any member in a group of MySQL servers, with conflict handling and automatic group membership management and failure detection.

Graph Name Graph Type Description
MySQL Member State Scalar State OFFLINE=0 The Group Replication plugin is installed but has not been started, ONLINE=1 The member is in a fully functioning state, RECOVERING=2 The member has joined a group from which it is retrieving data, ERROR=3 Whenever there is an error on the recovery phase or while applying changes, the server enters this state, UNREACHABLE=4 Whenever the local failure detector suspects that a given server is not reachable, because maybe it has crashed or was disconnected involuntarily, it shows that server state as unreachable.
MySQL In Queue Transactions Scalar Number of transactions in queue pending certification. In case of simple run this field shows value 0 but if the load is high it increases transactions in queue. Once the transactions have been checked for conflicts, if they pass the check, they are queued to be applied as well.
MySQL Checked Transactions/Sec Scalar Number of transactions that have been checked for conflicts per second.
MySQL Conflict Detected Transactions/Sec Scalar Number of transactions that did not pass the conflict detection check per second.
MySQL Row Validated Transactions Scalar Current size of the conflict detection database (against which each transaction is certified).