Yesterday I started to play with mcollective
I added some agents like service and facter.
I really liked the facter agent…. and then I decided to add facts for MySQL.
Of course I needed to learn some ruby first 🙂
A fact is created for the version and all other MySQL facts come from the SHOW STATUS statement.
All the new facts start by mysql_
I plan to add new facts related to the replication like Seconds_Behind_Master
The current version is available on github here
Some usage examples:
with facter:
[root@delvaux facter]# facter mysql_version 2>/dev/null 5.5.10 [root@delvaux facter]# facter mysql_max_used_connections 2>/dev/null 3
with mcollective:
[root@delvaux facter]# mc-facts mysql_version
Report for fact: mysql_version
        5.0.51a-24+lenny5-log                   found 1 times
        5.5.10                                  found 1 times
Finished processing 2 / 2 hosts in 64.36 ms
[root@delvaux facter]# mc-facts mysql_open_files
Report for fact: mysql_open_files
        16                                      found 1 times
        18                                      found 1 times
Finished processing 2 / 2 hosts in 2418.13 ms
[root@delvaux facter]# mc-facts mysql_open_files -v
Determining the amount of hosts matching filter for 2 seconds .... 2
Report for fact: mysql_open_files
        16                                      found 1 times
            delvaux.maladree.be
        18                                      found 1 times
            debian1.maladree.be
---- rpc stats ----
           Nodes: 2 / 2
     Pass / Fail: 0 / 0
      Start Time: Sat Apr 02 00:11:46 +0200 2011
  Discovery Time: 2001.84ms
      Agent Time: 1344.24ms
      Total Time: 3346.08ms
[root@delvaux facter]# mc-facts mysql_threads_connected 
Report for fact: mysql_threads_connected
        2                                       found 2 times
Finished processing 2 / 2 hosts in 3270.86 ms
[root@delvaux facter]# mc-facts mysql_threads_connected -v
Determining the amount of hosts matching filter for 2 seconds .... 2
Report for fact: mysql_threads_connected
        2                                       found 2 times
            debian1.maladree.be
            delvaux.maladree.be
---- rpc stats ----
           Nodes: 2 / 2
     Pass / Fail: 0 / 0
      Start Time: Sat Apr 02 00:12:47 +0200 2011
  Discovery Time: 2001.73ms
      Agent Time: 50.43ms
      Total Time: 2052.15ms

I’ve added also facts from the SHOW SLAVE STATUS statement.
Those facts are prefixed with mysql_replica_
Example:
[root@delvaux facter]# mc-facts mysql_replica_slave_sql_running -v Determining the amount of hosts matching filter for 2 seconds .... 3 Report for fact: mysql_replica_slave_sql_running Yes found 2 times debian1 debian2 ---- rpc stats ---- Nodes: 3 / 3 Pass / Fail: 0 / 0 Start Time: Sat Apr 02 23:22:31 +0200 2011 Discovery Time: 2005.77ms Agent Time: 51.02ms Total Time: 2056.79msI just added a new fact to see the server version (from @@version_comment) :