1
0
mirror of https://github.com/jhillyerd/inbucket.git synced 2025-12-18 10:07:02 +00:00

Add open WebSockets to metrics

This commit is contained in:
James Hillyerd
2017-01-16 18:53:24 -08:00
parent e5aad9f5d0
commit 86365a047c
4 changed files with 22 additions and 1 deletions

View File

@@ -3,6 +3,7 @@ package httpd
import ( import (
"context" "context"
"expvar"
"fmt" "fmt"
"net" "net"
"net/http" "net/http"
@@ -36,8 +37,16 @@ var (
listener net.Listener listener net.Listener
sessionStore sessions.Store sessionStore sessions.Store
globalShutdown chan bool globalShutdown chan bool
// ExpWebSocketConnectsCurrent tracks the number of open WebSockets
ExpWebSocketConnectsCurrent = new(expvar.Int)
) )
func init() {
m := expvar.NewMap("http")
m.Set("WebSocketConnectsCurrent", ExpWebSocketConnectsCurrent)
}
// Initialize sets up things for unit tests or the Start() method // Initialize sets up things for unit tests or the Start() method
func Initialize( func Initialize(
cfg config.WebConfig, cfg config.WebConfig,

View File

@@ -143,7 +143,12 @@ func MonitorAllMessagesV1(
if err != nil { if err != nil {
return err return err
} }
defer conn.Close() httpd.ExpWebSocketConnectsCurrent.Add(1)
defer func() {
_ = conn.Close()
httpd.ExpWebSocketConnectsCurrent.Add(-1)
}()
log.Tracef("HTTP[%v] Upgraded to websocket", req.RemoteAddr) log.Tracef("HTTP[%v] Upgraded to websocket", req.RemoteAddr)
// Create, register listener; then interact with conn // Create, register listener; then interact with conn

View File

@@ -104,6 +104,7 @@ function displayMetrics(data, textStatus, jqXHR) {
metric('memstatsHeapSys', data.memstats.HeapSys, sizeFilter, true); metric('memstatsHeapSys', data.memstats.HeapSys, sizeFilter, true);
metric('memstatsHeapObjects', data.memstats.HeapObjects, numberFilter, true); metric('memstatsHeapObjects', data.memstats.HeapObjects, numberFilter, true);
metric('smtpConnectsCurrent', data.smtp.ConnectsCurrent, numberFilter, true); metric('smtpConnectsCurrent', data.smtp.ConnectsCurrent, numberFilter, true);
metric('httpWebSocketConnectsCurrent', data.http.WebSocketConnectsCurrent, numberFilter, true);
// Server-side history // Server-side history
metric('smtpReceivedTotal', data.smtp.ReceivedTotal, numberFilter, false); metric('smtpReceivedTotal', data.smtp.ReceivedTotal, numberFilter, false);

View File

@@ -107,6 +107,12 @@ $(document).ready(
<div class="col-sm-4"><span id="s-memstatsHeapObjects">.</span></div> <div class="col-sm-4"><span id="s-memstatsHeapObjects">.</span></div>
<div class="col-sm-2 hidden-xs">(10min)</div> <div class="col-sm-2 hidden-xs">(10min)</div>
</div> </div>
<div class="row">
<div class="col-sm-3 col-xs-7"><b>Open WebSockets:</b></div>
<div class="col-sm-3 col-xs-5"><span id="m-httpWebSocketConnectsCurrent">.</span></div>
<div class="col-sm-4"><span id="s-httpWebSocketConnectsCurrent">.</span></div>
<div class="col-sm-2 hidden-xs">(10min)</div>
</div>
</table> </table>
</div> </div>
</div> </div>