# make sure mysql is running template: mysql_last_collected_secs on: mysql.queries calc: $now - $last_collected_t units: seconds ago every: 10s warn: $this > (($status >= $WARNING) ? ($update_every) : ( 5 * $update_every)) crit: $this > (($status == $CRITICAL) ? ($update_every) : (60 * $update_every)) delay: down 5m multiplier 1.5 max 1h info: number of seconds since the last successful data collection to: dba # ----------------------------------------------------------------------------- # slow queries template: mysql_10s_slow_queries on: mysql.queries lookup: sum -10s of slow_queries units: slow queries every: 10s warn: $this > (($status >= $WARNING) ? (5) : (10)) crit: $this > (($status == $CRITICAL) ? (10) : (20)) delay: down 5m multiplier 1.5 max 1h info: number of mysql slow queries over the last 10 seconds to: dba # ----------------------------------------------------------------------------- # lock waits template: mysql_10s_table_locks_immediate on: mysql.table_locks lookup: sum -10s absolute of immediate units: immediate locks every: 10s info: number of table immediate locks over the last 10 seconds to: dba template: mysql_10s_table_locks_waited on: mysql.table_locks lookup: sum -10s absolute of waited units: waited locks every: 10s info: number of table waited locks over the last 10 seconds to: dba template: mysql_10s_waited_locks_ratio on: mysql.table_locks calc: ( ($mysql_10s_table_locks_waited + $mysql_10s_table_locks_immediate) > 0 ) ? (($mysql_10s_table_locks_waited * 100) / ($mysql_10s_table_locks_waited + $mysql_10s_table_locks_immediate)) : 0 units: % every: 10s warn: $this > (($status >= $WARNING) ? (10) : (25)) crit: $this > (($status == $CRITICAL) ? (25) : (50)) delay: down 30m multiplier 1.5 max 1h info: the ratio of mysql waited table locks, for the last 10 seconds to: dba # ----------------------------------------------------------------------------- # replication template: mysql_replication on: mysql.slave_status calc: ($sql_running == -1 OR $io_running == -1)?0:1 units: ok/failed every: 10s crit: $this == 0 delay: down 5m multiplier 1.5 max 1h info: checks if mysql replication has stopped to: dba template: mysql_replication_lag on: mysql.slave_behind calc: $seconds units: seconds every: 10s warn: $this > (($status >= $WARNING) ? (5) : (10)) crit: $this > (($status == $CRITICAL) ? (10) : (30)) delay: down 15m multiplier 1.5 max 1h info: the number of seconds mysql replication is behind this master to: dba