diff --git a/util/stats/query_stats.go b/util/stats/query_stats.go index 8c75c6568a..a23be41b5b 100644 --- a/util/stats/query_stats.go +++ b/util/stats/query_stats.go @@ -61,9 +61,9 @@ type QueryStats struct { ExecTotalTime float64 `json:"execTotalTime"` } -// MakeQueryStats makes a QueryStats struct with all QueryTimings found in the +// NewQueryStats makes a QueryStats struct with all QueryTimings found in the // given TimerGroup. -func MakeQueryStats(tg *TimerGroup) *QueryStats { +func NewQueryStats(tg *TimerGroup) *QueryStats { var qs QueryStats for s, timer := range tg.timers { diff --git a/web/api/v1/api.go b/web/api/v1/api.go index d1b0588477..825e8db729 100644 --- a/web/api/v1/api.go +++ b/web/api/v1/api.go @@ -171,8 +171,8 @@ func (api *API) Register(r *route.Router) { } type queryData struct { - ResultType promql.ValueType `json:"resultType"` - Result promql.Value `json:"result"` + ResultType promql.ValueType `json:"resultType"` + Result promql.Value `json:"result"` Stats *stats.QueryStats `json:"stats,omitempty"` } @@ -221,9 +221,17 @@ func (api *API) query(r *http.Request) (interface{}, *apiError) { } return nil, &apiError{errorExec, res.Err} } + + // Optional stats field in response if parameter "stats" is not empty. + var qs *stats.QueryStats + if r.FormValue("stats") != "" { + qs = stats.NewQueryStats(qry.Stats()) + } + return &queryData{ ResultType: res.Value.Type(), Result: res.Value, + Stats: qs, }, nil } @@ -289,7 +297,7 @@ func (api *API) queryRange(r *http.Request) (interface{}, *apiError) { // Optional stats field in response if parameter "stats" is not empty. var qs *stats.QueryStats if r.FormValue("stats") != "" { - qs = stats.MakeQueryStats(qry.Stats()) + qs = stats.NewQueryStats(qry.Stats()) } return &queryData{