GitHub - osamingo/gosh: Provide Go Statistics Handler, Struct, Measure Method (original) (raw)

Go Statistics Handler

CI codecov Go Report Card GoDoc GitHub license

About

Install

$ go get github.com/osamingo/gosh@latest

Usage

Example

package main

import ( "encoding/json" "io" "log" "net/http"

"github.com/osamingo/gosh"

)

func main() {

h, err := gosh.NewStatisticsHandler(func(w io.Writer) gosh.JSONEncoder {
    return json.NewEncoder(w)
})
if err != nil {
    log.Fatalln(err)
}

mux := http.NewServeMux()
mux.Handle("/healthz", h)

if err := http.ListenAndServe(":8080", mux); err != nil {
    log.Fatalln(err)
}

}

Output

$ curl "localhost:8080/healthz" | jq . { "timestamp": 1527317620, "go_version": "go1.10.2", "go_os": "darwin", "go_arch": "amd64", "cpu_num": 8, "goroutine_num": 6, "gomaxprocs": 8, "cgo_call_num": 1, "memory_alloc": 422272, "memory_total_alloc": 422272, "memory_sys": 3084288, "memory_lookups": 6, "memory_mallocs": 4720, "memory_frees": 71, "stack_inuse": 491520, "heap_alloc": 422272, "heap_sys": 1605632, "heap_idle": 401408, "heap_inuse": 1204224, "heap_released": 0, "heap_objects": 4649, "gc_next": 4473924, "gc_last": 0, "gc_num": 0, "gc_per_second": 0, "gc_pause_per_second": 0, "gc_pause": [] }

License

Released under the MIT License.