Monitor your MySQL servers as done before, for free!

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.

7 thoughts on “Monitor your MySQL servers as done before, for free!

  1. Thanks for linking to MONyog.

    The main difference between concepts (not discussing features) are, I think

    1) MONyog does not at all touch the server(s) monitored. Nothing stored here. Also nothing executable to run on the servers monitored. MONyog is ‘agentless’. I don’t know if you can monitor 200 MySQL servers and have only one mycheckpoint instance to maintain? Can you (more or less easily) have a unified view of multiple MySQL servers in one page?

    2) MONyog has built in its own HTTP daemon, its own database and its own script-intepreter (javascript) and does not depend on availability of a (non-cross platform) runtime (Perl, Python, .NET, whatever) on the system(s) where MySQL is running and/or MONyog is installed. MONyog is 100% ‘self-contained’ (with the sole exception that an external service is required or mail- or trap-alerts)

    3) MONyog needs very few privileges to MySQL and to the systems where MySQL(s) is/are running – because you don’t need to install and configure anything there.

    Am I missing something?

  2. Hi Peter,

    1) mycheckpoint does not have to touch the servers it monitors. It need to write the data somewhere, and that can be a small MySQL server dedicated for storing monitored results. I *can* use the same servers being monitored.

    mycheckpoint can run on the same machine as monitored MySQL server, or from a remote machine. The advantage of running it on same machine as server is then the ability to monitor OS data (disk IO, disk usage, load average, etc., all very basic). Or you can monitor remotely and skip OS monitoring.

    It’s definitely possible to have one mycheckpoint instance to maintain. If you want it to monitor 200 servers, just execute it 200 times with different “–monitored-host” and “–database”.
    It does require a different schema for each monitored server.
    See here.

    I cannot at this time have a unified page of multiple servers on one page. It’s a pending request, and I haven’t got round to that.

    2) mycheckpoint uses SimpleHTTPServer class from python. It’s pre-built in any python distribution, to the best of my knowledge.
    Why do you say python is non-cross platform though?

    I do wish to make the point that mycheckpoint indeed is not tested on MS Windows; I have no knowledge about anyone using it on Windows.

    So I would say mycheckpoint is 98% self-contained: it requires python (available on all unix machines), python-mysql (needs to be installed by user), and, like MONyog, external mail service.

    3) Same. See here: installation instructions for required GRANTs.

    So, for these three concepts, I don’t see that great a difference.


    Like I said, there’s no comparison about the scope of the two. I’ve worked alone on mycheckpoint for about a year on my spare time. I have no idea about the team size for MONyog; obviously a *whole lot* time has been invested.

    I’m not saying mycheckpoint is *as* feature rich as MONyog. It is not. MONyog has a richer feature set.

    I’m saying that saying “like never before” on custom queries is something that makes me want to write a blog post such as this one.
    “Like never before” is a marketing phrase, and that’s fine; but I wish to point out there are plenty installations on mycheckpoint (I don’t know how many, I’m judging by downloads only) for whom “like never before” does not fit.

  3. PS
    for companies who find it hard to afford a full commercial license for MySQL (which makes for a fully-featured Enterprise Monitor) I sometimes suggest they should try out MONyog.

  4. OK .. thanks for taking the time to reply so detailed. I think I should reply back to 2 points:

    1)
    “Why do you say python is non-cross platform though?”. I was referring Windows where Python is not ‘native’. It may be installed of course. But most Windows users are unfamiliar with handling such Unix-style environments.

    2)
    MONyog has been available to the public for 4+ years now.

  5. 1) Agreed. Strictly speaking, mycheckpoint is geared towards Linux. I have it working on BSD machines, as well, but have no current intention of testing it on Windows. I have actually never tried.

    2) Yes. I have first encountered it slightly more than 3 years ago on a customer’s site, and it made a good impression.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.