Monitoring System

Created on Dec. 13, 2012, 11:19 p.m. by Hevok & updated by Hevok on May 2, 2013, 5:02 p.m.

In order to give the user an up-to-date overview of the changes it is considered to gather some data from a set of nodes (< 1000). Gathered data should be stored in order to let users perform some queries and generate graphs. Suitable components would be for instance:

  1. Storage: perhaps NonSQL like MongoDB or RRD
  2. Data gathering: maybe celery periodic task
  3. Graphs: eventually rrd or js frameworks

This might be an excellent opportunity to learn about some techniques like NoSQL and Celery. For instance Couchdb appears to be more appropriate option than a RDBMS (like Postgres) for storing time-series data in django. However, unless the potential bandwidth is not extraordinary, the quest may be solved with a more pedestrian approach. Particularly, for this purpose a relational database like PostgreSQL would be sufficient and a cron triggered django management command gathers the data and stuffs it into the models.

Graphing can be achieved with the use of YUI (yahoo; requires Flash) tools or there likes (js frameworks; flot, jqplot or rapheal.js). Although Flash is very common, it is preferred to use HTML5 or SVG (still a few individuals have browsers that do not support this.). From modern frameworks it can be expected that they detect the browser’s capabilities and respond accordingly. The YUI can be driven by a table of data in the DOM which is an approach that allows to support decision to be deferred to the browser site. Depending on the load and update rate, png or jpg files could be generated in the view that IMG tags in the HTML refer to, which works even if the user has JavaScript disabled, but loads the server a bit. It is recommend to encode a timestamp or generation sequence into the generated image path name, in such that it does need to be worried about caching, including in the browser, keeping it from showing a fresh image when the user refreshes the page.

Monitor-System.jpg

Tags: development, programming, design
Categories: Quest
Parent: Quests

Update entry (Admin) | See changes

Comment on This Data Unit