#!/bin/bash
# MySQL monitorization plugin for Pandora FMS agent
# Author: Manuel A. GulĂn Bejarano
# Version: 1.0
# Date: 15/03/2013
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see .
function help {
echo -e "MySQL monitorization agent plugin for Pandora FMS agent. http://pandorafms.com"
echo -e "Syntax:"
echo -e "\t\t$0 '' 'dbpass'"
exit
}
if [ $# -ne 2 ]
then
help
exit -1
fi
MY_USER="$1"
MY_PASS="$2"
# Info about static variables - all retrieved with one query, later it's going to be appropiately parsed
MY_VAR=`mysql -u $MY_USER -p"$MY_PASS" -Bse 'SHOW /*!50000 GLOBAL */ VARIABLES'`
# Info about dynamic variables - all retrieved with one query, later it going to be appropiately parsed
MY_STAT=`mysql -u $MY_USER -p"$MY_PASS" -Bse 'SHOW /*!50000 GLOBAL */ STATUS'`
# Info about use of Innodb, if enabled - all retrieved with one query, later it going to be appropiately parsed
MY_INNODB_ACTIVE=`echo $MY_ENG | grep -o "InnoDB [yesno-YESNO]*" | awk '{print $2}'`
if [ "$MY_INNODB_ACTIVE" == "YES" ]; then
MY_INNO_STAT=`mysql -u $MY_USER -p"$MY_PASS" -Bse 'SHOW INNODB STATUS'`
fi
# Info about total number of databases and tables
MY_DBS_COUNT=`mysql -u $MY_USER -p"$MY_PASS" -Bse "SELECT COUNT(SCHEMA_NAME) FROM information_schema.SCHEMATA"`
MY_TABLES_COUNT=`mysql -u $MY_USER -p"$MY_PASS" -Bse "SELECT COUNT(TABLE_NAME) FROM information_schema.TABLES"`
# Info about the total size of data and indexes in MB
MY_DATA_SIZE=`mysql -u $MY_USER -p"$MY_PASS" -Bse "SELECT SUM(data_length)/(1024*1024) FROM information_schema.TABLES"`
MY_INDEX_SIZE=`mysql -u $MY_USER -p"$MY_PASS" -Bse "SELECT SUM(index_length)/(1024*1024) FROM information_schema.TABLES"`
# General info about this MySQL system
MY_HOST=`echo $MY_VAR | grep -o ' hostname .*' | awk '{print $2}'`
MY_VERSION=`echo $MY_VAR | grep -o ' version .*' | awk '{print $2}'`
MY_ARCH=`echo $MY_VAR | grep -o ' version_compile_machine .*' | awk '{print $2}'`
MY_ENG=`echo $MY_VAR | grep -o "storage_engine [a-zA-Z]*" | awk '{print $2}'`
MY_ISO=`echo $MY_VAR | grep -o " tx_isolation .*" | awk '{print $2}'`
MY_UPTIME=`echo $MY_STAT | grep -o ' Uptime .*' | awk '{print $2}'`
MY_FLUSHUPTIME=`echo $MY_STAT | grep -o ' Uptime_since_flush_status .*' | awk '{print $2}'`
MY_UWOPASS=`mysql -u $MY_USER -p"$MY_PASS" -Bse "SELECT COUNT(CONCAT(user, '\@', host)) FROM mysql.user WHERE password = '' OR password IS NULL"`
# Info about general logging
MY_GENLOG=`echo $MY_VAR | grep -o " general_log [onfONF]*" | awk '{if (tolower($2) == "off") {print 0} else {print 1}}'`
MY_WARNLOG=`echo $MY_VAR | grep -o " log_warnings [01]" | awk '{print $2}'`
# Info about slow queries logging
MY_SLOWLOG=`echo $MY_VAR | grep -o " slow_query_log [onfONF]*" | awk '{if (tolower($2) == "off") {print 0} else {print 1}}'`
MY_SLOWLOGTIME=`echo $MY_VAR | grep -o " long_query_time [0-9.,]*" | awk '{print $2}'`
# Info about binary logging
MY_BINLOG=`echo $MY_VAR | grep -o " log_bin [onfONF]*" | awk '{if (tolower($2) == "off") {print 0} else {print 1}}'`
MY_BINLOGF=`echo $MY_VAR | grep -o " binlog_format .*" | awk '{print $2}'`
MY_SBINLOG=`echo $MY_VAR | grep -o " sync_binlog [0|1]" | awk '{print $2}'`
MY_BINCSIZE=`echo $MY_VAR | grep -o " binlog_cache_size [0-9]*" | awk '{print $2}'`
MY_BINMSIZE=`echo $MY_VAR | grep -o " max_binlog_size [0-9]*" | awk '{print $2}'`
# Info about files
MY_OPEN_FILES_LIMIT=`echo $MY_VAR | grep -o " open_files_limit [0-9]*" | awk '{print $2}'`
MY_OPEN_FILES=`echo $MY_STAT | grep -o "Open_files [0-9]*" | awk '{print $2}'`
MY_OPEN_FILES100=`echo $MY_OPEN_FILES $MY_OPEN_FILES_LIMIT | awk '{ if ($2>0) { print int($1*10000/$2)/100 } else { print 0 } }'`
# Info about connections
MY_CONN=`echo $MY_STAT | grep -o "Connections [0-9]*" | awk '{print $2}'`
MY_ABORT_CONN=`echo $MY_STAT | grep -o "Aborted_connects [0-9]*" | awk '{print $2}'`
MY_ABORT_CONN100=`echo $MY_ABORT_CONN $MY_CONN | awk '{ if ($2>0) { print int($1*10000/$2)/100 } else { print 0 } }'`
MY_MAXUSED_CONN=`echo $MY_STAT | grep -o "Max_used_connections [0-9]*" | awk '{print $2}'`
MY_MAX_CONN=`echo $MY_VAR | grep -o "max_connections [0-9]*" | awk '{print $2}'`
MY_MAX_CONN100=`echo $MY_MAXUSED_CONN $MY_MAX_CONN | awk '{ if ($2>0) { print int($1*10000/$2)/100 } else { print 0 } }'`
# Info about temporal tables
MY_TMP_TABLES=`echo $MY_STAT | grep -o "Created_tmp_tables [0-9]*" | awk '{print $2}'`
MY_DISKTMP_TABLES=`echo $MY_STAT | grep -o "Created_tmp_disk_tables [0-9]*" | awk '{print $2}'`
MY_DISKTMP_TABLES100=`echo $MY_DISKTMP_TABLES $MY_TMP_TABLES | awk '{ if (($1+$2)>0) { print int($1*10000/($1+$2))/100 } else { print 0 } }'`
# General info about queries
MY_SELECT=`echo $MY_STAT | grep -o "Com_select [0-9]*" | awk '{print $2}'`
MY_INSERT=`echo $MY_STAT | grep -o "Com_insert [0-9]*" | awk '{print $2}'`
MY_UPDATE=`echo $MY_STAT | grep -o "Com_update [0-9]*" | awk '{print $2}'`
MY_REPLACE=`echo $MY_STAT | grep -o "Com_replace [0-9]*" | awk '{print $2}'`
MY_DELETE=`echo $MY_STAT | grep -o "Com_delete [0-9]*" | awk '{print $2}'`
let MY_WRITES=$MY_INSERT+$MY_UPDATE+$MY_REPLACE+$MY_DELETE
MY_WRITES100=`echo $MY_SELECT $MY_WRITES | awk '{ if (($1+$2)>0) { print int($2*10000/($1+$2))/100 } else { print 0 } }'`
MY_SLOW_QUERIES=`echo $MY_STAT | grep -o "Slow_queries [0-9]*" | awk '{print $2}'`
MY_QUESTIONS=`echo $MY_STAT | grep -o "Questions [0-9]*" | awk '{print $2}'`
MY_SLOW_QUERIES100=`echo $MY_SLOW_QUERIES $MY_QUESTIONS | awk '{ if ($2>0) { print int($1*10000/$2)/100 } else { print 0 } }'`
# Info about buffers
MY_RD_BF_SIZE=`echo $MY_VAR | grep -o " read_buffer_size [0-9]*" | awk '{print $2}'`
MY_RD_RND_BF_SIZE=`echo $MY_VAR | grep -o " read_rnd_buffer_size [0-9]*" | awk '{print $2}'`
MY_SORT_BF_SIZE=`echo $MY_VAR | grep -o " sort_buffer_size [0-9]*" | awk '{print $2}'`
MY_JOIN_BF_SIZE=`echo $MY_VAR | grep -o " join_buffer_size [0-9]*" | awk '{print $2}'`
# Info about threads
MY_THREAD_STACK=`echo $MY_VAR | grep -o " thread_stack [0-9]*" | awk '{print $2}'`
let MY_PER_THREAD_BF=$MY_RD_BF_SIZE+$MY_RD_RND_BF_SIZE+$MY_SORT_BF_SIZE+$MY_JOIN_BF_SIZE+$MY_THREAD_STACK
let MY_ALL_THREAD_BF=$MY_PER_THREAD_BF*$MY_MAX_CONN
let MY_USED_THREAD_BF=$MY_PER_THREAD_BF*$MY_MAXUSED_CONN
MY_KEY_BF_SIZE=`echo $MY_VAR | grep -o " key_buffer_size [0-9]*" | awk '{print $2}'`
MY_MAX_HEAP_TABLE_SIZE=`echo $MY_VAR | grep -o " max_heap_table_size [0-9]*" | awk '{print $2}'`
if [ "$MY_INNODB_ACTIVE" == "YES" ]; then
MY_INNODB_BUFFER_POOL_SIZE=`echo $MY_VAR | grep -o " innodb_buffer_pool_size [0-9]*" | awk '{print $2}'`
MY_INNODB_ADDITIONAL_MEM_POOL_SIZE=`echo $MY_VAR | grep -o " innodb_addtional_mem_pool_size [0-9]*" | awk '{print $2}'`
MY_INNODB_LOG_BUFFER_SIZE=`echo $MY_VAR | grep -o " innodb_log_buffer_size [0-9]*" | awk '{print $2}'`
MY_INNODB_QUERY_CACHE_SIZE=`echo $MY_VAR | grep -o " innodb_query_cache_size [0-9]*" | awk '{print $2}'`
else
MY_INNODB_BUFFER_POOL_SIZE=0
MY_INNODB_ADDITIONAL_MEM_POOL_SIZE=0
MY_INNODB_LOG_BUFFER_SIZE=0
MY_INNODB_QUERY_CACHE_SIZE=0
fi
let MY_SERVER_BUFFERS=$MY_MAX_HEAP_TABLE_SIZE+$MY_KEY_BF_SIZE+$MY_INNODB_BUFFER_POOL_SIZE+$MY_INNODB_ADDITIONAL_MEM_POOL_SIZE+$MY_INNODB_LOG_BUFFER_SIZE+$MY_INNODB_QUERY_CACHE_SIZE
# Info about memory usage
let MY_USED_TOTAL_MEM=$MY_SERVER_BUFFERS+$MY_USED_THREAD_BF
MY_SYS_MEM=`free -b | grep "Mem:[ ]*[0-9]*" | awk '{print $2}'`
MY_MAX_TOTAL_MEM_VS_SYS=`echo $MY_MAX_TOTAL_MEM $MY_SYS_MEM |awk '{if ($2>0) {print int(10000*$1/$2)/100} else {print 0}}'`
# Info about key usage and its cache
MY_KEY_BLOCKS_UNUSED=`echo $MY_STAT | grep -o "Key_blocks_unused [0-9]*" | awk '{print $2}'`
MY_KEY_CACHE_BLOCK_SIZE=`echo $MY_VAR | grep -o " key_cache_block_size [0-9]*" | awk '{print $2}'`
MY_KEY_BLOCKS_USED100=`echo $MY_KEY_BLOCKS_UNUSED $MY_KEY_CACHE_BLOCK_SIZE $MY_KEY_BF_SIZE | awk '{if ($3>0) {print 100-int(10000*$1*$2/$3)/100} else {print 0}}'`
MY_KEY_READS=`echo $MY_STAT | grep -o "Key_reads [0-9]*" | awk '{print $2}'`
MY_KEY_READ_REQUESTS=`echo $MY_STAT | grep -o "Key_read_requests [0-9]*" | awk '{print $2}'`
MY_KEYS_FROM_MEM100=`echo $MY_KEY_READS $MY_KEY_READ_REQUESTS | awk '{if ($2>0) {print 100-int(10000*$1/$2)} else {print 0}}'`
# Info about query cache
MY_QCACHE_HITS=`echo $MY_STAT | grep -o " Qcache_hits [0-9]*" | awk '{print $2}'`
MY_QCACHE_INEFFICIENCY100=`echo $MY_QCACHE_HITS $MY_SELECT | awk '{if (($1+$2)>0) { print int(10000*$1/($1+$2))/100} else {print 100}}'`
MY_QCACHE_SIZE=`echo $MY_VAR | grep -o "query_cache_size [0-9]*" | awk '{print $2}'`
MY_QCACHE_FREE_MEM=`echo $MY_STAT | grep -o "Qcache_free_memory [0-9]*" | awk '{print $2}'`
MY_QCACHE_USED_MEM100=`echo $MY_QCACHE_FREE_MEM $MY_QCACHE_SIZE | awk '{print 100-int(100*$1/$2)/100}'`
MY_QCACHE_PRUNES=`echo $MY_STAT | grep -o "Qcache_lowmem_prunes [0-9]*" | awk '{print $2}'`
MY_QCACHE_PRUNES_DAY=`echo $MY_QCACHE_PRUNES $MY_UPTIME | awk '{if ($2>0) {print int(100*$1*86400/$2)/100} else {print 0}}'`
# Info about sorts
MY_SORT_SCAN=`echo $MY_STAT | grep -o "Sort_scan [0-9]*" | awk '{print $2}'`
MY_SORT_RANGE=`echo $MY_STAT | grep -o "Sort_range [0-9]*" | awk '{print $2}'`
let MY_SORT_TOTAL=$MY_SORT_SCAN+$MY_SORT_RANGE
MY_SORT_MERGE_PASSES=`echo $MY_STAT | grep -o "Sort_merge_passes [0-9]*" | awk '{print $2}'`
MY_SORTS_TEMP_TABLES100=`echo $MY_SORT_MERGE_PASSES $MY_SORT_TOTAL | awk '{if ($2>0) {print int(10000*$1/$2)/100} else {print 0}}'`
# Info about joins
MY_SEL_RANGE_CHECK=`echo $MY_STAT | grep -o "Select_range_check [0-9]*" | awk '{print $2}'`
MY_SEL_FULL_JOIN=`echo $MY_STAT | grep -o "Select_full_join [0-9]*" | awk '{print $2}'`
let MY_JOINS_WO_INDEXES=$MY_SEL_RANGE_CHECK+$MY_SEL_FULL_JOIN
MY_JOINS_WO_INDEXES100=`echo $MY_JOINS_WO_INDEXES $MY_UPTIME | awk '{if ($2>0) {print int(100*$1*86400/$2)/100} else {print 0}}'`
# Info about open tables
MY_OPEN_TABLES=`echo $MY_STAT | grep -o "Open_tables [0-9]*" | awk '{print $2}'`
MY_OPENED_TABLES=`echo $MY_STAT | grep -o "Opened_tables [0-9]*" | awk '{print $2}'`
# Info about caches
MY_TABLE_CACHE_HIT_RATE=`echo $MY_OPEN_TABLES $MY_OPENED_TABLES | awk '{if ($2>0) {print int(10000*$MY_OPEN_TABLES/$MY_OPENED_TABLES)/100} else {print 100}}'`
MY_TABLE_LOCKS_IMMEDIATE=`echo $MY_STAT | grep -o "Table_locks_immediate [0-9]*" | awk '{print $2}'`
MY_TABLE_LOCKS_WAITED=`echo $MY_STAT | grep -o "Table_locks_waited [0-9]*" | awk '{print $2}'`
MY_TABLE_LOCKS_IMMEDIATE100=`echo $MY_TABLE_LOCKS_IMMEDIATE $MY_TABLE_LOCKS_WAITED | awk '{ if ($1+$2>0) { print int(10000*$1/($1+$2))/100} else {print 100}}'`
MY_THREADS_CREATED=`echo $MY_STAT | grep -o "Threads_created [0-9]*" | awk '{print $2}'`
MY_THREAD_CACHE_HITRATE100=`echo $MY_THREADS_CREATED $MY_CONN | awk '{ if ($2>0) {print 100-int(10000*$1/$2)/100} else {print 100}}'`
#########################################################################################################
# GENERAL INFO MODULES
#########################################################################################################
# Module to get MySQL hostname
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_string"
echo -e "\t0"
echo -e "\t"
#echo -e "\t0 * * * *""
echo -e "\t"
# Module to get MySQL version
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_string"
echo -e "\t0"
echo -e "\t"
#echo -e "\t0 * * * *""
echo -e "\t"
# Module to get the number of databases
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\t#"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to get the number of tables
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\t#"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to get the size of stored data
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\tMB"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to get the size of stored indexes
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\tMB"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to get the default engine
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_string"
echo -e "\t0"
echo -e "\t"
#echo -e "\t0 * * * *""
echo -e "\t"
# Module to get MySQL isolation level
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_string"
echo -e "\t0"
echo -e "\t"
#echo -e "\t0 * * * *""
echo -e "\t"
# Module to get MySQL uptime
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\ts"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to get MySQL uptime since last flush
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\ts"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to get the number of users without password
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\t#"
echo -e "\t0"
echo -e "\t1"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# GENERAL LOG INFO MODULES
#########################################################################################################
# Module to know if log is enabled
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_proc"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know if log is enabled
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_proc"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# SLOW LOG INFO MODULES
#########################################################################################################
# Module to know if log slow queries is enabled
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_proc"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the time to a query as slow
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\ts"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# BINARY LOG INFO MODULES
#########################################################################################################
# Module to know if binlog is enabled
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_proc"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know binlog format
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_string"
echo -e "\t0"
echo -e "\t"
#echo -e "\t0 * * * *""
echo -e "\t"
# Module to know if binlog syncing is enabled
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_proc"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the cache size of the binlog
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\tb"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the cache size of the binlog
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\tb"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# OPEN FILES INFO MODULES
#########################################################################################################
# Module to know the number of open files
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t#"
echo -e "\t0"
echo -e "\t$MY_OPEN_FILES_LIMIT"
echo -e "\t"
echo -e "\t"
# Module to know the % of open files
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t85"
echo -e "\t94.99"
echo -e "\t95"
echo -e "\t100"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# CONNECTION INFO MODULES
#########################################################################################################
# Module to know the number of connection attempts
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\tconn"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the number of aborted connections
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\tconn"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the % of aborted connections
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t5"
echo -e "\t9.99"
echo -e "\t10"
echo -e "\t100"
echo -e "\t"
echo -e "\t"
# Module to know the maximum number of used connections
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\tconn"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the maximum number of connections
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\tconn"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the maximum % of simultaneous connections
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t85"
echo -e "\t94.99"
echo -e "\t95"
echo -e "\t100"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# TEMPORAL TABLES INFO MODULES
#########################################################################################################
# Module to know the number of temporal tables created in memroy
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\ttables"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the number of temporal tables created in disk
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\ttables"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the % of temporal disk tables
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t25"
echo -e "\t34.99"
echo -e "\t35"
echo -e "\t100"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# GENERAL QUERIES INFO MODULES
#########################################################################################################
# Module to know the number of read queries
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\tqu"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the number of write queries
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\tqu"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the % of writes
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t"
echo -e "\t"
# Module to know the number of slow queries
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\tqu"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the number of questions sent to the server
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\tqu"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the % of slow queries
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t5"
echo -e "\t14.99"
echo -e "\t15"
echo -e "\t100"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# BUFFER AND MEMORY INFO MODULES
#########################################################################################################
# Module to get the size of the buffer of each possible thread
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\tb"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to get the max. size of the buffer of all threads
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\tb"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to get the max. used size of the buffer of simultaneous threads
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\tb"
echo -e "\t0"
echo -e "\t$MY_ALL_THREAD_BF"
echo -e "\t"
echo -e "\t"
# Module to get the size of the buffer of the server
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\tb"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to get the max. possible consumed memory
let MY_MAX_TOTAL_MEM=$MY_SERVER_BUFFERS+$MY_ALL_THREAD_BF
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\tb"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to get the max. used memory
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\tb"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to get the % of max possible consumed memory vs memory on the system
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tasync_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t90"
echo -e "\t99.99"
echo -e "\t100"
echo -e "\t"
echo -e "\t"
# Module to know the % of used key buffer
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t"
echo -e "\t"
# Module to know the % of keys retrieved from memory
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t0"
echo -e "\t80"
echo -e "\t80.01"
echo -e "\t95"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# QUERY CACHE INFO MODULES
#########################################################################################################
# Module to know the number of query cache hits
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t#"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the query cache efficiency
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t0"
echo -e "\t5"
echo -e "\t5.01"
echo -e "\t20"
echo -e "\t"
echo -e "\t"
# Module to know the free memory of query cache
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\tb"
echo -e "\t0"
echo -e "\t$MY_QCACHE_SIZE"
echo -e "\t"
echo -e "\t"
# Module to know the free memory of query cache
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t"
echo -e "\t"
# Module to know the number of query cache prunes
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t#"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to estimate the number of query cache prunes per day
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t#/day"
echo -e "\t0"
echo -e "\t100"
echo -e "\t"
echo -e "\t"
# Module to know the % of cache hit rate
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t0"
echo -e "\t19.99"
echo -e "\t20"
echo -e "\t30"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# SORTS INFO MODULES
#########################################################################################################
# Module to know the number of sorts
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t#"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to know the % of sorts requiring temporal tables
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t10"
echo -e "\t19.99"
echo -e "\t20"
echo -e "\t100"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# JOINS INFO MODULES
#########################################################################################################
# Module to know the number of joins without indexes
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t#"
echo -e "\t0"
echo -e "\t"
echo -e "\t"
# Module to estimate the number of joins without indexes per day
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t#/day"
echo -e "\t0"
echo -e "\t250"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# TABLE LOCKS INFO MODULES
#########################################################################################################
# Module to know the table locks aquired immediatly
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t0"
echo -e "\t89.99"
echo -e "\t90"
echo -e "\t95"
echo -e "\t"
echo -e "\t"
#########################################################################################################
# THREAD CACHE INFO MODULES
#########################################################################################################
# Module to know the % of connections that do NOT need to create a thread
echo -e "\t"
echo -e "\t"
echo -e "\t"
echo -e "\tgeneric_data"
echo -e "\t0"
echo -e "\t%"
echo -e "\t0"
echo -e "\t100"
echo -e "\t0"
echo -e "\t89.99"
echo -e "\t90"
echo -e "\t95"
echo -e "\t"
echo -e "\t"