dashboard: fix missing tor pool and db stats fields
This commit is contained in:
@@ -1680,21 +1680,38 @@ class Proxywatchd():
|
||||
pool = connection_pool.get_pool()
|
||||
if pool:
|
||||
pool_stats = pool.get_stats()
|
||||
pool_info = {
|
||||
'hosts': [],
|
||||
'total_requests': pool_stats.get('total_requests', 0),
|
||||
'success_rate': pool_stats.get('success_rate', 0)
|
||||
}
|
||||
hosts_list = []
|
||||
healthy_count = 0
|
||||
latency_sum = 0.0
|
||||
latency_count = 0
|
||||
for h in pool_stats.get('hosts', []):
|
||||
pool_info['hosts'].append({
|
||||
is_healthy = h.get('available', False)
|
||||
lat_ms = h.get('avg_latency', 0) * 1000 if h.get('avg_latency') else None
|
||||
hosts_list.append({
|
||||
'address': h.get('host', ''),
|
||||
'healthy': h.get('available', False),
|
||||
'latency_ms': h.get('avg_latency', 0) * 1000 if h.get('avg_latency') else None,
|
||||
'healthy': is_healthy,
|
||||
'latency_ms': lat_ms,
|
||||
'success_rate': h.get('success_rate', 0),
|
||||
})
|
||||
if is_healthy:
|
||||
healthy_count += 1
|
||||
if lat_ms and lat_ms > 0:
|
||||
latency_sum += lat_ms
|
||||
latency_count += 1
|
||||
pool_info = {
|
||||
'hosts': hosts_list,
|
||||
'total_requests': pool_stats.get('total_requests', 0),
|
||||
'success_rate': pool_stats.get('success_rate', 0),
|
||||
'healthy_count': healthy_count,
|
||||
'total_count': len(hosts_list),
|
||||
'avg_latency': latency_sum / latency_count if latency_count > 0 else 0,
|
||||
}
|
||||
stats_data['tor_pool'] = pool_info
|
||||
else:
|
||||
stats_data['tor_pool'] = {'hosts': [], 'total_requests': 0, 'success_rate': 0}
|
||||
stats_data['tor_pool'] = {
|
||||
'hosts': [], 'total_requests': 0, 'success_rate': 0,
|
||||
'healthy_count': 0, 'total_count': 0, 'avg_latency': 0
|
||||
}
|
||||
|
||||
# Judge stats (when using judges checktype)
|
||||
if config.watchd.checktype == 'judges':
|
||||
|
||||
Reference in New Issue
Block a user