add sensors to the about page
This commit is contained in:
parent
4b9cdf912b
commit
a7fae95682
|
@ -0,0 +1,43 @@
|
||||||
|
//
|
||||||
|
// Copyright (c) 2019 Ted Unangst <tedu@tedunangst.com>
|
||||||
|
//
|
||||||
|
// Permission to use, copy, modify, and distribute this software for any
|
||||||
|
// purpose with or without fee is hereby granted, provided that the above
|
||||||
|
// copyright notice and this permission notice appear in all copies.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||||
|
// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
|
||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"syscall"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type Sensors struct {
|
||||||
|
Memory float64
|
||||||
|
Uptime float64
|
||||||
|
CPU float64
|
||||||
|
}
|
||||||
|
|
||||||
|
var boottime = time.Now()
|
||||||
|
|
||||||
|
func getSensors() Sensors {
|
||||||
|
var usage syscall.Rusage
|
||||||
|
syscall.Getrusage(syscall.RUSAGE_SELF, &usage)
|
||||||
|
|
||||||
|
now := time.Now()
|
||||||
|
|
||||||
|
var sensors Sensors
|
||||||
|
sensors.Memory = float64(usage.Maxrss) / 1024.0
|
||||||
|
sensors.Uptime = now.Sub(boottime).Seconds()
|
||||||
|
sensors.CPU = time.Duration(usage.Utime.Nano()).Seconds()
|
||||||
|
|
||||||
|
return sensors
|
||||||
|
}
|
|
@ -2,6 +2,10 @@
|
||||||
<main>
|
<main>
|
||||||
<div class="info">
|
<div class="info">
|
||||||
{{ .AboutMsg }}
|
{{ .AboutMsg }}
|
||||||
<p style="text-align:right"><small>version: {{ .HonkVersion }}</small>
|
<p><small>version: {{ .HonkVersion }}
|
||||||
|
<br>memory: {{ printf "%.02f" .Sensors.Memory }}MB
|
||||||
|
<br>uptime: {{ printf "%.02f" .Sensors.Uptime }}s
|
||||||
|
<br>cputime: {{ printf "%.02f" .Sensors.CPU }}s
|
||||||
|
</small>
|
||||||
</div>
|
</div>
|
||||||
</main>
|
</main>
|
||||||
|
|
3
web.go
3
web.go
|
@ -1902,6 +1902,9 @@ func servehtml(w http.ResponseWriter, r *http.Request) {
|
||||||
templinfo["AboutMsg"] = aboutMsg
|
templinfo["AboutMsg"] = aboutMsg
|
||||||
templinfo["LoginMsg"] = loginMsg
|
templinfo["LoginMsg"] = loginMsg
|
||||||
templinfo["HonkVersion"] = honkVersion
|
templinfo["HonkVersion"] = honkVersion
|
||||||
|
if r.URL.Path == "/about" {
|
||||||
|
templinfo["Sensors"] = getSensors()
|
||||||
|
}
|
||||||
if u == nil {
|
if u == nil {
|
||||||
w.Header().Set("Cache-Control", "max-age=60")
|
w.Header().Set("Cache-Control", "max-age=60")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue