Internal Stats -- performance view (#221)

This commit is contained in:
Chris F Ravenscroft
2021-10-04 23:31:13 -07:00
committed by GitHub
parent 7e49d25591
commit c2360259af
7 changed files with 47 additions and 6 deletions
+20 -2
View File
@@ -1,14 +1,32 @@
var interval = 2000;
var internalsEnabled = false;
$(function() {
updateMetrics();
//updateTail();
$.get("/internals", function() {
internalsEnabled = true;
})
.always(function() {
updateMetrics();
//updateTail();
})
});
var tailId = 0;
function updateMetrics() {
var metrics = $.getJSON( "/debug/vars", function(d) {
var template = Handlebars.compile( $("#header-messages-template").html() );
var messages = [];
if(internalsEnabled) {
messages.push({"message": "Also available: <a href='/internals'>Internals: heap, cache, objects, etc.</a>"});
}
var html = template({
"header": {
"messages": messages
}
});
$("#headerpanel").html(html);
var template = Handlebars.compile( $("#statspanel-template").html() );
var html = template(d);
$("#statspanel").html(html);
+9 -4
View File
@@ -29,19 +29,18 @@
<div id="statspanel" class="panel panel-default pull-right">
</div>
<h1>GLAuth</h1>
<p>This tool is in development - not quite ready for production!</p>
<div id="headerpanel"></div>
</div>
<div class="row">
<div class="col-xs-12 col-sm-6">
<h2>stats</h2>
<h2>frontend stats</h2>
<div id="stats" class="jumbotron">
</div>
</div>
<div class="col-xs-12 col-sm-6">
<h2>backend servers</h2>
<h2>backend (LDAP) servers</h2>
<div id="servers" class="jumbotron">
</div>
</div>
@@ -49,6 +48,12 @@
</div> <!-- /container -->
<script id="header-messages-template" type="text/x-handlebars-template">
{{#each header.messages}}
<span>{{{message}}}</span><br>
{{/each}}
</script>
<script id="statspanel-template" type="text/x-handlebars-template">
<div class="panel-body">
<span class="metric">proxy.version:</span> {{proxy.version}}<br>
+11
View File
@@ -2,11 +2,13 @@ package main
import (
"fmt"
"net/http"
"os"
"strings"
"time"
"github.com/GeertJohan/yubigo"
"github.com/arl/statsviz"
docopt "github.com/docopt/docopt-go"
"github.com/fsnotify/fsnotify"
"github.com/glauth/glauth/pkg/config"
@@ -126,6 +128,15 @@ func startService() {
// web API
if activeConfig.API.Enabled {
log.V(6).Info("Web API enabled")
if activeConfig.API.Internals {
statsviz.Register(
http.DefaultServeMux,
statsviz.Root("/internals"),
statsviz.SendFrequency(1000*time.Millisecond),
)
}
go frontend.RunAPI(
frontend.Logger(log),
frontend.Config(&activeConfig.API),
+1
View File
@@ -4,6 +4,7 @@ go 1.15
require (
github.com/GeertJohan/yubigo v0.0.0-20190917122436-175bc097e60e
github.com/arl/statsviz v0.4.0 // indirect
github.com/boombuler/barcode v1.0.1
github.com/davecgh/go-spew v1.1.1
github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815
+4
View File
@@ -1,6 +1,8 @@
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
github.com/GeertJohan/yubigo v0.0.0-20190917122436-175bc097e60e h1:Bqtt5C+uVk+vH/t5dmB47uDCTwxw16EYHqvJnmY2aQc=
github.com/GeertJohan/yubigo v0.0.0-20190917122436-175bc097e60e/go.mod h1:njRCDrl+1RQ/A/+KVU8Ho2EWAxUSkohOWczdW3dzDG0=
github.com/arl/statsviz v0.4.0 h1:pv8DWfti0TC8M2Baold2xGnCnir9jhqv1BO6UNKQmqY=
github.com/arl/statsviz v0.4.0/go.mod h1:+5inUy/dxy11x/KSmicG3ZrEEy0Yr81AFm3dn4QC04M=
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc h1:biVzkmvwrH8WK8raXaxBx6fRVTlJILwEwQGL1I/ByEI=
github.com/boombuler/barcode v1.0.1-0.20190219062509-6c824513bacc/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/boombuler/barcode v1.0.1 h1:NDBbPmhS+EqABEs5Kg3n/5ZNjy73Pz7SIV+KCeqyXcs=
@@ -21,6 +23,8 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y
github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/hydronica/toml v0.4.2 h1:BY+iAvyl2u1BlfgkJQzqc1UXDGLWfpMmOWuqJrwAVDU=
github.com/hydronica/toml v0.4.2/go.mod h1:c7QhbYq3Wp9SlOWuG7MAieKUyXP2P/hXhy/YqWfbS/4=
github.com/jinzhu/copier v0.0.0-20190924061706-b57f9002281a h1:zPPuIq2jAWWPTrGt70eK/BSch+gFAGrNzecsoENgu2o=
+1
View File
@@ -45,6 +45,7 @@ type LDAPS struct {
type API struct {
Cert string
Enabled bool
Internals bool
Key string
Listen string
SecretToken string
+1
View File
@@ -144,6 +144,7 @@ debug = true
# Enable and configure the optional REST API here.
[api]
enabled = true
internals = true # debug application performance
tls = false # enable TLS for production!!
listen = "0.0.0.0:5555"
cert = "cert.pem"