1
0
Fork 0
hscloud/go/statusz
q3k 97b5cd7b58 go: re-do the entire thing
This is a mega-change, but attempting to split this up further is
probably not worth the effort.

Summary:

1. Bump up bazel, rules_go, and others.
2. Switch to new go target naming (bye bye go_default_library)
3. Move go deps to go.mod/go.sum, use make gazelle generate from that
4. Bump up Python deps a bit

And also whatever was required to actually get things to work - loads of
small useless changes.

Tested to work on NixOS and Ubuntu 20.04:

   $ bazel build //...
   $ bazel test //...

Change-Id: I8364bdaa1406b9ae4d0385a6b607f3e7989f98a9
Reviewed-on: https://gerrit.hackerspace.pl/c/hscloud/+/1583
Reviewed-by: q3k <q3k@hackerspace.pl>
2023-09-22 21:50:19 +00:00
..
BUILD.bazel go: re-do the entire thing 2023-09-22 21:50:19 +00:00
LICENSE statusz: make our own copy 2018-10-25 23:26:57 +02:00
README.md statusz: fix executable sha256 2018-10-25 23:37:37 +02:00
load.go go/statusz: factor out load avg to separate file 2019-04-06 01:21:04 +02:00
statusz.go go/statusz: do not crash on failure to resolve uid 2020-10-30 14:05:07 +01:00

README.md

Statusz-like page for Go

This module adds a /debug/status handler to net/http that displays useful information for debug purposes in production.

Basic Usage

For the basic status page, just include the module.

import (
    _ "code.hackerspace.pl/hscloud/go/statusz"
)

func main() {
    http.ListenAndServe("127.0.0.1:6000", nil)
}

Adding sections

To add a section to the status page, call AddStatusSection like so:

import (
    "code.hackerspace.pl/hscloud/go/statusz"
)


func main() {
    statusz.AddStatusPart("Worker Status", function(ctx context.Context) {
        return fmt.Sprintf("%d workers alive", workerCount)
    })
    http.ListenAndServe("127.0.0.1:6000", nil)
}

For custom section templates, call AddStatusPart, which accepts a http/template fragment that will be rendered on the result of the part render function.