mirror of
https://github.com/LibreQoE/LibreQoS.git
synced 2025-02-16 14:34:45 -06:00
Basic web UI update to show numbers in the right units
This commit is contained in:
parent
9d0e536089
commit
b8937bf9c2
@ -810,7 +810,7 @@
|
||||
html += "<td>" + scaleNumber(data[i].bytes_sent[0]) + " / " + scaleNumber(data[i].bytes_sent[1]) + "</td>";
|
||||
html += "<td>" + scaleNumber(data[i].packets_sent[0]) + " / " + scaleNumber(data[i].packets_sent[1]) + "</td>";
|
||||
html += "<td>" + data[i].tcp_retransmits[0] + " / " + data[i].tcp_retransmits[1] + "</td>";
|
||||
html += "<td>" + parse_rtts(data[i], 0).toFixed(2) + " / " + parse_rtts(data[i], 1).toFixed(2) + "</td>";
|
||||
html += "<td>" + scaleNanos(data[i].rtt_nanos[0]) + " / " + scaleNanos(data[i].rtt_nanos[1]) + "</td>";
|
||||
html += "<td>(" + data[i].remote_asn + ") " + data[i].remote_asn_name + "</td>";
|
||||
html += "<td>" + data[i].remote_asn_country + "</td>";
|
||||
html += "</tr>";
|
||||
|
@ -272,6 +272,18 @@ function scaleNumber(n) {
|
||||
return n;
|
||||
}
|
||||
|
||||
function scaleNanos(n) {
|
||||
if (n == 0) return "";
|
||||
if (n > 1000000000) {
|
||||
return (n / 1000000000).toFixed(2) + "s";
|
||||
} else if (n > 1000000) {
|
||||
return (n / 1000000).toFixed(2) + "ms";
|
||||
} else if (n > 1000) {
|
||||
return (n / 1000).toFixed(2) + "µs";
|
||||
}
|
||||
return n + "ns";
|
||||
}
|
||||
|
||||
const reloadModal = `
|
||||
<div class='modal fade' id='reloadModal' tabindex='-1' aria-labelledby='reloadModalLabel' aria-hidden='true'>
|
||||
<div class='modal-dialog modal-fullscreen'>
|
||||
|
@ -313,19 +313,6 @@
|
||||
});
|
||||
}
|
||||
|
||||
function parse_rtts(data, idx) {
|
||||
let n = [];
|
||||
for (let i=0; i<data.rtt_ringbuffer[idx].length; i++) {
|
||||
n.push(data.rtt_ringbuffer[idx][i]);
|
||||
}
|
||||
if (n.length == 0) {
|
||||
return 0.0;
|
||||
}
|
||||
n.sort();
|
||||
// Median
|
||||
return n[Math.floor(n.length / 2)];
|
||||
}
|
||||
|
||||
function updateTop10Flows() {
|
||||
$.get("/api/flows/top/10/rate", data => {
|
||||
let html = "<table class='table' style='font-size: 8pt'>";
|
||||
@ -342,7 +329,7 @@
|
||||
html += "<th>Country</th>";
|
||||
html += "</thead><tbody>";
|
||||
for (var i = 0; i<data.length; i++) {
|
||||
//console.log(data[i]);
|
||||
console.log(data[i]);
|
||||
html += "<tr>";
|
||||
html += "<td>" + data[i].analysis + "</td>";
|
||||
html += "<td>" + data[i].local_ip + "</td>";
|
||||
@ -350,10 +337,8 @@
|
||||
// TODO: Check scaling
|
||||
html += "<td>" + scaleNumber(data[i].rate_estimate_bps[0]) + "</td>";
|
||||
html += "<td>" + scaleNumber(data[i].rate_estimate_bps[1]) + "</td>";
|
||||
html += "<td>" + parse_rtts(data[i], 0).toFixed(2) + "</td>";
|
||||
html += "<td>" + parse_rtts(data[i], 1).toFixed(2) + "</td>";
|
||||
//html += "<td>" + (data[i].last_rtt[0] / 1000000).toFixed(2) + "</td>";
|
||||
//html += "<td>" + (data[i].last_rtt[1] / 1000000).toFixed(2) + "</td>";
|
||||
html += "<td>" + scaleNanos(data[i].rtt_nanos[0]) + "</td>";
|
||||
html += "<td>" + scaleNanos(data[i].rtt_nanos[1]) + "</td>";
|
||||
html += "<td>" + data[i].tcp_retransmits[0] + "/" + data[i].tcp_retransmits[1] + "</td>";
|
||||
html += "<td>" + data[i].remote_asn_name + "</td>";
|
||||
html += "<td>" + data[i].remote_asn_country + "</td>";
|
||||
|
@ -226,7 +226,7 @@ impl ThroughputTracker {
|
||||
for i in 1..60 {
|
||||
tracker.recent_rtt_data[i] = tracker.recent_rtt_data[i - 1];
|
||||
}
|
||||
tracker.recent_rtt_data[0] = rtt[i].as_millis_times_100() as u32;
|
||||
tracker.recent_rtt_data[0] = rtt[i].as_millis() as u32;
|
||||
tracker.last_fresh_rtt_data_cycle = self_cycle;
|
||||
if let Some(parents) = &tracker.network_json_parents {
|
||||
let net_json = NETWORK_JSON.write().unwrap();
|
||||
|
Loading…
Reference in New Issue
Block a user