Select Supported Platforms

Select Supported Architectures

Select Tier

Github Name

Asset Definition
Release Notes
Release Assets


Build Status
Gem Version
Code Climate
Test Coverage
Dependency Status



  • bin/check-cloudwatch-mysql-sensu.rb
  • bin/check-mysql-alive.rb
  • bin/check-mysql-status.rb
  • bin/check-mysql-connections.rb
  • bin/check-mysql-disk.rb
  • bin/check-mysql-innodb-lock.rb
  • bin/check-mysql-threads.rb
  • bin/check-mysql-query-result-count.rb
  • bin/check-mysql-select-count.rb
  • bin/check-mysql-msr-replication-status.rb
  • bin/metrics-mysql-graphite.rb
  • bin/metrics-mysql-processes.rb
  • bin/metrics-mysql-raw.rb
  • bin/metrics-mysql.rb
  • bin/metrics-mysql-query-result-count.rb
  • bin/mysql-metrics.sql



        "hostname": "localhost",
        "username": "sensu_user",
        "password": "sensu_user_pass"

metrics-mysql-graphite example:

/opt/sensu/embedded/bin$ /opt/sensu/embedded/bin/ruby metrics-mysql-graphite.rb --host=localhost --port=3306 --user=collectd --pass=tflypass --socket=/data/mysql.sock

check-mysql-connections example

/opt/sensu/embedded/bin$ /opt/sensu/embedded/bin/ruby check-mysql-connections.rb --host=localhost --port=3306 --user=collectd --pass=tflypass --socket=/data/mysql.sock

check-mysql-connections example with ini file to hide credentials

$ /opt/sensu/embedded/bin/check-mysql-connections.rb --host=<DBHOST> --ini=/etc/sensu/my.ini

check-mysql-alive example

$ /opt/sensu/embedded/bin/check-mysql-alive.rb --host=<DBHOST> --ini=/etc/sensu/my.ini --ini-section=customsection

check-mysql-disk example (note: you must supply max disk size)

$ /opt/sensu/embedded/bin/check-mysql-disk.rb --host=<DBHOST> --ini=/etc/sensu/my.ini --size <MAX_DB_SIZE>

check-mysql-innodb-lock example

$ /opt/sensu/embedded/bin/check-mysql-innodb-lock.rb --host=<DBHOST> --ini=/etc/sensu/my.ini

check-mysql-threads example

$ /opt/sensu/embedded/bin/check-mysql-threads.rb --host=<DBHOST> --ini=/etc/sensu/my.ini --warnlow 0

check-mysql-replication-status example

$ /opt/sensu/embedded/bin/check-mysql-replication-status.rb --host=<SLAVE> --ini=/etc/sensu/my.ini

check-mysql-msr-replication-status example

$ /opt/sensu/embedded/bin/check-mysql-replication-status.rb --host=<SLAVE> --ini=/etc/sensu/my.ini

check-mysql-query-result-count example

/opt/sensu/embedded/bin$ /opt/sensu/embedded/bin/ruby check-mysql-query-result-count.rb --host=localhost --port=3306 --user=collectd --pass=tflypass --socket=/data/mysql.sock --warning 1 --critical 10 --query 'SELECT DISTINCT( FROM table t where t.failed = true'

check-mysql-select-count example

/opt/sensu/embedded/bin$ /opt/sensu/embedded/bin/ruby check-mysql-select-count.rb --host=localhost --port=3306 --user=collectd --pass=tflypass --socket=/data/mysql.sock --warning 30000 --critical 50000 --query 'SELECT count(*) FROM table t'

metrics-mysql-query-result-count example

/opt/sensu/embedded/bin$ /opt/sensu/embedded/bin/ruby metrics-mysql-query-result-count.rb --host=localhost --port=3306 --user=collectd --pass=tflypass --socket=/data/mysql.sock --query 'SELECT DISTINCT( FROM table t where t.failed = true'


In keeping with the principle of least privilege you should create a new user with the minimum required permissions. See the table below for minimum permissions for each check.

Check Permissions
check-mysql-alive.rb SELECT
check-mysql-connections.rb SELECT
check-mysql-disk.rb SELECT
check-mysql-innodb-lock.rb PROCESS
check-mysql-query-result-count.rb depends on query
check-mysql-select-count.rb SELECT
check-mysql-replication-status.rb SUPER OR REPLICATION_CLIENT (the latter is preferable)
check-mysql-msr-replication-status.rb SELECT
check-mysql-status.rb SELECT
check-mysql-threads.rb SELECT
metrics-mysql-graphite.rb SELECT
metrics-mysql-processes.rb SELECT
metrics-mysql-query-result-count.rb depends on query
metrics-mysql-raw.rb SELECT
metrics-mysql.rb INSERT into sensumetrics.sensu_historic_metrics

I would recommend using different users when you need to have more than RO access (REPLICATION_CLIENT or using the metrics handler) to limit the potential ramifications of that user being compromised.


Installation and Setup


The ruby executables are install in path similar to /opt/sensu/embedded/lib/ruby/gems/2.0.0/gems/sensu-plugins-mysql-0.0.4/bin


When used in chef, if the dependencies are missing, an error may abort the chef-client run:

*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

This may be fixed by installing the mysql client library before the plugin:

package "libmysqlclient-dev" do
  action :install

sensu_gem 'sensu-plugins-mysql' do version '0.0.4' end

Are you sure you want to report this asset?

Please describe the reason for reporting this asset. Our moderators will be notified and will disable the asset if it is found to be inappropriate.


You must be signed in to report this asset.

Sign In with Github



There are no asset definitions for this version, only source code:

Download Source Cancel