Golang cpu, memory, gc, etc information api handler.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.gitignore Initial commit Nov 29, 2013
.travis.yml add travis-ci Mar 25, 2016
LICENSE Initial commit Nov 29, 2013
README.md add travis-ci Mar 25, 2016
handler.go #12 fix conflict Mar 25, 2016
handler_test.go Add pp parameter Jan 24, 2016



Golang cpu, memory, gc, etc information api handler.

Build Status


go get github.com/fukata/golang-stats-api-handler


import (
func main() {
    http.HandleFunc("/api/stats", stats_api.Handler)
    log.Fatal( http.ListenAndServe(":8080", nil) )


$ curl -i http://localhost:8080/api/stats/
HTTP/1.1 200 OK
Content-Length: 712
Content-Type: application/json
Date: Sun, 23 Aug 2015 16:52:13 GMT

    "time": 1440348733548339479,
    "go_version": "go1.5",
    "go_os": "darwin",
    "go_arch": "amd64",
    "cpu_num": 8,
    "goroutine_num": 24,
    "gomaxprocs": 8,
    "cgo_call_num": 9,
    "memory_alloc": 3974536,
    "memory_total_alloc": 12857888,
    "memory_sys": 12871928,
    "memory_lookups": 52,
    "memory_mallocs": 144922,
    "memory_frees": 118936,
    "memory_stack": 688128,
    "heap_alloc": 3974536,
    "heap_sys": 8028160,
    "heap_idle": 2170880,
    "heap_inuse": 5857280,
    "heap_released": 0,
    "heap_objects": 25986,
    "gc_next": 4833706,
    "gc_last": 1440348732827834419,
    "gc_num": 4,
    "gc_per_second": 0,
    "gc_pause_per_second": 0,
    "gc_pause": [
Key Value
time unix timestamp as nano-seconds
go_version runtime.Version()
go_os runtime.GOOS
go_arch runtime.GOARCH
cpu_num number of CPUs
goroutine_num number of goroutines
gomaxprocs runtime.GOMAXRPOCS(0)
cgo_call_num runtime.NumCgoCall()
memory_alloc bytes allocated and not yet freed
memory_total_alloc bytes allocated (even if freed)
memory_sys bytes obtained from system
memory_lookups number of pointer lookups
memory_mallocs number of mallocs
memory_frees number of frees
memory_stack bytes used by stack allocator
heap_alloc bytes allocated and not yet freed (same as memory_alloc above)
heap_sys bytes obtained from system (not same as memory_sys)
heap_idle bytes in idle spans
heap_inuse bytes in non-idle span
heap_released bytes released to the OS
heap_objects total number of allocated objects
gc_next next collection will happen when HeapAlloc ≥ this amount
gc_last end time of last collection
gc_num number of GC-run
gc_per_second number of GC-run per second
gc_pause_per_second pause duration by GC per seconds
gc_pause pause durations by GC