aboutsummaryrefslogtreecommitdiffstats
path: root/http/http.go
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2020-01-12 11:18:14 +0100
committerMartin Polden <mpolden@mpolden.no>2020-01-12 11:33:09 +0100
commit0353ae6a9e6d39d39ea4a8f754ae27fd99f84166 (patch)
treebd0e649c2a87678ea80abd7d8ce11adee040ea22 /http/http.go
parentaa4ed6f02282a7269ae6c2f8e078f34515e4a5b9 (diff)
Support resolution of request data points
Diffstat (limited to 'http/http.go')
-rw-r--r--http/http.go14
1 files changed, 13 insertions, 1 deletions
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)
}