mirror of
https://github.com/jech/galene.git
synced 2024-11-22 16:45:58 +01:00
Reformat stats display, protect against division by zero.
This commit is contained in:
parent
b1bb427f06
commit
86b6c71ca0
3 changed files with 29 additions and 18 deletions
|
@ -23,8 +23,11 @@ func (c *webClient) GetStats() *stats.Client {
|
||||||
tracks := up.getTracks()
|
tracks := up.getTracks()
|
||||||
for _, t := range tracks {
|
for _, t := range tracks {
|
||||||
s := t.cache.GetStats(false)
|
s := t.cache.GetStats(false)
|
||||||
loss := float64(s.Expected - s.Received) /
|
var loss float64
|
||||||
float64(s.Expected)
|
if s.Expected > 0 {
|
||||||
|
loss = float64(s.Expected-s.Received) /
|
||||||
|
float64(s.Expected)
|
||||||
|
}
|
||||||
jitter := time.Duration(t.jitter.Jitter()) *
|
jitter := time.Duration(t.jitter.Jitter()) *
|
||||||
(time.Second / time.Duration(t.jitter.HZ()))
|
(time.Second / time.Duration(t.jitter.HZ()))
|
||||||
rate, _ := t.rate.Estimate()
|
rate, _ := t.rate.Estimate()
|
||||||
|
|
|
@ -56,11 +56,15 @@ function formatGroup(group) {
|
||||||
tr2.appendChild(td3);
|
tr2.appendChild(td3);
|
||||||
table.appendChild(tr2);
|
table.appendChild(tr2);
|
||||||
if(client.up)
|
if(client.up)
|
||||||
for(let j = 0; j < client.up.length; j++)
|
for(let j = 0; j < client.up.length; j++) {
|
||||||
table.appendChild(formatConn('↑', client.up[j]));
|
let rows = formatConn('↑', client.up[j]);
|
||||||
|
rows.forEach(r => table.appendChild(r));
|
||||||
|
}
|
||||||
if(client.down)
|
if(client.down)
|
||||||
for(let j = 0; j < client.down.length; j++)
|
for(let j = 0; j < client.down.length; j++) {
|
||||||
table.appendChild(formatConn('↓', client.down[j]));
|
let rows = formatConn('↓', client.down[j]);
|
||||||
|
rows.forEach(r => table.appendChild(r));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
td2.appendChild(table);
|
td2.appendChild(table);
|
||||||
tr.appendChild(td2);
|
tr.appendChild(td2);
|
||||||
|
@ -76,24 +80,25 @@ function formatConn(direction, conn) {
|
||||||
td2.textContent = conn.id;
|
td2.textContent = conn.id;
|
||||||
tr.appendChild(td2);
|
tr.appendChild(td2);
|
||||||
let td3 = document.createElement('td');
|
let td3 = document.createElement('td');
|
||||||
if(conn.maxBitrate)
|
td3.textContent = direction;
|
||||||
td3.textContent = direction + ' ' + conn.maxBitrate;
|
|
||||||
else
|
|
||||||
td3.textContent = direction;
|
|
||||||
tr.appendChild(td3);
|
tr.appendChild(td3);
|
||||||
let td4 = document.createElement('td');
|
let td4 = document.createElement('td');
|
||||||
if(conn.tracks) {
|
if(conn.maxBitrate)
|
||||||
let table = document.createElement('table');
|
td4.textContent = `${conn.maxBitrate}`;
|
||||||
for(let i = 0; i < conn.tracks.length; i++)
|
|
||||||
table.appendChild(formatTrack(conn.tracks[i]));
|
|
||||||
td4.appendChild(table);
|
|
||||||
}
|
|
||||||
tr.appendChild(td4);
|
tr.appendChild(td4);
|
||||||
return tr;
|
let rows = [tr];
|
||||||
|
if(conn.tracks) {
|
||||||
|
for(let i = 0; i < conn.tracks.length; i++)
|
||||||
|
rows.push(formatTrack(conn.tracks[i]));
|
||||||
|
}
|
||||||
|
return rows;
|
||||||
}
|
}
|
||||||
|
|
||||||
function formatTrack(track) {
|
function formatTrack(track) {
|
||||||
let tr = document.createElement('tr');
|
let tr = document.createElement('tr');
|
||||||
|
tr.appendChild(document.createElement('td'));
|
||||||
|
tr.appendChild(document.createElement('td'));
|
||||||
|
tr.appendChild(document.createElement('td'));
|
||||||
let td = document.createElement('td');
|
let td = document.createElement('td');
|
||||||
if(track.maxBitrate)
|
if(track.maxBitrate)
|
||||||
td.textContent = `${track.bitrate||0}/${track.maxBitrate}`;
|
td.textContent = `${track.bitrate||0}/${track.maxBitrate}`;
|
||||||
|
|
|
@ -370,7 +370,10 @@ func statsHandler(w http.ResponseWriter, r *http.Request, dataDir string) {
|
||||||
|
|
||||||
ss := stats.GetGroups()
|
ss := stats.GetGroups()
|
||||||
e := json.NewEncoder(w)
|
e := json.NewEncoder(w)
|
||||||
e.Encode(ss)
|
err = e.Encode(ss)
|
||||||
|
if err != nil {
|
||||||
|
log.Printf("stats.json: %v", err)
|
||||||
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue