Skip to content

Commit 3f371db

Browse files
committed
Add more op label values to cortex_query_frontend_queries_total metric
Signed-off-by: SungJin1212 <tjdwls1201@gmail.com>
1 parent 72dfec3 commit 3f371db

File tree

3 files changed

+87
-7
lines changed

3 files changed

+87
-7
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
* [FEATURE] Query Frontend: Support a metadata federated query when `-tenant-federation.enabled=true`. #6461
2323
* [FEATURE] Query Frontend: Support an exemplar federated query when `-tenant-federation.enabled=true`. #6455
2424
* [FEATURE] Ingester/StoreGateway: Add support for cache regex query matchers via `-ingester.matchers-cache-max-items` and `-blocks-storage.bucket-store.matchers-cache-max-items`. #6477 #6491
25+
* [ENHANCEMENT] Query Frontend: Add more operation label values to the `cortex_query_frontend_queries_total` metric. #6518
2526
* [ENHANCEMENT] Query Frontend: Add a `source` label to query stat metrics. #6470
2627
* [ENHANCEMENT] Query Frontend: Add a flag `-tenant-federation.max-tenant` to limit the number of tenants for federated query. #6493
2728
* [ENHANCEMENT] Querier: Add a `-tenant-federation.max-concurrent` flags to configure the number of worker processing federated query and add a `cortex_querier_federated_tenants_per_query` histogram to track the number of tenants per query. #6449

pkg/querier/tripperware/roundtrip.go

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,17 @@ import (
3737
util_log "github.com/cortexproject/cortex/pkg/util/log"
3838
)
3939

40+
const (
41+
opTypeQuery = "query"
42+
opTypeQueryRange = "query_range"
43+
opTypeSeries = "series"
44+
opTypeRemoteRead = "remote_read"
45+
opTypeLabelNames = "label_names"
46+
opTypeLabelValues = "label_values"
47+
opTypeMetadata = "metadata"
48+
opTypeQueryExemplars = "query_exemplars"
49+
)
50+
4051
// HandlerFunc is like http.HandlerFunc, but for Handler.
4152
type HandlerFunc func(context.Context, Request) (Response, error)
4253

@@ -140,12 +151,28 @@ func NewQueryTripperware(
140151
isQuery := strings.HasSuffix(r.URL.Path, "/query")
141152
isQueryRange := strings.HasSuffix(r.URL.Path, "/query_range")
142153
isSeries := strings.HasSuffix(r.URL.Path, "/series")
143-
144-
op := "query"
145-
if isQueryRange {
146-
op = "query_range"
147-
} else if isSeries {
148-
op = "series"
154+
isRemoteRead := strings.HasSuffix(r.URL.Path, "/read")
155+
isLabelNames := strings.HasSuffix(r.URL.Path, "/labels")
156+
isLabelValues := strings.HasSuffix(r.URL.Path, "/values")
157+
isMetadata := strings.HasSuffix(r.URL.Path, "/metadata")
158+
isQueryExemplars := strings.HasSuffix(r.URL.Path, "/query_exemplars")
159+
160+
op := opTypeQuery
161+
switch {
162+
case isQueryRange:
163+
op = opTypeQueryRange
164+
case isSeries:
165+
op = opTypeSeries
166+
case isRemoteRead:
167+
op = opTypeRemoteRead
168+
case isLabelNames:
169+
op = opTypeLabelNames
170+
case isLabelValues:
171+
op = opTypeLabelValues
172+
case isMetadata:
173+
op = opTypeMetadata
174+
case isQueryExemplars:
175+
op = opTypeQueryExemplars
149176
}
150177

151178
tenantIDs, err := tenant.TenantIDs(r.Context())

pkg/querier/tripperware/roundtrip_test.go

Lines changed: 53 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,10 @@ const (
3434
querySubqueryStepSizeTooSmall = "/api/v1/query?query=up%5B30d%3A%5D"
3535
queryExceedsMaxQueryLength = "/api/v1/query?query=up%5B90d%5D"
3636
seriesQuery = "/api/v1/series?match[]"
37+
remoteReadQuery = "/api/v1/read"
38+
labelNamesQuery = "/api/v1/labels"
39+
labelValuesQuery = "/api/v1/label/label/values"
40+
metadataQuery = "/api/v1/metadata"
3741

3842
responseBody = `{"status":"success","data":{"resultType":"matrix","result":[{"metric":{"foo":"bar"},"values":[[1536673680,"137"],[1536673780,"137"]]}]}}`
3943
instantResponseBody = `{"status":"success","data":{"resultType":"vector","result":[{"metric":{"foo":"bar"},"values":[[1536673680,"137"],[1536673780,"137"]]}]}}`
@@ -153,7 +157,7 @@ cortex_query_frontend_queries_total{op="query", source="api", user="1"} 1
153157
expectedMetric: `
154158
# HELP cortex_query_frontend_queries_total Total queries sent per tenant.
155159
# TYPE cortex_query_frontend_queries_total counter
156-
cortex_query_frontend_queries_total{op="query", source="api", user="1"} 1
160+
cortex_query_frontend_queries_total{op="query_exemplars", source="api", user="1"} 1
157161
`,
158162
},
159163
{
@@ -166,6 +170,54 @@ cortex_query_frontend_queries_total{op="query", source="api", user="1"} 1
166170
# HELP cortex_query_frontend_queries_total Total queries sent per tenant.
167171
# TYPE cortex_query_frontend_queries_total counter
168172
cortex_query_frontend_queries_total{op="series", source="api", user="1"} 1
173+
`,
174+
},
175+
{
176+
path: labelNamesQuery,
177+
expectedBody: "bar",
178+
limits: defaultOverrides,
179+
maxSubQuerySteps: 11000,
180+
userAgent: "dummyUserAgent/1.2",
181+
expectedMetric: `
182+
# HELP cortex_query_frontend_queries_total Total queries sent per tenant.
183+
# TYPE cortex_query_frontend_queries_total counter
184+
cortex_query_frontend_queries_total{op="label_names", source="api", user="1"} 1
185+
`,
186+
},
187+
{
188+
path: labelValuesQuery,
189+
expectedBody: "bar",
190+
limits: defaultOverrides,
191+
maxSubQuerySteps: 11000,
192+
userAgent: "dummyUserAgent/1.2",
193+
expectedMetric: `
194+
# HELP cortex_query_frontend_queries_total Total queries sent per tenant.
195+
# TYPE cortex_query_frontend_queries_total counter
196+
cortex_query_frontend_queries_total{op="label_values", source="api", user="1"} 1
197+
`,
198+
},
199+
{
200+
path: metadataQuery,
201+
expectedBody: "bar",
202+
limits: defaultOverrides,
203+
maxSubQuerySteps: 11000,
204+
userAgent: "dummyUserAgent/1.2",
205+
expectedMetric: `
206+
# HELP cortex_query_frontend_queries_total Total queries sent per tenant.
207+
# TYPE cortex_query_frontend_queries_total counter
208+
cortex_query_frontend_queries_total{op="metadata", source="api", user="1"} 1
209+
`,
210+
},
211+
{
212+
path: remoteReadQuery,
213+
expectedBody: "bar",
214+
limits: defaultOverrides,
215+
maxSubQuerySteps: 11000,
216+
userAgent: "dummyUserAgent/1.2",
217+
expectedMetric: `
218+
# HELP cortex_query_frontend_queries_total Total queries sent per tenant.
219+
# TYPE cortex_query_frontend_queries_total counter
220+
cortex_query_frontend_queries_total{op="remote_read", source="api", user="1"} 1
169221
`,
170222
},
171223
{

0 commit comments

Comments
 (0)