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:
@@ -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,
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user