httpd: add worker test rate tracking
Track per-worker test rates using 120s sliding window. Display combined rate in dashboard and individual rates in worker cards.
This commit is contained in:
@@ -619,13 +619,8 @@ function updateWorkers(data) {
|
||||
// Main panel distributed workers
|
||||
if ($('dwTested')) $('dwTested').textContent = fmt(data.summary.total_tested);
|
||||
if ($('dwWorking')) $('dwWorking').textContent = fmt(data.summary.total_working);
|
||||
// Calculate combined rate from worker stats
|
||||
var combinedRate = 0;
|
||||
if (data.workers) {
|
||||
data.workers.forEach(function(w) {
|
||||
if (w.active && w.test_rate) combinedRate += w.test_rate;
|
||||
});
|
||||
}
|
||||
// Combined rate from summary
|
||||
var combinedRate = data.summary.combined_rate || 0;
|
||||
if ($('dwRate')) $('dwRate').textContent = combinedRate > 0 ? combinedRate.toFixed(1) + '/s' : '-';
|
||||
}
|
||||
|
||||
@@ -652,6 +647,7 @@ function updateWorkers(data) {
|
||||
var statusClass = w.active ? 'grn' : 'red';
|
||||
var statusText = w.active ? 'ACTIVE' : 'OFFLINE';
|
||||
var successRate = w.success_rate || 0;
|
||||
var testRate = w.test_rate || 0;
|
||||
var rateClass = successRate >= 50 ? 'grn' : (successRate >= 20 ? 'yel' : 'red');
|
||||
var profBadge = w.profiling ? '<span class="tag tag-warn" style="margin-left:4px;font-size:9px">PROF</span>' : '';
|
||||
|
||||
@@ -661,10 +657,10 @@ function updateWorkers(data) {
|
||||
'<span><span class="tag tag-' + (w.active ? 'ok' : 'err') + '">' + statusText + '</span>' + profBadge + '</span>' +
|
||||
'</div>' +
|
||||
'<div class="stats-wrap" style="margin:0">' +
|
||||
'<div class="stat-row"><span class="stat-lbl">Rate</span><span class="stat-val cyn">' + (testRate > 0 ? testRate.toFixed(1) + '/s' : '-') + '</span></div>' +
|
||||
'<div class="stat-row"><span class="stat-lbl">Tested</span><span class="stat-val">' + fmt(w.proxies_tested) + '</span></div>' +
|
||||
'<div class="stat-row"><span class="stat-lbl">Working</span><span class="stat-val grn">' + fmt(w.proxies_working) + '</span></div>' +
|
||||
'<div class="stat-row"><span class="stat-lbl">Success</span><span class="stat-val ' + rateClass + '">' + successRate.toFixed(1) + '%</span></div>' +
|
||||
'<div class="stat-row"><span class="stat-lbl">Jobs</span><span class="stat-val">' + fmt(w.jobs_completed) + '</span></div>' +
|
||||
'</div>' +
|
||||
'<div style="font-size:0.75em;color:var(--dim);margin-top:8px">' +
|
||||
'IP: ' + w.ip + ' | Last: ' + formatAge(w.age) +
|
||||
|
||||
Reference in New Issue
Block a user