def get_operation_nginx(date): date_str = get_date_str(date) table_name = get_table_name("DolphinOPService_nginx", date) data_sql_str = "select locale from %s where api_name='/api/2/provision.json'" % table_name datas = _db_conn.query_sql(data_sql_str) items = json.loads(datas[0][0]) data_list = [] for item in items: data_dict = {} count = items[item].get("count") srv_err_count = items[item].get("srv_err_count") ill_count = items[item].get("ill_count") bad_count = items[item].get("bad_count") data_dict["country"] = item data_dict["count"] = count data_dict["srv_err_count"] = srv_err_count data_dict["cli_err_count"] = items[item].get("cli_err_count") data_dict["good_count"] = items[item].get("good_count") data_dict["ill_count"] = ill_count data_dict["bad_count"] = bad_count data_dict["avr_time"] = round((float(items[item].get("total_time")) / count), 3) data_dict["max_time"] = items[item].get("max_time") data_dict["total_time"] = items[item].get("total_time") data_dict["nginx_avr_time"] = round((float(items[item].get("nginx_total_time", 0)) / count), 3) data_dict["health_degree"] = round( ((count - srv_err_count * 1 - bad_count * 0.8 - ill_count * 0.2) / count * 100), 3 ) data_list.append(data_dict) data_list = sorted(data_list, key=lambda x: x["avr_time"], reverse=True) return data_list
def get_pushserver_cometd(date): date_str = get_date_str(date) table_name = get_table_name('DolphinPushServer_core_cometd', date) sql_str = "select api_name, count, good_count, ok_count, ill_count, sick_count, bad_count,\ longest_exec_time, avr_exec_time from %s order by api_name" % table_name datas = _db_conn.query_sql(sql_str) return datas
def get_new_user_id_by_day(self, date, exist_tables): new_id_map = {'google': 0, 'facebook': 0, 'dolphin': 0, 'total': 0} date_str = get_date_str(date) table_name = get_table_name('DolphinID_new', date) if table_name in exist_tables: select_str = 'select user_id,login_type from %s' % table_name datas = self._mysql_conn.query_sql(select_str) else: datas = None logger.info("the table %s do not exist" % table_name) if datas: for item in datas: if item[1] == 11: new_id_map['facebook'] += 1 elif item[1] == 10: new_id_map['google'] += 1 elif item[1] == 0: new_id_map['dolphin'] += 1 else: print "not found the info %s" % item[1] logger.info("not found the info %s" % item[1]) new_id_map['total'] = len(datas) else: new_id_map = {'google': 0, 'facebook': 0, 'dolphin': 0, 'total': 0} return new_id_map
def get_sync_site_statistics(self, date): exist_tables = self.get_exist_tables() table_name = get_table_name('Site_Statistics_', date) if table_name in exist_tables: select_str = 'select site_url,count from %s where api_type=1' % table_name datas = self._mysql_conn.query_sql(select_str) return datas else: logger.info("the table %s do not exist" % table_name) datas = [["no data", 0]] return datas
def get_uwsgi_hariki(date): date_str = get_date_str(date) table_name = get_table_name('Uwsgi_hariki', date) data_sql_str = "select api_name, hariki_time from %s order by hariki_time, api_name" % table_name count_sql_str = "select count(*) from %s" % table_name datas = _db_conn.query_sql(data_sql_str) count = _db_conn.query_sql(count_sql_str) data_map = {} for name, time in datas: time_list = re.split('[: ]', time) if time_list[2]: hour = time_list[3] else: hour = time_list[4] if data_map.has_key(hour): if data_map[hour].has_key(name): data_map[hour][name] += 1 else: data_map[hour][name] = 1 else: data_map[hour] = {} data_map[hour][name] = 1 return data_map, count[0][0]
def get_provision_missmatch(date): date_str = get_date_str(date) table_name = get_table_name('Provision_locale', date) data_sql_str = "select country,count,miss_match from %s order by (miss_match/count) desc" % table_name datas = _db_conn.query_sql(data_sql_str) return datas
def get_sync_count_by_day(date): global result_map day_result = {"total_user": 0, "bookmark": {"total": 0, "avg": 0.0, "median": 0}, "history": {"total": 0, "avg": 0.0, "median": 0}, "tab": {"total": 0, "avg": 0.0, "median": 0}, "desktop": {"total": 0, "avg": 0.0, "user": 0, "median": 0}} table_name = get_table_name("DolphinPushServer_core_push_sync", date) query_str = 'select push_type,count(distinct user_id),sum(times) from %s group by push_type' % table_name query_total_user = '******' % table_name query_total_count = 'select count(*) from %s group by push_type order by push_type' % table_name if _sync_db_conn: query_result = _sync_db_conn.query_sql(query_str) total_count = _sync_db_conn.query_sql(query_total_count) if query_result: for item in query_result: if item[0] == 1: day_result["bookmark"]["total"] = item[2] day_result["bookmark"]["avg"] = round( float(item[2]) / item[1], 3) mid_count = int(total_count[0][0] - 1) / 2 query_median = 'select times from %s where push_type=1 order by times limit %d,1' % ( table_name, mid_count) median = _sync_db_conn.query_sql(query_median) day_result["bookmark"]["median"] = int(median[0][0]) elif item[0] == 2: day_result["tab"]["total"] = item[2] day_result["tab"]["avg"] = round( float(item[2]) / item[1], 3) mid_count = int(total_count[1][0] - 1) / 2 query_median = 'select times from %s where push_type=2 order by times limit %d,1' % ( table_name, mid_count) median = _sync_db_conn.query_sql(query_median) day_result["tab"]["median"] = int(median[0][0]) elif item[0] == 4: day_result["history"]["total"] = item[2] day_result["history"]["avg"] = round( float(item[2]) / item[1], 3) mid_count = int(total_count[2][0] - 1) / 2 query_median = 'select times from %s where push_type=4 order by times limit %d,1' % ( table_name, mid_count) median = _sync_db_conn.query_sql(query_median) day_result["history"]["median"] = int(median[0][0]) elif item[0] == 64 or item[0] == 128: day_result["desktop"]["total"] += item[2] day_result["desktop"]["user"] += item[1] mid_count = int( total_count[3][0] + total_count[4][0] - 1) / 2 query_median = 'select times from %s where push_type=64 or push_type=128 order by times limit %d,1' % ( table_name, mid_count) median = _sync_db_conn.query_sql(query_median) day_result["desktop"]["median"] = int(median[0][0]) if day_result["desktop"]["user"] != 0: day_result["desktop"]["avg"] = round( float(day_result["desktop"]["total"]) / day_result["desktop"]["user"], 3) query_result = _sync_db_conn.query_sql(query_total_user) if query_result: day_result['total_user'] = query_result[0][0] # print day_result date_str = get_date_str(date) result_map[date_str] = day_result return day_result