This is a side project I’ve been working on for several months now.
Part of our daily routine at work involves monitoring the different systems ensuring our data center runs smoothly. This ranges from finding out whether every server is getting enough power, drawing too much power, to whether it’s even running at all.
To make this possible, our backend consists of tools to fetch, store, and process data from the sensors and power meters attached to every server rack. Nagios is the application that actively checks the status of every host on its database like power load, temperature, and humidity just to name a few parameters, and stores them in data sets. On top of that, another tool called Graphite interprets these data sets and renders a graph.
One disadvantage of Graphite rendered graphs is that the graphs are rendered to PNG files. Which means, it does not display graphs in real time. On top of that, graphite can only display one graph at a time. We needed a different system that can automatically update and display our metrics aesthetically.