all repos — honk @ 3c9631fd37fb1cc0d0cb6a315746efb9c4e2ea4c

my fork of honk

add sensors to the about page
Ted Unangst tedu@tedunangst.com
Fri, 08 Nov 2019 19:11:37 -0500
commit

3c9631fd37fb1cc0d0cb6a315746efb9c4e2ea4c

parent

2e2387812feb9045c43158b6c220b7fca5309bcd

3 files changed, 51 insertions(+), 1 deletions(-)

jump to
A sensors.go

@@ -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 +}
M views/about.htmlviews/about.html

@@ -2,6 +2,10 @@ {{ template "header.html" . }}

<main> <div class="info"> {{ .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> </main>
M web.goweb.go

@@ -1902,6 +1902,9 @@ templinfo := getInfo(r)

templinfo["AboutMsg"] = aboutMsg templinfo["LoginMsg"] = loginMsg templinfo["HonkVersion"] = honkVersion + if r.URL.Path == "/about" { + templinfo["Sensors"] = getSensors() + } if u == nil { w.Header().Set("Cache-Control", "max-age=60") }