@ -9,6 +9,7 @@ import (
"github.com/grafana/loki/v3/pkg/logql"
"github.com/grafana/loki/v3/pkg/logql/syntax"
"github.com/grafana/loki/v3/pkg/querier/queryrange/queryrangebase"
v1 "github.com/grafana/loki/v3/pkg/storage/bloom/v1"
)
type Metrics struct {
@ -46,15 +47,15 @@ func NewMetrics(registerer prometheus.Registerer, metricsNamespace string) *Metr
}
type QueryMetrics struct {
receivedFilters prometheus . Histogram
receivedLabel Filters prometheus . Histogram
}
func NewMiddlewareQueryMetrics ( registerer prometheus . Registerer , metricsNamespace string ) * QueryMetrics {
return & QueryMetrics {
receivedFilters : promauto . With ( registerer ) . NewHistogram ( prometheus . HistogramOpts {
receivedLabel Filters : promauto . With ( registerer ) . NewHistogram ( prometheus . HistogramOpts {
Namespace : metricsNamespace ,
Name : "query_frontend_query_filters" ,
Help : "Number of filter s per query." ,
Name : "query_frontend_query_label_ filters" ,
Help : "Number of label matcher expression s per query." ,
Buckets : prometheus . ExponentialBuckets ( 1 , 2 , 9 ) , // 1 -> 256
} ) ,
}
@ -87,8 +88,8 @@ func QueryMetricsMiddleware(metrics *QueryMetrics) queryrangebase.Middleware {
}
}
filters := syntax . ExtractLineFilt ers( expr )
metrics . receivedFilters . Observe ( float64 ( len ( filters ) ) )
filters := v1 . ExtractTestableLabelMatch ers( expr )
metrics . receivedLabel Filters . Observe ( float64 ( len ( filters ) ) )
return next . Do ( ctx , req )
} )