dashboard: fix missing tor pool and db stats fields

This commit is contained in:
Username
2025-12-23 17:56:12 +01:00
parent 6076d93377
commit 1e2054bec5
2 changed files with 44 additions and 75 deletions

View File

@@ -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':