in metrics.go [144:166]
func (mh MetricsHandler) handleMetricsSave(w http.ResponseWriter, r *http.Request) {
if r.Body == nil {
w.WriteHeader(http.StatusBadRequest)
writeError(w, "no response body", errors.New("nil body"))
return
}
decoder := json.NewDecoder(r.Body)
m := new(Metric)
if err := decoder.Decode(m); err != nil {
w.WriteHeader(http.StatusBadRequest)
writeError(w, "unable to decode body", err)
return
}
log.Printf("Recording metric %v", m)
if err := mh.RecordMetric(m); err != nil {
w.WriteHeader(http.StatusBadRequest)
writeError(w, "error recording metric", err)
} else {
respondWithMetric(w, *m)
}
}