MCPcopy Index your code
hub / github.com/uber/aresdb / handleAQLInternal

Method handleAQLInternal

api/query_handler.go:91–237  ·  view source on GitHub ↗
(aqlRequest apiCom.AQLRequest, w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

89}
90
91func (handler *QueryHandler) handleAQLInternal(aqlRequest apiCom.AQLRequest, w http.ResponseWriter, r *http.Request) {
92 var err error
93 var duration time.Duration
94 var qcs []*query.AQLQueryContext
95 var statusCode int
96
97 defer func() {
98 var errStr string
99 if err != nil {
100 errStr = err.Error()
101 }
102
103 l := utils.GetQueryLogger().With(
104 "error", errStr,
105 "request", aqlRequest,
106 "queries_enabled_", aqlRequest.Body.Queries,
107 "duration", duration,
108 "statusCode", statusCode,
109 "contexts_enabled_", qcs,
110 "headers", r.Header,
111 )
112
113 if statusCode == http.StatusOK {
114 l.Info("All queries succeeded")
115 } else {
116 l.Error("Some of the queries finished with error")
117 }
118 }()
119
120 if aqlRequest.Query != "" {
121 // Override from query parameter
122 err = json.Unmarshal([]byte(aqlRequest.Query), &aqlRequest.Body)
123 if err != nil {
124 statusCode = http.StatusBadRequest
125 apiCom.RespondWithBadRequest(w, utils.APIError{
126 Code: http.StatusBadRequest,
127 Message: ErrMsgFailedToUnmarshalRequest,
128 Cause: err,
129 })
130 return
131 }
132 }
133
134 if aqlRequest.Body.Queries == nil {
135 statusCode = http.StatusBadRequest
136 apiCom.RespondWithBadRequest(w, utils.APIError{
137 Code: http.StatusBadRequest,
138 Message: ErrMsgMissingParameter,
139 })
140 return
141 }
142
143 returnHLL := aqlRequest.Accept == utils.HTTPContentTypeHyperLogLog
144 if aqlRequest.DeviceChoosingTimeout <= 0 {
145 aqlRequest.DeviceChoosingTimeout = -1
146 }
147
148 queryTimer := utils.GetRootReporter().GetTimer(utils.QueryLatency)

Callers 2

HandleAQLMethod · 0.95
HandleSQLMethod · 0.95

Calls 15

CompileMethod · 0.95
FindDeviceForQueryMethod · 0.95
ProcessQueryMethod · 0.95
ResultsRowsFlushedMethod · 0.95
ReportQueryContextMethod · 0.95
ReportErrorMethod · 0.95
ReportResultMethod · 0.95
RespondMethod · 0.95
GetStatusCodeMethod · 0.95
GetQueryLoggerFunction · 0.92
GetRootReporterFunction · 0.92

Tested by

no test coverage detected