Robot status page

Check out the robot's latest metrics from Salvius on the status page.

After creating the status page, I wanted to write a little bit about the technologies that went into creating it. The status page has been on my to-do list for a while now. I had originally considered having it be hosted on the robot's server, however the issue with doing that is if the server crashes, there is no way to access the status page. By having the status page be a simple static webpage which pulls from a variety of data sources, it makes it nearly impervious to complete failure. Even if the GitHub pages on which it is currently hosted were to become unavailable, the status page could be opened locally in a browser.

Many websites that provide online services provide useful status pages to display information about the sites performance and any potential service outages or problems. The idea for this page was to create a decentralized location to view statistics and data published by the robot. A few examples of status pages provided by different online services are from sites such as GitHub (status.github.com), Disqus (status.disqus.com) and Travis CI (status.travis-ci.com).

Salvius has a number of hardware items that report their status to various online sources. Out of an interest to see all of these metrics in one convenient location I created my own status page http://gunthercox.github.io/salvius.status/ which graphs data published by the robot.

The page is 100% responsive thanks to Bootstrap and Chart.js. Chart.js is a HTML5 canvas graphing library which has awesome support for different kinds of graphs. Although I only use the line graph, Chart.js supports a total of six different graph types to choose from.

The robot's status page pulls from a variety of data sources including Travis.CI, Sparkfun's data service, and Twitter. Travis.CI provides code testing services which are run each time a change is made to the robot's source code.
I was very interested to try out Sparkfun's data service which uses an application called Phant to host streams of various data submitted by a variety of networked electronic devices. Sparkfun is currently hosting data streams from sources such as homemade weather stations, GPS logging robots and more. The data service is meant to expose the reality of the Internet of Things. The Internet of Things is a term that came into recent popularity which describes the fact that there is more electronic devices connected to the internet then there is humans on the planet Earth. This has been true since 2008 when the number of devices connected to the internet reached 12 billion with the world population only at 6.7 billion. There is no end in sight to the ever increasing usefulness of interconnected technologies.

I'm planning to add graphs and metrics to this page as Salvius evolves and more sources of data become available. Idea submissions for graphs are welcome. Issue tracker: https://github.com/gunthercox/salvius.status/issues.

Update: I switched from Chart.js to chartist.js (see http://gionkunz.github.io/chartist-js/ for details). My main reason for switching was that chartist provides support for different aspect ratios which is useful when placing charts within responsive webpages. The second reason is that chartist also uses svg elements which has better browser support, and allows css animations to be applied to the graphs.

No comments:

Post a Comment