Tuesday 15 December 2009

System usage monitoring with Django

I haven't blogged about Django in a long while - partly because I've been too busy doing other things, such as using it to create a real web application (as opposed to the personal web apps and teaching apps that I'd previously written).

The real web application in question is a system to analyse usage of a commercial virtual learning environment (VLE) deployed at a higher education institution.  This VLE is large and heavily used, as the following stats from the 2008-9 academic year indicate:

  30,000+ users
  258 million hits against web server
  1.9 million logins from students
  Average of 6,200 logins per day, (peaking at 20,000)

Our system is able to determine the type of student that has logged into the VLE.  It also uses built-in knowledge of the local network plus GeoIP data to identify where logins are coming from.  Information on the time and location of login and type of student are stored in a database, and Django is used to provide a web-based interface to this database.  The results of queries are presented to the user in various forms - typically as tabular data (paginated if necessary) plus a chart of some sort if appropriate.  We use matplotlib to generate pie charts, bar charts and time series charts, plus the Google Chart API to produce maps showing the countries from which students are accessing the VLE when they are away from university.

In future blog posts, I'll go into more detail about how it all works...

No comments:

Post a Comment