From 7bf35dbe37e8b681dd2a3a78b71e091f5846305e Mon Sep 17 00:00:00 2001 From: Hans Moog <hm@mkjc.net> Date: Tue, 30 Jul 2019 14:09:02 +0200 Subject: [PATCH] Fix: fixed bug in html template of dashboard --- plugins/dashboard/tps.go | 15 +++++++-------- plugins/dashboard/tps_template.go | 17 ++++++++++------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/plugins/dashboard/tps.go b/plugins/dashboard/tps.go index 8572fa68..22b59d76 100644 --- a/plugins/dashboard/tps.go +++ b/plugins/dashboard/tps.go @@ -2,7 +2,6 @@ package dashboard import ( "encoding/binary" - "fmt" "html/template" "net/http" @@ -27,11 +26,13 @@ func ServeWs(w http.ResponseWriter, r *http.Request) { } notifyWebsocketClient := events.NewClosure(func(sampledTPS uint64) { - p := make([]byte, 4) - binary.LittleEndian.PutUint32(p, uint32(sampledTPS)) - if err := ws.WriteMessage(websocket.BinaryMessage, p); err != nil { - return - } + go func() { + p := make([]byte, 4) + binary.LittleEndian.PutUint32(p, uint32(sampledTPS)) + if err := ws.WriteMessage(websocket.BinaryMessage, p); err != nil { + return + } + }() }) metrics.Events.ReceivedTPSUpdated.Attach(notifyWebsocketClient) @@ -42,8 +43,6 @@ func ServeWs(w http.ResponseWriter, r *http.Request) { } } - fmt.Println("DISCONNECTOR") - metrics.Events.ReceivedTPSUpdated.Detach(notifyWebsocketClient) } diff --git a/plugins/dashboard/tps_template.go b/plugins/dashboard/tps_template.go index 69d27e6e..f12df4b5 100644 --- a/plugins/dashboard/tps_template.go +++ b/plugins/dashboard/tps_template.go @@ -286,17 +286,20 @@ var tpsTemplate = ` } }] }); + + const dataStr = '{{.Data}}' + const parsedData = JSON.parse(dataStr.replace(/ /g, ',')); + time = Date.now() - 1000 * (parsedData.length + 1); + for (let i = 0; i < parsedData.length; i++) { + chart.series[0].addPoint([time += 1000, parseInt(parsedData[i], 10)], false); + } + chart.redraw(); + console.log(parsedData); + const conn = new WebSocket("ws://{{.Host}}/ws"); conn.binaryType = 'arraybuffer'; conn.onopen = evt => { console.log("WebSocket is open now."); - const dataStr = '{{.Data}}' - const data = JSON.parse(dataStr.replace(/ /g, ',')); - time = Date.now() - 1000 * (data.length + 1); - for (let i = 0; i < data.length; i++) { - chart.series[0].addPoint([time += 1000, parseInt(data[i], 10)], true); - } - console.log(data); console.log("WebSocket done."); } conn.onclose = () => { -- GitLab