Skip to content

Commit b7f195b

Browse files
authored
log engine and block store headers in query stats (#6972)
Signed-off-by: Ahmed Hassan <[email protected]>
1 parent 1ef21a1 commit b7f195b

File tree

2 files changed

+28
-0
lines changed

2 files changed

+28
-0
lines changed

pkg/frontend/transport/handler.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ import (
2222
"github.com/weaveworks/common/httpgrpc"
2323
"google.golang.org/grpc/status"
2424

25+
"github.com/cortexproject/cortex/pkg/engine"
26+
"github.com/cortexproject/cortex/pkg/querier"
2527
querier_stats "github.com/cortexproject/cortex/pkg/querier/stats"
2628
"github.com/cortexproject/cortex/pkg/querier/tenantfederation"
2729
"github.com/cortexproject/cortex/pkg/querier/tripperware"
@@ -397,6 +399,14 @@ func (f *Handler) logQueryRequest(r *http.Request, queryString url.Values, sourc
397399
logMessage = append(logMessage, "user_agent", ua)
398400
}
399401

402+
if engineType := r.Header.Get(engine.TypeHeader); len(engineType) > 0 {
403+
logMessage = append(logMessage, "engine_type", engineType)
404+
}
405+
406+
if blockStoreType := r.Header.Get(querier.BlockStoreTypeHeader); len(blockStoreType) > 0 {
407+
logMessage = append(logMessage, "block_store_type", blockStoreType)
408+
}
409+
400410
if acceptEncoding := r.Header.Get("Accept-Encoding"); len(acceptEncoding) > 0 {
401411
logMessage = append(logMessage, "accept_encoding", acceptEncoding)
402412
}
@@ -509,6 +519,12 @@ func (f *Handler) reportQueryStats(r *http.Request, source, userID string, query
509519
if ua := r.Header.Get("User-Agent"); len(ua) > 0 {
510520
logMessage = append(logMessage, "user_agent", ua)
511521
}
522+
if engineType := r.Header.Get(engine.TypeHeader); len(engineType) > 0 {
523+
logMessage = append(logMessage, "engine_type", engineType)
524+
}
525+
if blockStoreType := r.Header.Get(querier.BlockStoreTypeHeader); len(blockStoreType) > 0 {
526+
logMessage = append(logMessage, "block_store_type", blockStoreType)
527+
}
512528
if priority, ok := stats.LoadPriority(); ok {
513529
logMessage = append(logMessage, "priority", priority)
514530
}

pkg/frontend/transport/handler_test.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ import (
2424
"github.com/weaveworks/common/user"
2525
"google.golang.org/grpc/codes"
2626

27+
"github.com/cortexproject/cortex/pkg/engine"
28+
"github.com/cortexproject/cortex/pkg/querier"
2729
querier_stats "github.com/cortexproject/cortex/pkg/querier/stats"
2830
"github.com/cortexproject/cortex/pkg/querier/tenantfederation"
2931
"github.com/cortexproject/cortex/pkg/querier/tripperware"
@@ -501,6 +503,16 @@ func TestReportQueryStatsFormat(t *testing.T) {
501503
expectedLog: `level=info msg="query stats" component=query-frontend method=GET path=/prometheus/api/v1/query response_time=1s query_wall_time_seconds=0 response_series_count=0 fetched_series_count=0 fetched_chunks_count=0 fetched_samples_count=0 fetched_chunks_bytes=0 fetched_data_bytes=0 split_queries=0 status_code=200 response_size=1000 samples_scanned=0 user_agent=Grafana`,
502504
source: tripperware.SourceAPI,
503505
},
506+
"should include engine type": {
507+
header: http.Header{http.CanonicalHeaderKey(engine.TypeHeader): []string{string(engine.Thanos)}},
508+
expectedLog: `level=info msg="query stats" component=query-frontend method=GET path=/prometheus/api/v1/query response_time=1s query_wall_time_seconds=0 response_series_count=0 fetched_series_count=0 fetched_chunks_count=0 fetched_samples_count=0 fetched_chunks_bytes=0 fetched_data_bytes=0 split_queries=0 status_code=200 response_size=1000 samples_scanned=0 engine_type=thanos`,
509+
source: tripperware.SourceAPI,
510+
},
511+
"should include block store type": {
512+
header: http.Header{http.CanonicalHeaderKey(querier.BlockStoreTypeHeader): []string{"parquet"}},
513+
expectedLog: `level=info msg="query stats" component=query-frontend method=GET path=/prometheus/api/v1/query response_time=1s query_wall_time_seconds=0 response_series_count=0 fetched_series_count=0 fetched_chunks_count=0 fetched_samples_count=0 fetched_chunks_bytes=0 fetched_data_bytes=0 split_queries=0 status_code=200 response_size=1000 samples_scanned=0 block_store_type=parquet`,
514+
source: tripperware.SourceAPI,
515+
},
504516
"should include response error": {
505517
responseErr: errors.New("foo_err"),
506518
expectedLog: `level=error msg="query stats" component=query-frontend method=GET path=/prometheus/api/v1/query response_time=1s query_wall_time_seconds=0 response_series_count=0 fetched_series_count=0 fetched_chunks_count=0 fetched_samples_count=0 fetched_chunks_bytes=0 fetched_data_bytes=0 split_queries=0 status_code=200 response_size=1000 samples_scanned=0 error=foo_err`,

0 commit comments

Comments
 (0)