Xaprb

Stay curious!

A new dashboard for innotop

with 5 comments

I’m using innotop again every day, for the first time in a few years. I found that I didn’t like the tool that the younger and less experienced version of me created. It is very flexible and has the ability to surface a lot of information about MySQL, but not all on one screen. I wanted a “single pane of glass” health dashboard for the servers I’m monitoring, instead of having to look on various screens for important bits of information.

The good news is, innotop is very extensible and I know the code because I wrote most of it, so in a short while I had a dashboard that suited me. I committed these changes to trunk, so if you wish you can easily get the code:

$ wget innotop.googlecode.com/svn/trunk/innotop
$ chmod +x innotop
$ ./innotop

You can select the new ‘A’ mode by pressing the capital ‘A’ key. Here is a screenshot (click for full size version):

Each line in the table is a single server. From the left, the columns are the server’s name, uptime, QPS sparkline, current QPS, length of longest-running user query (excludes replication and system users), number of user threads running (ditto on the meaning of that) as a sparkline and current value, number of connections, open tables, whether replication is OK, how much replication is lagging, and the total of all InnoDB’s pending I/O operations.

The coloration is based on the length of the MaxSQL column and ReplLag column. If Repl is not Yes, the row is colored black on a red background.

Written by Xaprb

August 14th, 2012 at 11:49 am

Posted in Innotop,SQL

5 Responses to 'A new dashboard for innotop'

Subscribe to comments with RSS

  1. I’m having a terrible time seeing those as line graphs. If you’re not restricted to ASCII, you could use some Unicode block characters, as this script does:

    https://github.com/Mgccl/mgccl-haskell/blob/master/random/spark.hs

    Tim McCormack

    14 Aug 12 at 3:50 pm

  2. Hey Baron,

    This is great, thanks!
    I have been using innotop daily at work for the last year or so, and this dashboard is a welcome addition!

    I do agree that the unicode block characters would make it even better too.

    Regards,
    Fernando.

    Fernando ipar

    14 Aug 12 at 7:44 pm

  3. The Unicode characters would be good, I agree. Anyone want to volunteer a Perl code snippet? Anyone named Brian F at Percona?

    Xaprb

    14 Aug 12 at 8:52 pm

  4. What kind of overhead (both on the servers and on the host running this) would be generated? I’d like to run this as my on call dashboard, but we’d be connecting to something like 100 different instances (only displaying about 2 dozen max most of the time)

    Will G.

    28 Aug 12 at 6:35 pm

  5. SHOW STATUS, SHOW SLAVE STATUS and SHOW PROCESSLIST. I intentionally didn’t make it run SHOW INNODB STATUS. Mine refreshes every 30 seconds and I’m using it to watch about 35 servers. It runs those queries serially on every host, so it takes a couple seconds to refresh.

    Xaprb

    29 Aug 12 at 4:47 pm

Leave a Reply