go/statusz: factor out load avg to separate file
diff --git a/go/statusz/BUILD.bazel b/go/statusz/BUILD.bazel
index 951adff..f051d72 100644
--- a/go/statusz/BUILD.bazel
+++ b/go/statusz/BUILD.bazel
@@ -2,7 +2,10 @@
 
 go_library(
     name = "go_default_library",
-    srcs = ["statusz.go"],
+    srcs = [
+        "load.go",
+        "statusz.go",
+    ],
     importpath = "code.hackerspace.pl/hscloud/go/statusz",
     visibility = ["//visibility:public"],
     deps = [
diff --git a/go/statusz/load.go b/go/statusz/load.go
new file mode 100644
index 0000000..2af5381
--- /dev/null
+++ b/go/statusz/load.go
@@ -0,0 +1,14 @@
+package statusz
+
+import "github.com/shirou/gopsutil/load"
+
+import "fmt"
+
+func loadAverage() string {
+	loadstr := "unknown"
+	l, err := load.Avg()
+	if err == nil {
+		loadstr = fmt.Sprintf("%.2f %.2f %.2f", l.Load1, l.Load5, l.Load15)
+	}
+	return loadstr
+}
diff --git a/go/statusz/statusz.go b/go/statusz/statusz.go
index 6c0fe17..2aa76e4 100644
--- a/go/statusz/statusz.go
+++ b/go/statusz/statusz.go
@@ -46,7 +46,6 @@
 	"time"
 
 	"github.com/golang/glog"
-	"github.com/shirou/gopsutil/load"
 )
 
 var (
@@ -134,12 +133,6 @@
 	lock.Lock()
 	defer lock.Unlock()
 
-	loadavg := "unknown"
-	l, err := load.AvgWithContext(r.Context())
-	if err == nil {
-		loadavg = fmt.Sprintf("%.2f %.2f %.2f", l.Load1, l.Load5, l.Load15)
-	}
-
 	data := struct {
 		Sections    []section
 		BinaryName  string
@@ -157,7 +150,7 @@
 		Username:    username,
 		StartTime:   serverStart.Format(time.RFC1123),
 		CurrentTime: time.Now().Format(time.RFC1123),
-		LoadAvg:     loadavg,
+		LoadAvg:     loadAverage(),
 	}
 
 	if err := tmpl.ExecuteTemplate(w, "status", data); err != nil {