Skip to content

kohlmannj/uptime

Repository files navigation

Uptime Monitor

(Check out the video demo on Vimeo)

Overview

Uptime Monitor shows you a remote machine’s average loads on a dynamic “wavy” line graph, as well as the system load vs. CPU usage on a nearby area chart. The app also provides high load alerts when the load has exceeded a certain value for a period of time (recovery alerts are there too). Below are a few other vital stats.

Front-End: Backbone and Marionette, RequireJS, D3.js, and many more. Back-End: Python, Flask, and good ol’ top. Deployment: Heroku—check it out live! License: BSD-3 Clause (learn more)

Features

Scaleable D3 visualizations: D3 is a fairly popular datavis graphics library, but it’s fairly common to redraw the underlying SVG when resizing the browser window. Turns out there’s a whole science and (dark) art to doing this better. In the end, Uptime Monitor renders SVG-based visualizations in a dynamic layout with consistent coordinates and no redraws on window resize. Go ahead and resize that browser window!

Animated “wavy” graphs: Now that everything scales, let’s have some fun with those redraws! Uptime Monitor takes inspiration from Dark Sky to give the load graph a bit of character. This bit of eye candy is also a motion encoding of changes in average load over time, drawing your eye to big changes in the graph.

Linked brushing between visualizations: Hover over any part of the interface—a message, CPU value, or load measurement—to see the corresponding data in another view. (You can also hover over for tooltips containing more info.)

High load alerts with Local Notifications: Uptime Monitor uses Local Notifications to provide alerts, even when you’re not looking right at it.

Requirements

*Optional, except not really.

Installation

Uptime Monitor is all ready to deploy on Heroku, so clone the repository, push, and you’re golden.

To run Uptime Monitor locally, use Python 2.7.8 and pip to install dependencies from requirements.txt. Then use python to run flask_app.py at http://0.0.0.0:3000:

$ cd uptime
$ pip install -r requirements.txt
$ python flask_app.py

For More Information

Check out my research and design notes for Uptime Monitor. See also: the Appendix for sketches and research links.

About

An interactive visualization of a computer's average load and CPU usage.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published