From 53b0ff383bbd20e20289ff6e6ba90a8119e4e665 Mon Sep 17 00:00:00 2001 From: Ahmed Hassan <57634502+afhassan@users.noreply.github.com> Date: Mon, 2 Dec 2024 15:16:13 -0800 Subject: [PATCH] Log query requests in QFE before query execution (#6390) * log query string in QFE before executing query request Signed-off-by: Ahmed Hassan * fix formatting Signed-off-by: Ahmed Hassan --------- Signed-off-by: Ahmed Hassan --- pkg/frontend/transport/handler.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/pkg/frontend/transport/handler.go b/pkg/frontend/transport/handler.go index 19d65c302f..b4ecca59ee 100644 --- a/pkg/frontend/transport/handler.go +++ b/pkg/frontend/transport/handler.go @@ -225,16 +225,27 @@ func (f *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { r.Body = io.NopCloser(&buf) } + // Log request + if f.cfg.QueryStatsEnabled { + queryString = f.parseRequestQueryString(r, buf) + logMessage := append([]interface{}{ + "msg", "query request", + "component", "query-frontend", + "method", r.Method, + "path", r.URL.Path, + }, formatQueryString(queryString)...) + level.Info(util_log.WithContext(r.Context(), f.log)).Log(logMessage...) + } + startTime := time.Now() resp, err := f.roundTripper.RoundTrip(r) queryResponseTime := time.Since(startTime) - // Check whether we should parse the query string. + // Check if we need to parse the query string to avoid parsing twice. shouldReportSlowQuery := f.cfg.LogQueriesLongerThan != 0 && queryResponseTime > f.cfg.LogQueriesLongerThan - if shouldReportSlowQuery || f.cfg.QueryStatsEnabled { + if shouldReportSlowQuery && !f.cfg.QueryStatsEnabled { queryString = f.parseRequestQueryString(r, buf) } - if shouldReportSlowQuery { f.reportSlowQuery(r, queryString, queryResponseTime) }