@@ -213,24 +213,34 @@ func NewHandler(endpoints Endpoints, upstreamCA []byte, upstreamCert *stdtls.Cer
213
213
}
214
214
}
215
215
r .Group (func (r chi.Router ) {
216
+ r .Use (func (handler http.Handler ) http.Handler {
217
+ return server .InjectLabelsCtx (
218
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "query" },
219
+ handler ,
220
+ )
221
+ })
216
222
r .Use (c .queryMiddlewares ... )
217
223
r .Use (server .StripTenantPrefix ("/api/metrics/v1" ))
218
224
r .Handle (QueryRoute ,
219
225
otelhttp .WithRouteTag (
220
226
c .spanRoutePrefix + QueryRoute ,
221
- server .InjectLabelsCtx (
222
- prometheus.Labels {"group" : "metricsv1" , "handler" : "query" },
223
- proxyQuery ,
224
- ),
227
+ proxyQuery ,
225
228
),
226
229
)
230
+ })
231
+ r .Group (func (r chi.Router ) {
232
+ r .Use (func (handler http.Handler ) http.Handler {
233
+ return server .InjectLabelsCtx (
234
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "query_range" },
235
+ handler ,
236
+ )
237
+ })
238
+ r .Use (c .queryMiddlewares ... )
239
+ r .Use (server .StripTenantPrefix ("/api/metrics/v1" ))
227
240
r .Handle (QueryRangeRoute ,
228
241
otelhttp .WithRouteTag (
229
242
c .spanRoutePrefix + QueryRangeRoute ,
230
- server .InjectLabelsCtx (
231
- prometheus.Labels {"group" : "metricsv1" , "handler" : "query_range" },
232
- proxyQuery ,
233
- ),
243
+ proxyQuery ,
234
244
),
235
245
)
236
246
})
@@ -258,45 +268,69 @@ func NewHandler(endpoints Endpoints, upstreamCA []byte, upstreamCert *stdtls.Cer
258
268
}
259
269
}
260
270
r .Group (func (r chi.Router ) {
271
+ r .Use (func (handler http.Handler ) http.Handler {
272
+ return server .InjectLabelsCtx (
273
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "series" },
274
+ handler ,
275
+ )
276
+ })
261
277
r .Use (c .readMiddlewares ... )
262
278
r .Use (server .StripTenantPrefix ("/api/metrics/v1" ))
263
- r .Handle (RulesRoute , otelhttp .WithRouteTag (c .spanRoutePrefix + RulesRoute , proxyRead ))
264
279
r .Handle (SeriesRoute ,
265
280
otelhttp .WithRouteTag (
266
281
c .spanRoutePrefix + SeriesRoute ,
267
- server .InjectLabelsCtx (
268
- prometheus.Labels {"group" : "metricsv1" , "handler" : "series" },
269
- proxyRead ,
270
- ),
282
+ proxyRead ,
271
283
),
272
284
)
285
+ })
286
+ r .Group (func (r chi.Router ) {
287
+ r .Use (func (handler http.Handler ) http.Handler {
288
+ return server .InjectLabelsCtx (
289
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "label_names" },
290
+ handler ,
291
+ )
292
+ })
293
+ r .Use (c .readMiddlewares ... )
294
+ r .Use (server .StripTenantPrefix ("/api/metrics/v1" ))
273
295
r .Handle (LabelNamesRoute ,
274
296
otelhttp .WithRouteTag (
275
297
c .spanRoutePrefix + LabelNamesRoute ,
276
- server .InjectLabelsCtx (
277
- prometheus.Labels {"group" : "metricsv1" , "handler" : "label_names" },
278
- proxyRead ,
279
- ),
298
+ proxyRead ,
280
299
),
281
300
)
301
+ })
302
+ r .Group (func (r chi.Router ) {
303
+ r .Use (func (handler http.Handler ) http.Handler {
304
+ return server .InjectLabelsCtx (
305
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "label_values" },
306
+ handler ,
307
+ )
308
+ })
309
+ r .Use (c .readMiddlewares ... )
310
+ r .Use (server .StripTenantPrefix ("/api/metrics/v1" ))
282
311
r .Handle (LabelValuesRoute ,
283
312
otelhttp .WithRouteTag (
284
313
c .spanRoutePrefix + LabelValuesRoute ,
285
- server .InjectLabelsCtx (
286
- prometheus.Labels {"group" : "metricsv1" , "handler" : "label_values" },
287
- proxyRead ,
288
- ),
314
+ proxyRead ,
289
315
),
290
316
)
317
+ })
318
+
319
+ r .Group (func (r chi.Router ) {
320
+ r .Use (func (handler http.Handler ) http.Handler {
321
+ return server .InjectLabelsCtx (
322
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "rules" },
323
+ handler ,
324
+ )
325
+ })
326
+ r .Use (c .readMiddlewares ... )
327
+ r .Use (server .StripTenantPrefix ("/api/metrics/v1" ))
291
328
// Thanos Query Rules API supports matchers from v0.25 so the WithEnforceTenancyOnMatchers
292
329
// middleware will not work here if prior versions are used.
293
330
r .Handle (RulesRoute ,
294
331
otelhttp .WithRouteTag (
295
332
c .spanRoutePrefix + RulesRoute ,
296
- server .InjectLabelsCtx (
297
- prometheus.Labels {"group" : "metricsv1" , "handler" : "rules" },
298
- proxyRead ,
299
- ),
333
+ proxyRead ,
300
334
),
301
335
)
302
336
})
@@ -319,15 +353,18 @@ func NewHandler(endpoints Endpoints, upstreamCA []byte, upstreamCert *stdtls.Cer
319
353
}
320
354
}
321
355
r .Group (func (r chi.Router ) {
356
+ r .Use (func (handler http.Handler ) http.Handler {
357
+ return server .InjectLabelsCtx (
358
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "ui" },
359
+ handler ,
360
+ )
361
+ })
322
362
r .Use (c .uiMiddlewares ... )
323
363
r .Use (server .StripTenantPrefix ("/api/metrics/v1" ))
324
364
r .Mount (UIRoute ,
325
365
otelhttp .WithRouteTag (
326
366
c .spanRoutePrefix + UIRoute ,
327
- server .InjectLabelsCtx (
328
- prometheus.Labels {"group" : "metricsv1" , "handler" : "ui" },
329
- uiProxy ,
330
- ),
367
+ uiProxy ,
331
368
),
332
369
)
333
370
})
@@ -357,15 +394,18 @@ func NewHandler(endpoints Endpoints, upstreamCA []byte, upstreamCert *stdtls.Cer
357
394
}
358
395
}
359
396
r .Group (func (r chi.Router ) {
397
+ r .Use (func (handler http.Handler ) http.Handler {
398
+ return server .InjectLabelsCtx (
399
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "receive" },
400
+ handler ,
401
+ )
402
+ })
360
403
r .Use (c .writeMiddlewares ... )
361
404
r .Use (server .StripTenantPrefix ("/api/metrics/v1" ))
362
405
r .Handle (ReceiveRoute ,
363
406
otelhttp .WithRouteTag (
364
407
c .spanRoutePrefix + ReceiveRoute ,
365
- server .InjectLabelsCtx (
366
- prometheus.Labels {"group" : "metricsv1" , "handler" : "receive" },
367
- proxyWrite ,
368
- ),
408
+ proxyWrite ,
369
409
),
370
410
)
371
411
})
@@ -381,29 +421,35 @@ func NewHandler(endpoints Endpoints, upstreamCA []byte, upstreamCert *stdtls.Cer
381
421
rh := rulesHandler {client : client , logger : c .logger , tenantLabel : c .tenantLabel }
382
422
383
423
r .Group (func (r chi.Router ) {
424
+ r .Use (func (handler http.Handler ) http.Handler {
425
+ return server .InjectLabelsCtx (
426
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "rules" },
427
+ handler ,
428
+ )
429
+ })
384
430
r .Use (c .uiMiddlewares ... )
385
431
r .Use (server .StripTenantPrefix ("/api/metrics/v1" ))
386
432
r .Method (http .MethodGet , RulesRawRoute ,
387
433
otelhttp .WithRouteTag (
388
434
c .spanRoutePrefix + RulesRawRoute ,
389
- server .InjectLabelsCtx (
390
- prometheus.Labels {"group" : "metricsv1" , "handler" : "rules" },
391
- http .HandlerFunc (rh .get ),
392
- ),
435
+ http .HandlerFunc (rh .get ),
393
436
),
394
437
)
395
438
})
396
439
397
440
r .Group (func (r chi.Router ) {
441
+ r .Use (func (handler http.Handler ) http.Handler {
442
+ return server .InjectLabelsCtx (
443
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "rules-raw" },
444
+ handler ,
445
+ )
446
+ })
398
447
r .Use (c .writeMiddlewares ... )
399
448
r .Use (server .StripTenantPrefix ("/api/metrics/v1" ))
400
449
r .Method (http .MethodPut , RulesRawRoute ,
401
450
otelhttp .WithRouteTag (
402
451
c .spanRoutePrefix + RulesRawRoute ,
403
- server .InjectLabelsCtx (
404
- prometheus.Labels {"group" : "metricsv1" , "handler" : "rules-raw" },
405
- http .HandlerFunc (rh .put ),
406
- ),
452
+ http .HandlerFunc (rh .put ),
407
453
),
408
454
)
409
455
})
@@ -434,41 +480,50 @@ func NewHandler(endpoints Endpoints, upstreamCA []byte, upstreamCert *stdtls.Cer
434
480
}
435
481
436
482
r .Group (func (r chi.Router ) {
483
+ r .Use (func (handler http.Handler ) http.Handler {
484
+ return server .InjectLabelsCtx (
485
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "alerts" },
486
+ handler ,
487
+ )
488
+ })
437
489
r .Use (c .alertmanagerMiddleware .alertsReadMiddlewares ... )
438
490
r .Use (server .StripTenantPrefixWithSubRoute ("/api/metrics/v1" , "/am" ))
439
491
440
492
r .Method (http .MethodGet , AlertmanagerAlertsRoute , otelhttp .WithRouteTag (
441
493
c .spanRoutePrefix + AlertmanagerAlertsRoute ,
442
- server .InjectLabelsCtx (
443
- prometheus.Labels {"group" : "metricsv1" , "handler" : "alerts" },
444
- proxyAlertmanager ,
445
- ),
494
+ proxyAlertmanager ,
446
495
))
447
496
})
448
497
449
498
r .Group (func (r chi.Router ) {
499
+ r .Use (func (handler http.Handler ) http.Handler {
500
+ return server .InjectLabelsCtx (
501
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "silences" },
502
+ handler ,
503
+ )
504
+ })
450
505
r .Use (c .alertmanagerMiddleware .silenceReadMiddlewares ... )
451
506
r .Use (server .StripTenantPrefixWithSubRoute ("/api/metrics/v1" , "/am" ))
452
507
453
508
r .Method (http .MethodGet , AlertmanagerSilencesRoute , otelhttp .WithRouteTag (
454
509
c .spanRoutePrefix + AlertmanagerSilencesRoute ,
455
- server .InjectLabelsCtx (
456
- prometheus.Labels {"group" : "metricsv1" , "handler" : "silences" },
457
- proxyAlertmanager ,
458
- ),
510
+ proxyAlertmanager ,
459
511
))
460
512
})
461
513
462
514
r .Group (func (r chi.Router ) {
515
+ r .Use (func (handler http.Handler ) http.Handler {
516
+ return server .InjectLabelsCtx (
517
+ prometheus.Labels {"group" : "metricsv1" , "handler" : "silences" },
518
+ handler ,
519
+ )
520
+ })
463
521
r .Use (c .alertmanagerMiddleware .silenceWriteMiddlewares ... )
464
522
r .Use (server .StripTenantPrefixWithSubRoute ("/api/metrics/v1" , "/am" ))
465
523
466
524
r .Method (http .MethodPost , AlertmanagerSilencesRoute , otelhttp .WithRouteTag (
467
525
c .spanRoutePrefix + AlertmanagerSilencesRoute ,
468
- server .InjectLabelsCtx (
469
- prometheus.Labels {"group" : "metricsv1" , "handler" : "silences" },
470
- proxyAlertmanager ,
471
- ),
526
+ proxyAlertmanager ,
472
527
))
473
528
})
474
529
}
0 commit comments