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

View file

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