New project: ICMI Service Status Monitor

Monitoring your IT health

Several years ago, a colleague and I discussed the idea of installing a traffic light in the hallway that should signal the overall health of our IT infrastructure. We never got really far with this, but it was a nice idea. Yeah, true, you could just install a monitor in the hallway and show a nice dashboard, but where would be the fun in that? A traffic light is very clear in what it signals, even to non-IT people or managers ;-).

Traffic lights revisited

With physical computing becoming more and more easier, thanks to Arduino, PICAXE and others, we now have the means to revisit this idea of a traffic light and put it into reality. OK, I admit, this project is not really innovative and presumably not really complicated, but I will do it anyway, as an example and also because it will look cool in the hallway once it is done. So here’s the basic idea:

ICMI Status Monitor Logical Overview

Several services are monitored by a custom application on a computer somewhere. This software communicates with an Arduino board via serial link and tells the Arduino what to display on the health monitor. The health monitor itself consists of one or more segments, each capable of mimicking a traffic light, i.e. displaying green, yellow or red. For those with color blindness, the colors use can simply be changed. (This btw. is the reason why Jenkins CI displays blue circles for healthy projects and not green ones).

Segmenting segments

As mentioned, the health display itself will consist of several „traffic light“ segments. For simply monitoring the availability of a service, a single segment is enough. In my case, in addition to knowing that the database is up and running, I also would like some indicator that reflects the current load on the system. For this purpose, I should be able to assign more than one segment to this services, resulting in a finer resolution of the service status.

In addition to the three colors available in hardware, we could get several additional „interpolated“ states as well, e.g. amber as a mix of yellow and red or we could flash the indicator. Perhaps we even might add a fourth color in hardware, e.g. blue. But these are expansion options.

ICMI Status Monitor States explained


I’ve broken the project down into several steps with their own „deliverables“:

  • Lay down the idea and operation basics. This is done in this post.
  • Create a prototype of the display hardware. This step should result in a multi-segment display and an Arduino sketch that can translate commands like setServiceHealth(1, HEALTH_GOOD)  into the corresponding visual indicators.
    • Enable the sketch to control a single segment indicator
    • Enable the sketch to control a multi-segment indicator
  • Enable control of display prototype via serial port. A simple protocol will be created to send update commands to the display over the serial link. For testing purposes, this will be done using the serial monitor of the Arduino IDE.
  • Write control program to test the display from a computer without the Arduino IDE. Now this is the real deal: I will write a Java program that does the communication with the Arduino. The first version will be a simple GUI with some buttons to set the service indicator. The focus of this stage of development lies on the serial communication.
  • Write control program with monitoring API. Using the previous program as a basis, the service control will be extracted into an interface and corresponding service. In addition, the program will receive an API that allows various monitoring services to be implemented against a simple interface.
  • Write monitoring services, e.g. for the database, for Jenkins, etc.
  • Put everything together and make it nice. This is the hardest part 😉 And I already started with this one, not the wisest choice but what’s done is done.

All files related to this project are available on github at:

And by the way: ICMI of course stands for I can MAKE IT.

Verwandte Artikel

Tags: , , , , , ,

Eine Antwort für “New project: ICMI Service Status Monitor”

  1. Bodo 28. Mai 2012 um 20:55 #

    Here is the github version of it :

    Currently we have a Samsung 40″ LED at the end of the floor that shows nice graphs about our system in nice colors (red, green, yellow) for the different metrics. That way we have more informations than just „red“.

Hinterlassen Sie einen Kommentar