RRD Tool style statistics for Drupal/SQL (community analytics)

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
mikey_p's picture

Update, this is the proposal I submitted for http://groups.drupal.org/node/20271, the official submission is at http://socghop.appspot.com/student_proposal/show/google/gsoc2009/mikey_p...

Abstract: Create a community dashboard for any Drupal website. The dashboard will display the key performance indicators of your community: number of new members, number of active users, number of new posts, of new comments, etc. The design will be modular and allow plugins for data sources so that any module can publish statistical data.

Description: The main components of this module are:

  1. Data sources which are plugins or module that specify functions and meta information about the metric that they are reporting on. Each data source should contain it’s own code conforming to a standard interface for reporting it’s information.
  2. A statistical data store modeled on RRD, the Round Robin Database tool. (For more information see http://oss.oetiker.ch/rrdtool/tut/rrdtutorial.en.html). This will be configurable into multiple ‘databases’ (or bins/containers, whatever the appropriate term is) and store it’s data (including timestamp) in the Drupal SQL database. 
  3. A data extractor or scheduler that execute the data sources and store the data in the statistical data store. 
  4. A data display front end that is modular and allows for multiple ways of displaying data. This will also expose it’s data to Views 2 using the Views API, and provide compatibility with common graphing tools such as Google Charts, and FLOT. (http://drupal.org/project/views, http://code.google.com/apis/chart/,  http://code.google.com/p/flot/)
  5. The overall design will be modular in such a way that an API is provided that can be leveraged by other modules without using the user interface provided by this module.

Schedule:

Week 1-2: Gather possible data sources; design database schema; define interface for data sources, data extractor, data store; configuration of ‘databases’ (bins/containers) including UI. 

Week 3-5: Develop data store, and data extractor, along with a simple data source (perhaps a test/sample source).

Week 6-9: Develop data display front end and Views 2 support for RRD data. 

Week 10: Develop additional data sources.

Week 11: Write tests and documentation.

Mentors:

  • Damien Tournoud

Difficulty: Medium/hard

About me

Name: Michael D Prasuhn

My introduction to free/open software was with the Drupal project, beginning in 2006. I am enrolled at Mt. Hood Community College in Gresham, Oregon just outside Portland.

 

 

 

 

Comments

KPIs for blogs: Conversation rate and Raw Author Contribution

jmesam's picture

Hello,
could you add some KPIs for blog like Conversation rate and Raw Author Contribution?

See Avinash Kaushik post to know about them: (I can't link to the article, Drupal thinks it it spam) Look for "Blog Metrics: Six Recommendations For Measuring Your Success"

Good luck with this project.

Simliar...

raintonr's picture

Sorry, I commented on the proposal thread before: http://groups.drupal.org/node/20271#comment-74657

But yes, this sounds quiet useful. There is also discussion on this topic here: http://groups.drupal.org/node/21563

That's a pretty reasonable

mikey_p's picture

That's a pretty reasonable idea, integration with cacti, munin or whatever. While it's not part of my proposal, I could see this integrating well with the data source portion of my proposal. I do intend to keep this rather modular, and will keep this in mind when designing the data sources portion.

For a more detailed explanation: The RRD tool module for Drupal will have separate components, at least separated by different APIs if not in separate modules. Also, third party modules will be able to supply their own data sources as well. It is very reasonable that a module or script could be written that published these data sources via web services or via a shell script for integration with munin/cacti.

Web Service

raintonr's picture

To integrate with Cacti one would want to have stats found by accessing a path on the Drupal site to monitor. Definitely not via a shell script as that would limit monitoring to sites on the local box.

Glad you like the idea though. Think if this was done well it could be very useful for many admins :)