[Mailman-Developers] [GSoC 2012] Metrics
George Chatzisofroniou
sophron at latthi.com
Tue Jun 5 23:59:56 CEST 2012
Hi,
Here's my report. As always, you can also read it in my blog [1].
--
The coding period has started. I’ve already learned a lot of stuff!
Although, I intended to have more work done by now. That’s why i’m
going to speed up in the following days.
Here’s what i’ve done so far:
- I documented the components of the app. I’ve documented storage of
counts, parsing of custom tags and generation of HTML output, basic
interfacing with mailman, coalescor (a daemon that cleans up the
database) and generator (that generates the metrics from scratch).
- I coded the most of my models using polymorphism solutions.
- I’ve described the syntax of my custom tags. The syntax is defined
by the BNF Language description below:
<graph_tag> ::= ‘{%’ ‘GRAPH’ ‘%}’ <on_the_y_axis> <on_the_x_axis>
<where_clause_or_default> ‘{%’ ‘ENDGRAPH’ ‘%}’
<tabulate_tag> := ‘{%’ ‘TABULATE’ ‘%}’ <on_the_y_axis> <on_the_x_axis>
<where_clause_or_default> ‘{%’ ‘ENDTABULATE’ ‘%}’
<on_the_y_axis> ::= <attribute>
| <on_the_y_axis> ‘, ‘ <attribute>
<attribute> ::= <metric_clause>
| <metric_clause> ‘BY’ <property>
<metric_clause> ::= <aggregation_interval> <event_counters>
| <measured_level>
<aggregation_interval> ::= ‘DAILY’
| ‘MONTHLY’
| ‘ANNUAL’
| (* Omitted. Default value: DAILY *)
<event_counters> ::= ‘posts’ (* The number of total posts *)
| ‘threads’ (* The number of total threads started *)
<measured_level> ::= ‘subscribers’ (* The number of total subscribers *)
<on_the_x_axis> ::= ‘FOR’ <time_period>
| ‘FROM’ <start_date> ‘TO’ <end_date>
| ‘SINCE’ <start_date>
<time_period> ::= ‘LAST MONTH’
| ‘LAST DAY’
| ‘YESTERDAY’
| ‘TODAY’
| ‘THIS MONTH’
| ‘THIS YEAR’
| <number> DAYS
| <number> MONTHS
| <number> YEARS
<start_date> ::= ‘YESTERDAY’
| ‘START OF THE MONTH’
| ‘START OF THE YEAR’
| <date>
<end_date> ::= ‘TODAY’
| ‘NOW’
<date> ::= YYYY-MM-DD (* International format defined by ISO (ISO 8601) *)
<where_clause_or_default> ::= <where_clause>
| (* Omitted. Default value: Ommited *)
<where_clause> ::= ‘WHERE’ <constraint>
| <where_clause> ‘AND’ <constraint>
<constraint> ::= <property> ‘STARTSWITH’ <prefix>
| <property> ‘IS’ <value>
| <property> ‘ENDSIN’ <suffix>
<prefix> ::= <literal_string>
<suffix> ::= <literal_string>
--
[1]: http://sophron.latthi.com/gsoc-mailman/
--
George Chatzisofroniou
sophron.latthi.com
More information about the Mailman-Developers
mailing list