From 0353ae6a9e6d39d39ea4a8f754ae27fd99f84166 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Sun, 12 Jan 2020 11:18:14 +0100 Subject: Support resolution of request data points --- http/http.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'http/http.go') diff --git a/http/http.go b/http/http.go index 26e5b25..b7f1a86 100644 --- a/http/http.go +++ b/http/http.go @@ -113,6 +113,14 @@ func countFrom(r *http.Request) (int, error) { return n, nil } +func resolutionFrom(r *http.Request) (time.Duration, error) { + param := r.URL.Query().Get("resolution") + if param == "" { + return time.Minute, nil + } + return time.ParseDuration(param) +} + func (s *Server) cacheHandler(w http.ResponseWriter, r *http.Request) (interface{}, *httpError) { count, err := countFrom(r) if err != nil { @@ -165,7 +173,11 @@ func (s *Server) logHandler(w http.ResponseWriter, r *http.Request) (interface{} } func (s *Server) metricHandler(w http.ResponseWriter, r *http.Request) (interface{}, *httpError) { - lstats, err := s.logger.Stats() + resolution, err := resolutionFrom(r) + if err != nil { + return nil, newHTTPBadRequest(err) + } + lstats, err := s.logger.Stats(resolution) if err != nil { return nil, newHTTPError(err) } -- cgit v1.2.3