101 lines
3.1 KiB
Markdown
101 lines
3.1 KiB
Markdown
|
golang-stats-api-handler
|
||
|
========================
|
||
|
|
||
|
Golang cpu, memory, gc, etc information api handler.
|
||
|
|
||
|
## Install
|
||
|
|
||
|
go get github.com/fukata/golang-stats-api-handler
|
||
|
|
||
|
## Example
|
||
|
|
||
|
```go
|
||
|
import (
|
||
|
"net/http"
|
||
|
"log"
|
||
|
"github.com/fukata/golang-stats-api-handler"
|
||
|
)
|
||
|
func main() {
|
||
|
http.HandleFunc("/api/stats", stats_api.Handler)
|
||
|
log.Fatal( http.ListenAndServe(":8080", nil) )
|
||
|
}
|
||
|
```
|
||
|
|
||
|
## Response
|
||
|
|
||
|
$ 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": [
|
||
|
0.196828,
|
||
|
2.027442,
|
||
|
0.181887,
|
||
|
0.312866
|
||
|
]
|
||
|
}
|
||
|
|
||
|
|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|
|
||
|
|
||
|
## Plugins
|
||
|
|
||
|
- Zabbix: [fukata/golang-stats-api-handler-zabbix-userparameter](https://github.com/fukata/golang-stats-api-handler-zabbix-userparameter)
|
||
|
- Munin: [fukata/golang-stats-api-handler-munin-plugin](https://github.com/fukata/golang-stats-api-handler-munin-plugin)
|