Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorceibal <ceibal@ceibal.ceibal.uy>2013-02-14 21:37:32 (GMT)
committer ceibal <ceibal@ceibal.ceibal.uy>2013-02-14 21:37:32 (GMT)
commit020d0e6f8550092c5d462b2dc0df61ee5509f177 (patch)
tree5f1a5453ebda598fae177833946d4ffbe785da8f
parentfab4c99ea1bfa49105c3b2898162ede057aa2a0d (diff)
Fixes:
Improves: + Add sql script to get reports
-rwxr-xr-xsql/make_report23
-rwxr-xr-xsql/rep_activity_most_used.sh (copied from sql/report.sh)12
-rwxr-xr-xsql/rep_activity_time.sh (copied from sql/report.sh)15
-rwxr-xr-xsql/rep_frequency_usage.sh (renamed from sql/report.sh)11
-rw-r--r--sql/report.pycbin1998 -> 0 bytes
-rw-r--r--sugar_stats_consolidation/consolidation.py1
-rw-r--r--sugar_stats_consolidation/db.py58
7 files changed, 88 insertions, 32 deletions
diff --git a/sql/make_report b/sql/make_report
index f09b40b..81db04b 100755
--- a/sql/make_report
+++ b/sql/make_report
@@ -28,6 +28,7 @@ parser.add_argument('--end_date',required=True)
parser.add_argument('--db_name',required=True)
parser.add_argument('--db_user',required=True)
parser.add_argument('--db_pass',required=True)
+parser.add_argument('--activity',required=False)
args = parser.parse_args()
@@ -46,7 +47,7 @@ log.addHandler(ch)
logging.getLogger('sugar_stats_consolidation.db').addHandler(ch)
def activity_most_used(re, start, end):
- activity = re.most_activity_used(start, end);
+ activity = re.rep_most_activity_used(start, end);
log.debug("**************************************************************************************************************")
log.debug(" Most Activity used ")
log.debug('NAME: %s', activity[0])
@@ -58,7 +59,7 @@ def frequency_usage(re, start, end):
ts_end = long (datetime.strptime(end, "%Y-%m-%d").strftime("%s"))
ts_start = long (datetime.strptime(start, "%Y-%m-%d").strftime("%s"))
- fres = re.frequency_usage(start, end);
+ fres = re.rep_frequency_usage(start, end);
f_x_day = (fres / ((ts_end - ts_start)/(60*60*24)))/60
f_total = (fres / 60)
log.debug("**************************************************************************************************************")
@@ -68,19 +69,35 @@ def frequency_usage(re, start, end):
log.debug('TOTAL: %.2f min', (f_total))
log.debug("**************************************************************************************************************")
+def activity_time (re, start, end, activity):
+ ts_end = long (datetime.strptime(end, "%Y-%m-%d").strftime("%s"))
+ ts_start = long (datetime.strptime(start, "%Y-%m-%d").strftime("%s"))
+
+ time = re.rep_activity_time (start, end, activity);
+ log.debug("**************************************************************************************************************")
+ log.debug(" Activity Time ")
+ log.debug('NAME: %s', activity)
+ log.debug('INTERVAL: %s-> %s', start, end)
+ log.debug('UPTIME: %s secs', time[0])
+ log.debug('FOCUS %s secs', time[1])
+ log.debug("**************************************************************************************************************")
+
def main():
re = DB_Stats (args.db_name, args.db_user, args.db_pass)
re.connect()
- if args.query == 'activity_most_used':
+ if args.query == 'activity_time':
+ activity_time(re, args.start_date, args.end_date, args.activity)
+ elif args.query == 'activity_most_used':
activity_most_used(re, args.start_date, args.end_date);
elif args.query == 'frequency_usage':
frequency_usage(re, args.start_date, args.end_date)
elif args.query == 'all':
activity_most_used(re, args.start_date, args.end_date);
frequency_usage(re, args.start_date, args.end_date)
+ activity_time(re, args.start_date, args.end_date, args.activity)
else:
log.error("Query option unkwon: %s", args.query)
diff --git a/sql/report.sh b/sql/rep_activity_most_used.sh
index f14aea3..aa0a2aa 100755
--- a/sql/report.sh
+++ b/sql/rep_activity_most_used.sh
@@ -1,12 +1,14 @@
#!/bin/bash
-#QUERY=activity_most_used
-#QUERY=frequency_usage
-QUERY=all
-START_DATE=2013-02-10
-END_DATE=2013-02-14
DB_NAME=statistics
DB_USER=root
DB_PASS=gustavo
+QUERY=activity_most_used
+
+START_DATE=2013-02-10
+END_DATE=2013-02-14
+
+
+
./make_report --query $QUERY --start_date $START_DATE --end_date $END_DATE --db_name $DB_NAME --db_user $DB_USER --db_pass $DB_PASS
diff --git a/sql/report.sh b/sql/rep_activity_time.sh
index f14aea3..38b703c 100755
--- a/sql/report.sh
+++ b/sql/rep_activity_time.sh
@@ -1,12 +1,15 @@
#!/bin/bash
-#QUERY=activity_most_used
-#QUERY=frequency_usage
-QUERY=all
-START_DATE=2013-02-10
-END_DATE=2013-02-14
DB_NAME=statistics
DB_USER=root
DB_PASS=gustavo
-./make_report --query $QUERY --start_date $START_DATE --end_date $END_DATE --db_name $DB_NAME --db_user $DB_USER --db_pass $DB_PASS
+QUERY=activity_time
+
+START_DATE=2013-02-10
+END_DATE=2013-02-14
+
+ACTIVITY=activity.org.laptop.AbiWordActivity
+
+
+./make_report --query $QUERY --start_date $START_DATE --end_date $END_DATE --db_name $DB_NAME --db_user $DB_USER --db_pass $DB_PASS --activity $ACTIVITY
diff --git a/sql/report.sh b/sql/rep_frequency_usage.sh
index f14aea3..3f3fe93 100755
--- a/sql/report.sh
+++ b/sql/rep_frequency_usage.sh
@@ -1,12 +1,13 @@
#!/bin/bash
-#QUERY=activity_most_used
-#QUERY=frequency_usage
-QUERY=all
-START_DATE=2013-02-10
-END_DATE=2013-02-14
DB_NAME=statistics
DB_USER=root
DB_PASS=gustavo
+QUERY=frequency_usage
+
+START_DATE=2013-02-10
+END_DATE=2013-02-14
+
+
./make_report --query $QUERY --start_date $START_DATE --end_date $END_DATE --db_name $DB_NAME --db_user $DB_USER --db_pass $DB_PASS
diff --git a/sql/report.pyc b/sql/report.pyc
deleted file mode 100644
index 881fad7..0000000
--- a/sql/report.pyc
+++ /dev/null
Binary files differ
diff --git a/sugar_stats_consolidation/consolidation.py b/sugar_stats_consolidation/consolidation.py
index 8214d9b..8c0912e 100644
--- a/sugar_stats_consolidation/consolidation.py
+++ b/sugar_stats_consolidation/consolidation.py
@@ -37,6 +37,7 @@ class Consolidation:
try:
rrd_obj = RRD (path=rrd_path, name=rrd, date_start=self.date_start, date_end=None)
self.db.store_activity_uptime(rrd_obj)
+ self.db.store_activity_focus_time(rrd_obj)
except Exception as e:
log.warning('Exception on RRD object instance: \'%s\'', e)
else:
diff --git a/sugar_stats_consolidation/db.py b/sugar_stats_consolidation/db.py
index d387ed7..e1f4cd6 100644
--- a/sugar_stats_consolidation/db.py
+++ b/sugar_stats_consolidation/db.py
@@ -99,8 +99,15 @@ class DB_Stats:
self.cnx.close()
+ def store_activity_uptime (self, rrd):
+ self.store_activity_time (rrd, 'uptime')
- def store_activity_uptime(self, rrd):
+ def store_activity_focus_time (self, rrd):
+ self.store_activity_time(rrd, 'active')
+
+
+
+ def store_activity_time(self, rrd, data_type):
self.store_resource(rrd.get_name())
self.store_user(rrd)
@@ -124,26 +131,26 @@ class DB_Stats:
"data) "
"VALUES (%s, %s, %s, %s ,%s) ")
- for d in rrd.get_uptime_by_interval():
- info_sel = (rrd.get_user_hash(), rrd.get_name() , datetime.fromtimestamp(float(d[0])), 'uptime')
+ for d in rrd.get_last_value_by_interval(data_type):
+ info_sel = (rrd.get_user_hash(), rrd.get_name() , datetime.fromtimestamp(float(d[0])), data_type)
try:
"""Verify if this activity has an entry already at the same start_date"""
cursor.execute (select, info_sel)
result = cursor.fetchone()
if result != None:
- log.info('Update uptime \'%s\' entry for resource \'%s\' ', d[1], rrd.get_name())
- info_up = (d[1], rrd.get_user_hash(), rrd.get_name() , datetime.fromtimestamp(float(d[0])), 'uptime')
+ log.info('Update %s \'%s\' entry for resource \'%s\' ', data_type, d[1], rrd.get_name())
+ info_up = (d[1], rrd.get_user_hash(), rrd.get_name() , datetime.fromtimestamp(float(d[0])), data_type)
cursor.execute(update, info_up)
else:
- log.info('New uptime \'%s\' entry for resource \'%s\'', d[1], rrd.get_name())
- info_ins = (rrd.get_user_hash(), rrd.get_name() , datetime.fromtimestamp(float(d[0])), 'uptime', d[1])
+ log.info('New %s \'%s\' entry for resource \'%s\'', data_type, d[1], rrd.get_name())
+ info_ins = (rrd.get_user_hash(), rrd.get_name() , datetime.fromtimestamp(float(d[0])), data_type, d[1])
cursor.execute(insert, info_ins)
self.cnx.commit()
except mysql.connector.Error as err:
- log.error('MySQL on store_activiy_uptime: %s %s', cursor.statement, err)
+ log.error('MySQL on store_activiy_time()%s: %s %s', data_type, cursor.statement, err)
cursor.close()
@@ -239,7 +246,31 @@ class DB_Stats:
except mysql.connector.Error as err:
log.error('MySQL Connect fail', err)
- def most_activity_used (self, start, end):
+ def rep_activity_time (self, start, end, activity):
+ uptime_last=0
+ activity_name=''
+ try:
+ ts_start = datetime.strptime(start, "%Y-%m-%d")
+ ts_end = datetime.strptime(end, "%Y-%m-%d")
+
+ cursor = self.cnx.cursor()
+ cursor.execute("SELECT SUM(data) FROM Usages WHERE resource_name = %s AND data_type = %s", (activity,'uptime'))
+ log.debug('Getting uptime of (%s) from: %s -> %s', activity, start, end)
+ uptime = cursor.fetchone()
+
+ cursor.execute("SELECT SUM(data) FROM Usages WHERE resource_name = %s AND data_type = %s", (activity,'active'))
+ log.debug('Getting active of (%s) from: %s -> %s', activity, start, end)
+ active = cursor.fetchone()
+
+ cursor.close()
+ return (uptime[0], active[0])
+ except mysql.connector.Error as err:
+ log.error('MySQL on rep_activity_time %s', err)
+ except Exception as e:
+ log.error('MySQL on rep_activity_time : %s', e)
+ return (None, None)
+
+ def rep_most_activity_used (self, start, end):
uptime_last=0
activity_name=''
try:
@@ -255,14 +286,15 @@ class DB_Stats:
log.debug('Activity found: %s', name[0])
if (name[0] != 'system') and (name[0] != 'journal') and (name[0] != 'network') and (name[0] != 'shell'):
cursor2.execute (
- "SELECT SUM(data) FROM Usages WHERE (resource_name = %s) AND (start_date > %s) AND (start_date < %s)",
- (name[0],ts_start, ts_end))
+ "SELECT SUM(data) FROM Usages WHERE (resource_name = %s) AND "
+ "(start_date > %s) AND (start_date < %s) "
+ "AND (data_type = 'active')", (name[0],ts_start, ts_end))
uptime = cursor2.fetchone()
if uptime[0] > uptime_last:
uptime_last= uptime[0]
activity_name = name[0]
except mysql.connector.Error as err:
- log.error('MySQL on most_activity_used', err)
+ log.error('MySQL on most_activity_used %s', err)
except Exception as e:
log.error('most_activity_used Fail: %s', e)
@@ -270,7 +302,7 @@ class DB_Stats:
cursor2.close()
return (activity_name, uptime_last)
- def frequency_usage(self, start, end):
+ def rep_frequency_usage(self, start, end):
cursor = self.cnx.cursor()
try:
ts_start = datetime.strptime(start, "%Y-%m-%d")