Metrics API: Use jsoniter for JSON encoding (#30250)
* QueryMetricsV2: Stream response Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com> * API: Use jsoniter instead of standard JSON package Signed-off-by: Arve Knudsen <arve.knudsen@gmail.com>
This commit is contained in:
+7
-7
@@ -16,22 +16,22 @@ import (
|
||||
"github.com/grafana/grafana/pkg/util"
|
||||
)
|
||||
|
||||
// QueryMetricsV2 returns query metrics
|
||||
// QueryMetricsV2 returns query metrics.
|
||||
// POST /api/ds/query DataSource query w/ expressions
|
||||
func (hs *HTTPServer) QueryMetricsV2(c *models.ReqContext, reqDto dtos.MetricRequest) Response {
|
||||
if len(reqDto.Queries) == 0 {
|
||||
func (hs *HTTPServer) QueryMetricsV2(c *models.ReqContext, reqDTO dtos.MetricRequest) Response {
|
||||
if len(reqDTO.Queries) == 0 {
|
||||
return Error(400, "No queries found in query", nil)
|
||||
}
|
||||
|
||||
request := &tsdb.TsdbQuery{
|
||||
TimeRange: tsdb.NewTimeRange(reqDto.From, reqDto.To),
|
||||
Debug: reqDto.Debug,
|
||||
TimeRange: tsdb.NewTimeRange(reqDTO.From, reqDTO.To),
|
||||
Debug: reqDTO.Debug,
|
||||
User: c.SignedInUser,
|
||||
}
|
||||
|
||||
hasExpr := false
|
||||
var ds *models.DataSource
|
||||
for i, query := range reqDto.Queries {
|
||||
for i, query := range reqDTO.Queries {
|
||||
hs.log.Debug("Processing metrics query", "query", query)
|
||||
name := query.Get("datasource").MustString("")
|
||||
if name == expr.DatasourceName {
|
||||
@@ -95,7 +95,7 @@ func (hs *HTTPServer) QueryMetricsV2(c *models.ReqContext, reqDto dtos.MetricReq
|
||||
}
|
||||
}
|
||||
|
||||
return JSON(statusCode, &resp)
|
||||
return jsonStreaming(statusCode, resp)
|
||||
}
|
||||
|
||||
// QueryMetrics returns query metrics
|
||||
|
||||
Reference in New Issue
Block a user