Project:LHS Graphs and Visualizations: Difference between revisions

From London Hackspace Wiki
Line 45: Line 45:


====Mailing list activity====
====Mailing list activity====
* There is no API for Google Groups. Instead we could set up a Google Groups member account for this purpose and then periodically check the inbox for activity?
* There is no API for Google Groups. Perhaps poll the RSS feed and count unrecognized message ids or look at the date?
 
  https://groups.google.com/group/london-hack-space/feed/rss_v2_0_msgs.xml?num=50


* We can also calculate the size of the list from the [http://groups.google.com/support/bin/answer.py?hl=en&answer=46398 mailing list download]
* We can also calculate the size of the list from the [http://groups.google.com/support/bin/answer.py?hl=en&answer=46398 mailing list download]

Revision as of 18:54, 13 December 2010

LHS Graphs and Visualizations


Members Elliot
QR code

Overview

I'd like to supplement the Cacti graphs that we have for LHS bandwidth and power with metrics that provide insight to the growth of our community and organisation over time.


Initially I'd like to chart the following:

  • Number of members
  • Mailing list activity
  • Wiki activity
  • Website visitors and/or page impressions


Later I'd like to investigate:

  • Space occupancy

Phase 1

To chart the initial metrics various bits of data will need to be exposed in a Cacti friendly way. I need help in getting access to these data sources so that I can write the various data input methods.

Number of members

This data is stored in a database on Turing. See the Schema. It can be queried like so:

 SELECT COUNT(id)
 FROM users
 WHERE subscribed = true;

And for pending users:

 SELECT COUNT(id)
 FROM users
 WHERE subscribed = false;

To import historic data into rrdtool we can look at the date of members first payments:

 SELECT t1.timestamp, COUNT(t1.id) 
 FROM transactions t1
 LEFT JOIN transactions AS t2 ON t1.user_id = t2.user_id
 AND t1.timestamp > t2.timestamp
 WHERE t2.timestamp IS NULL
 GROUP BY t1.timestamp;

We just need to write a script to make these values available to cacti.

Mailing list activity

  • There is no API for Google Groups. Perhaps poll the RSS feed and count unrecognized message ids or look at the date?
 https://groups.google.com/group/london-hack-space/feed/rss_v2_0_msgs.xml?num=50

Wiki statistics

  • We can get this using the MediaWiki API:
 http://wiki.hackspace.org.uk/w/api.php?action=query&meta=siteinfo&siprop=statistics&format=xml

Returns:

 <?xml version="1.0"?>
 <api>
   <query>
     <statistics
       pages="759"
       articles="215"
       views="229656"
       edits="7368"
       images="186"
       users="166"
       activeusers="22"
       admins="61"
       jobs="13"
     />
   </query>
 </api>

Website visitors and/or page impressions

The main site and the Wiki use Google Analytics and this has an API. This documented method looks promising:

 https://www.google.com/analytics/feeds/data?metrics=ga%3Avisits%2Cga%3Apageviews&start-date=2010-11-29&end-date=2010-12-13&max-results=50

Phase 2

Space occupancy

  • We could use a directional IR occupancy counter. I think that we already have something like this in the LHS stores.