With genuine respect to other products, the people making those products and the efforts involved, I would like to make an issue:
Some things have been done before, done pretty well (if I may say so), and for free.
mycheckpoint is a free monitoring tool for MySQL. It uses an unorthodox approach of monitoring your MySQL servers by storing the monitored data in SQL format (actually, within a MySQL server). This allows you to either use the fancy JavaScript charting (by running mycheckpoint as HTTP server), or Do-It-Yourself diagnostics.
It allows for a great many more things, among which are custom queries and charts: you may add your own queries, to be included in the monitoring scheme. Query your AUTO_INCREMENT values to detect growth rate, query your INFORMATION_SCHEMA tables (if you dare) to learn about your data dimensions, query for query response time to detect performance issues with your website/database, or query your data itself (e.g. sales per day) to get insight about your product. Here are sample charts to illustrate.
Adding a custom query is as easy as producing an INSERT command. And of course you can set up alert conditions. You can set them up on your normal monitored data (e.g. seconds behind master) or on your custom monitored data (e.g. time it takes to execute cart-items query is too long, rate of purchases is below some threshold etc.). It works the same since all monitored data, standard & custom, is stored in SQL format: rows, columns, a table.
This also means you can retroactively check for different thresholds; you can query your data anyway you like! mycheckpoint provides you with a good visualization tool, but, like a good command like client, leaves the data intact for you to analyze the way you like it.
Of course you can get emailed once an alert pops up. But wait, not so fast: you can ask the alert to pop up only if the threshold is trespassed for a given amount of time. For example, it may be OK for OS load average to increase for a few moments, but you may wish to be alerted if this happens for over 30 minutes continuously.
The thing is, you get all these in an uncompressed 222K single python script (43K compressed), and there’s no trial period. mycheckpoint is completely free to download and use under the BSD license. It is listed in 10 essential MySQL tools for admin, and is well documented.
I’m not suggesting the scope of mycheckpoint levels with that of other products. It is lightweight; it does not have the full featured web interface as others do; there’s work to be done. It only provides basic OS monitoring, and there are missing parts, like replication topology monitoring. But it is feature rich. As the author of mycheckpoint I take notice of using it on production for my own servers. It gets the job done.
It uses some ideas based on existing tools, and a few original ones. Before you say “like never before”, take a look at mycheckpoint.
I have to say that I do like this tool. I especially like the ‘custom queries’ features. I have had a lot of requests for custom queries such as – can you tell me how many orders we sold yesterday, because if its under a certain amount there may be a problem with the thing-a-mi-jig in the warehouse again.
You can technically set that up in nagios, however.
As for the comment above, I do not feel that the mycheckpoint’s current measurements inflicts too much load on the server for me to worry about.
There may be a case that you need to install it for each database server, but hey.. its free… and you can just have one main server query the tables on each server’s mycheckpoint tables.
@Jonathan,
“You can technically set that up in nagios, however.”
And in Cacti, as well!
I’m here to stand up for mycheckpoint, of course š