func doStats(s *server.Server, w http.ResponseWriter, req *http.Request) (interface{}, errors.Error) { acctStore := s.AccountingStore() reg := acctStore.MetricRegistry() switch req.Method { case "GET": stats := make(map[string]interface{}) for name, metric := range reg.Counters() { addMetricData(name, stats, getMetricData(metric)) } for name, metric := range reg.Gauges() { addMetricData(name, stats, getMetricData(metric)) } for name, metric := range reg.Timers() { addMetricData(name, stats, getMetricData(metric)) } for name, metric := range reg.Meters() { addMetricData(name, stats, getMetricData(metric)) } for name, metric := range reg.Histograms() { addMetricData(name, stats, getMetricData(metric)) } return stats, nil default: return nil, nil } }
func doStat(s *server.Server, w http.ResponseWriter, req *http.Request) (interface{}, errors.Error) { vars := mux.Vars(req) name := vars["stat"] acctStore := s.AccountingStore() reg := acctStore.MetricRegistry() switch req.Method { case "GET": metric := reg.Get(name) if metric != nil { return getMetricData(metric), nil } else { return nil, nil } case "DELETE": return nil, reg.Unregister(name) default: return nil, nil } }