diff options
author | ceibal <ceibal@ceibal.ceibal.uy> | 2013-02-14 21:37:32 (GMT) |
---|---|---|
committer | ceibal <ceibal@ceibal.ceibal.uy> | 2013-02-14 21:37:32 (GMT) |
commit | 020d0e6f8550092c5d462b2dc0df61ee5509f177 (patch) | |
tree | 5f1a5453ebda598fae177833946d4ffbe785da8f | |
parent | fab4c99ea1bfa49105c3b2898162ede057aa2a0d (diff) |
Fixes:
Improves:
+ Add sql script to get reports
-rwxr-xr-x | sql/make_report | 23 | ||||
-rwxr-xr-x | sql/rep_activity_most_used.sh (copied from sql/report.sh) | 12 | ||||
-rwxr-xr-x | sql/rep_activity_time.sh (copied from sql/report.sh) | 15 | ||||
-rwxr-xr-x | sql/rep_frequency_usage.sh (renamed from sql/report.sh) | 11 | ||||
-rw-r--r-- | sql/report.pyc | bin | 1998 -> 0 bytes | |||
-rw-r--r-- | sugar_stats_consolidation/consolidation.py | 1 | ||||
-rw-r--r-- | sugar_stats_consolidation/db.py | 58 |
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 Binary files differdeleted file mode 100644 index 881fad7..0000000 --- a/sql/report.pyc +++ /dev/null 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") |