Fixed some issues

This commit is contained in:
MauricioGarciaS 2023-01-16 11:31:47 +01:00
parent 2f6610ab3f
commit 5e8a7c3a36

View file

@ -134,25 +134,32 @@ def query_requests_by_period(project_id, start_time, end_time, conn=None):
source_idx = columns.index('source')
duration_idx = columns.index('avg_duration')
success_idx = columns.index('success_rate')
delta_duration = dict()
delta_success = dict()
# success_idx = columns.index('success_rate')
# delta_duration = dict()
# delta_success = dict()
new_duration_values = dict()
duration_values = dict()
for n in common_names:
d1_tmp = _table_where(table_hh1, source_idx, n)
d2_tmp = _table_where(table_hh2, source_idx, n)
_duration1 = _mean_table_index(d2_tmp, duration_idx)
if _duration1 == 0:
old_duration = _mean_table_index(d2_tmp, duration_idx)
new_duration = _mean_table_index(d1_tmp, duration_idx)
if old_duration == 0:
continue
delta_duration[n] = (_mean_table_index(d1_tmp, duration_idx) - _duration1) / _duration1
delta_success[n] = _mean_table_index(d1_tmp, success_idx) - _mean_table_index(d2_tmp, success_idx)
duration_values[n] = new_duration, old_duration, (new_duration-old_duration)/old_duration
# delta_duration[n] = (_mean_table_index(d1_tmp, duration_idx) - _duration1) / _duration1
# delta_success[n] = _mean_table_index(d1_tmp, success_idx) - _mean_table_index(d2_tmp, success_idx)
for n in new_hosts:
d1_tmp = _table_where(table_hh1, source_idx, n)
new_duration_values[n] = _mean_table_index(d1_tmp, duration_idx)
#names_idx = columns.index('names')
#names_idx = columns.index('names')
total = _sum_table_index(table_hh1, duration_idx)
d1_tmp = _sort_table_index(table_hh1, duration_idx, reverse=True)
_tmp = _table_slice(d1_tmp, duration_idx)
_tmp2 = _table_slice(d1_tmp, source_idx)
increase = sorted(delta_duration.items(), key=lambda k: k[1], reverse=True)
increase = sorted(duration_values.items(), key=lambda k: k[1][-1], reverse=True)
ratio = sorted(zip(_tmp2, _tmp), key=lambda k: k[1], reverse=True)
# names_ = set([k[0] for k in increase[:3]+ratio[:3]]+new_hosts[:3])
names_ = set([k[0] for k in increase[:3] + ratio[:3]]) # we took out new hosts since they dont give much info
@ -164,12 +171,15 @@ def query_requests_by_period(project_id, start_time, end_time, conn=None):
data_ = {'category': 'network', 'name': n, 'value': None, 'oldValue': None, 'ratio': None, 'change': None, 'isNew': True}
for n_, v in ratio:
if n == n_:
data_['value'] = v
if n in new_hosts:
data_['value'] = new_duration_values[n]
data_['ratio'] = v/total
break
for n_, v in increase:
if n == n_:
data_['change'] = v
data_['value'] = v[0]
data_['oldValue'] = v[1]
data_['change'] = v[2]
data_['isNew'] = False
break
results.append(data_)
@ -206,7 +216,6 @@ def query_most_errors_by_period(project_id, start_time, end_time, conn=None):
table_hh1, table_hh2, columns, this_period_errors, last_period_errors = __get_two_values(res, time_index='hh',
name_index='names')
print(f'res {res}')
del res
new_errors = [x for x in this_period_errors if x not in last_period_errors]
@ -216,16 +225,21 @@ def query_most_errors_by_period(project_id, start_time, end_time, conn=None):
names_idx = columns.index('names')
percentage_errors = dict()
total = _sum_table_index(table_hh1, sessions_idx)
error_increase = dict()
# error_increase = dict()
new_error_values = dict()
error_values = dict()
for n in this_period_errors:
percentage_errors[n] = _sum_table_index(_table_where(table_hh1, names_idx, n), sessions_idx)
new_error_values[n] = _sum_table_index(_table_where(table_hh1, names_idx, n), names_idx)
for n in common_errors:
errors_ = _sum_table_index(_table_where(table_hh2, names_idx, n), names_idx)
if errors_ == 0:
old_errors = _sum_table_index(_table_where(table_hh2, names_idx, n), names_idx)
if old_errors == 0:
continue
error_increase[n] = (_sum_table_index(_table_where(table_hh1, names_idx, n), names_idx) - errors_) / errors_
new_errors = _sum_table_index(_table_where(table_hh1, names_idx, n), names_idx)
# error_increase[n] = (new_errors - old_errors) / old_errors
error_values[n] = new_errors, old_errors, (new_errors - old_errors) / old_errors
ratio = sorted(percentage_errors.items(), key=lambda k: k[1], reverse=True)
increase = sorted(error_increase.items(), key=lambda k: k[1], reverse=True)
increase = sorted(error_values.items(), key=lambda k: k[1][-1], reverse=True)
names_ = set([k[0] for k in increase[:3] + ratio[:3]] + new_errors[:3])
results = list()
@ -235,12 +249,15 @@ def query_most_errors_by_period(project_id, start_time, end_time, conn=None):
data_ = {'category': 'errors', 'name': n, 'value': None, 'oldValue': None, 'ratio': None, 'change': None, 'isNew': True}
for n_, v in ratio:
if n == n_:
data_['value'] = v
if n in new_errors:
data_['value'] = new_error_values[n]
data_['ratio'] = v/total
break
for n_, v in increase:
if n == n_:
data_['change'] = v
data_['value'] = v[0]
data_['oldValue'] = v[1]
data_['change'] = v[2]
data_['isNew'] = False
break
results.append(data_)
@ -321,15 +338,9 @@ def query_click_rage_by_period(project_id, start_time, end_time, conn=None):
if conn is None:
with ch_client.ClickHouseClient() as conn:
query = conn.format(query=query, params=params)
print("--------------------")
print(query)
print("--------------------")
res = conn.execute(query=query)
else:
query = conn.format(query=query, params=params)
print("--------------------")
print(query)
print("--------------------")
res = conn.execute(query=query)
table_hh1, table_hh2, columns, this_period_rage, last_period_rage = __get_two_values(res, time_index='hh',
@ -338,24 +349,32 @@ def query_click_rage_by_period(project_id, start_time, end_time, conn=None):
new_names = [x for x in this_period_rage if x not in last_period_rage]
common_names = [x for x in this_period_rage if x not in new_names]
print(f'[res...] {new_names}\n')
print(f'[common...] {common_names}\n')
sessions_idx = columns.index('sessions')
names_idx = columns.index('sources')
raged_increment = dict()
# raged_increment = dict()
raged_values = dict()
new_raged_values = dict()
# TODO verify line (188) _tmp = table_hh2[:, sessions_idx][n].sum()
for n in common_names:
if n is None:
continue
_tmp = _sum_table_index(_table_where(table_hh2, names_idx, n), sessions_idx)
raged_increment[n] = (_sum_table_index(_table_where(table_hh1, names_idx, n), sessions_idx) - _tmp) / _tmp
_oldvalue = _sum_table_index(_table_where(table_hh2, names_idx, n), sessions_idx)
_newvalue = _sum_table_index(_table_where(table_hh1, names_idx, n), sessions_idx)
# raged_increment[n] = (_newvalue - _oldvalue) / _oldvalue
raged_values[n] = _newvalue, _oldvalue, (_newvalue - _oldvalue) / _oldvalue
for n in new_names:
if n is None:
continue
_newvalue = _sum_table_index(_table_where(table_hh1, names_idx, n), sessions_idx)
new_raged_values[n] = _newvalue
total = _sum_table_index(table_hh1, sessions_idx)
names, ratio = _table_slice(table_hh1, names_idx), _table_slice(table_hh1, sessions_idx)
ratio = sorted(zip(names, ratio), key=lambda k: k[1], reverse=True)
increase = sorted(raged_increment.items(), key=lambda k: k[1], reverse=True)
increase = sorted(raged_values.items(), key=lambda k: k[1][-1], reverse=True)
names_ = set([k[0] for k in increase[:3] + ratio[:3]] + new_names[:3])
results = list()
@ -365,12 +384,15 @@ def query_click_rage_by_period(project_id, start_time, end_time, conn=None):
data_ = {'category': 'rage', 'name': n, 'value': None, 'oldValue': None, 'ratio': None, 'change': None, 'isNew': True}
for n_, v in ratio:
if n == n_:
data_['value'] = v
if n in new_names:
data_['value'] = new_raged_values[n]
data_['ratio'] = v/total
break
for n_, v in increase:
if n == n_:
data_['change'] = v
data_['value'] = v[0]
data_['oldValue'] = v[1]
data_['change'] = v[2]
data_['isNew'] = False
break
results.append(data_)