Go routine stat

This commit is contained in:
Cooper Lees 2014-09-25 08:34:27 -07:00
parent 1ae60da852
commit 17a6fefc3b
2 changed files with 7 additions and 0 deletions

View file

@ -9,6 +9,7 @@ import (
"io/ioutil"
"net/http"
"net/url"
"runtime"
"github.com/julienschmidt/httprouter"
@ -43,6 +44,8 @@ func (s *Server) stats(w http.ResponseWriter, r *http.Request, p httprouter.Para
var val interface{}
query := r.URL.Query()
stats.DefaultStats.GoRoutines = runtime.NumGoroutine()
if _, flatten := query["flatten"]; flatten {
val = stats.DefaultStats.Flattened()
} else {

View file

@ -73,6 +73,8 @@ type Stats struct {
ConnectionsAccepted uint64 `json:"Connections.Accepted"`
BytesTransmitted uint64 `json:"BytesTransmitted"`
GoRoutines int `json:"Runtime.GoRoutines"`
RequestsHandled uint64 `json:"Requests.Handled"`
RequestsErrored uint64 `json:"Requests.Errored"`
ClientErrors uint64 `json:"Requests.Bad"`
@ -105,6 +107,8 @@ func New(cfg config.StatsConfig) *Stats {
Started: time.Now(),
events: make(chan int, cfg.BufferSize),
GoRoutines: 0,
ipv4PeerEvents: make(chan int, cfg.BufferSize),
ipv6PeerEvents: make(chan int, cfg.BufferSize),
responseTimeEvents: make(chan time.Duration, cfg.BufferSize),