Incubating "Status Dashboard"

Mar 22, 2011 at 9:34 PM

I originally floated the idea of some sort of dashboard to visualise MonitorWang data, failures, stats, results etc. As a quick win I created the Geckoboard Data Service activity to allow you to easily connect your data to Geckoboard however I've now been energised to pick this feature up again and need help shaping this feature up.

My original idea as a starter for ten is this....

  • Silverlight as the UI/Shell
    • Web based, nice looking and easy to create powerful visualisations
    • Plugable widgets - allow anyone to easily create a new visualisation
  • Create an activity that hosts a webserver (using http://webserver.codeplex.com/) - this would serve up the silverlight host HTML page and the XAP file.
    • Not sure if this webserver could actually serve up the XAP file - don't see why not though

Other things to think about...

  • Security
  • HTML5....instead of Silverlight?
Mar 23, 2011 at 6:15 AM

Although Silverlight would give a really nice UI, HTML5 would make it easier to port to mobile devices.

Also, the data store should be pluggable.  There are currently publishers for SQL Server, SQLite, MongoDb, and possibly soon RavenDB.  The dashboard should be able to get its data from any of these.

Mar 23, 2011 at 8:27 AM

Absolutely - the data store/providers must pluggable.

I think HTML5 makes sense but as soon as I say it I just think that we're trying to reinvent Geckoboard - obviously the advantage being we can change/add features to that are important to us (security, hostable) but still its a significant investment in time to get even a basic dashboard up and running. 

However going down the HTML5 route leads us to the Google Chart API (http://code.google.com/apis/chart/) - this would really take the heavy lifting out of much of the dashboard (this is how Geckoboard works).... we would just need a "widget framework" and there must be hundreds of these out there? some research required I think!...

Mar 25, 2011 at 6:17 AM

Since I need something, I throwing something quick together just for myself for now.  We're using the EmailPublisher, GrowlPublisher, and the MongoPublisher.  Only one of those is a permanent data store.  So, I was thinking that the Sql Server, Oracle, SQLite, and MongoDB Publisher could implement an additional interface.  I called it IPublisherStore.  There is one method on it.

public IQueryable<AgentData> Query()
{
   // Provider specific linq here
}

This then allows a Controller or Service to call the publisher and build up a query.

I then created a MVC3 site that just queries for the most recent of each type of HealthCheck and gets the check, the result, and the GeneratedOnUtc.  I'm then going to have a simple dashboard display Red/Green icons for each check. This will be running on a 24" monitor in the middle of our team area.  It's not pretty so far, but it does work.

Long term, it might be worth checking out http://www.highcharts.com/ .  The js charts seem more "pretty" than Google's.  A dashboard should be visible, even to executives. And when executives see things, how it looks is important.

Apr 4, 2011 at 6:25 PM
Edited Apr 4, 2011 at 6:26 PM

First, Let me say that the gecko board has been very nice and has provide visibilty to the rest of our company at some level. 

My situation might be a little different than others.  I am planning on deploying monitorwang along with out win32 service based on .net 4.0 & mongodb which is deployed geographically across the US (8 states).  I am planning to use it collect local statistics about the speed, latency, errors in log & eventlog, to a central monitorwang instance.  I am planning on levering the site tag to be able to segregate data between the sites.

For me a dashboard, just needs to be at the central spot.  I am trying remove any reason to actually log into the remote sites.

 

I do like the ideal of html5 instead of silverlight.  We use iphones for support and it is very nice to pull it up and know that everything is ok.

Apr 4, 2011 at 6:35 PM

I have the basics of a dashboard (all html) started, but it's specific to my organization at the moment.  I need to clean it up a bit before releasing it.  I'll most likely get to it the week of April 11 (I'm on vacation this week...sorry)

Apr 4, 2011 at 6:59 PM

I had nowhere else to put them, so I uploaded two "patches" that are screenshots of my current dashboard.