From 0c27d5acbc13339b4d1e1c0f4333647ee8a13595 Mon Sep 17 00:00:00 2001 From: Ankit Nayan Date: Sun, 8 Jan 2023 22:49:11 +0530 Subject: [PATCH] chore: better error handling --- ee/query-service/app/server.go | 21 +++++++++++++++------ pkg/query-service/app/server.go | 21 +++++++++++++++------ 2 files changed, 30 insertions(+), 12 deletions(-) diff --git a/ee/query-service/app/server.go b/ee/query-service/app/server.go index f6f1726b95..73426fbfa0 100644 --- a/ee/query-service/app/server.go +++ b/ee/query-service/app/server.go @@ -275,22 +275,31 @@ func extractDashboardMetaData(path string, r *http.Request) (map[string]interfac data := map[string]interface{}{} if path == pathToExtractBodyFrom && (r.Method == "POST") { - bodyBytes, _ := ioutil.ReadAll(r.Body) - r.Body.Close() // must close - r.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes)) - - json.Unmarshal(bodyBytes, &requestBody) + if r.Body != nil { + bodyBytes, err := ioutil.ReadAll(r.Body) + if err != nil { + return nil, false + } + r.Body.Close() // must close + r.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes)) + json.Unmarshal(bodyBytes, &requestBody) + } else { + return nil, false + } } else { return nil, false } compositeMetricQuery, compositeMetricQueryExists := requestBody["compositeMetricQuery"] - compositeMetricQueryMap := compositeMetricQuery.(map[string]interface{}) + signozMetricFound := false if compositeMetricQueryExists { + compositeMetricQueryMap := compositeMetricQuery.(map[string]interface{}) + signozMetricFound = telemetry.GetInstance().CheckSigNozMetrics(compositeMetricQueryMap) + queryType, queryTypeExists := compositeMetricQueryMap["queryType"] if queryTypeExists { data["queryType"] = queryType diff --git a/pkg/query-service/app/server.go b/pkg/query-service/app/server.go index d1772f6c36..e6222449e8 100644 --- a/pkg/query-service/app/server.go +++ b/pkg/query-service/app/server.go @@ -244,25 +244,34 @@ func extractDashboardMetaData(path string, r *http.Request) (map[string]interfac data := map[string]interface{}{} if path == pathToExtractBodyFrom && (r.Method == "POST") { - bodyBytes, _ := ioutil.ReadAll(r.Body) - r.Body.Close() // must close - r.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes)) - json.Unmarshal(bodyBytes, &requestBody) + if r.Body != nil { + bodyBytes, err := ioutil.ReadAll(r.Body) + if err != nil { + return nil, false + } + r.Body.Close() // must close + r.Body = ioutil.NopCloser(bytes.NewBuffer(bodyBytes)) + json.Unmarshal(bodyBytes, &requestBody) + } else { + return nil, false + } } else { return nil, false } compositeMetricQuery, compositeMetricQueryExists := requestBody["compositeMetricQuery"] - compositeMetricQueryMap := compositeMetricQuery.(map[string]interface{}) + signozMetricFound := false if compositeMetricQueryExists { + compositeMetricQueryMap := compositeMetricQuery.(map[string]interface{}) + signozMetricFound = telemetry.GetInstance().CheckSigNozMetrics(compositeMetricQueryMap) + queryType, queryTypeExists := compositeMetricQueryMap["queryType"] if queryTypeExists { data["queryType"] = queryType - } panelType, panelTypeExists := compositeMetricQueryMap["panelType"] if panelTypeExists {