Open
Description
Prometheus has different label implementations. Its stringlabels
can help Loki avoid allocation in its pipeline. This issue tracks the effort to migrate to the new Prometheus labels.Labels
signature to enable support for stringlabels
.
A prototype is available at https://github.com/jeschkies/loki/tree/karsten/stringlabels
Note: labels.Labels
is not an interface. stringlabels
are enabled with a build tag.
Tests
-
./pkg/analytics
-
./pkg/compactor
-
./pkg/distributor
refactor(stringlabels): Support stringlabels distributor tests #17123 -
./pkg/indexgateway
-
./pkg/logqlanalyzer
-
./pkg/kafka
refactor(stringlabels): Support stringlabels distributor tests #17123 -
./pkg/ingester
-
./pkg/loghttp
-
./pkg/ruler
-
./pkg/runtime
-
./pkg/storage
-
./pkg/pattern
-
./pkg/querier
-
./pkg/engine
-
./pkg/logproto
-
./pkg/logqlmodel
-
./pkg/queue
-
./pkg/chunkenc
-
./pkg/dataobj
-
./pkg/logql
-
./pkg/push
Production Code
-
filter.FilterFunc
refactor(stringlabels): Support stringlabels in filter.Func #17233 -
log.StreamPipeline
refactor(stringlabels): Support stringlabels in log.StreamPipeline #17216 -
./pkg/logproto
-
Clients don't have to support./client
stringlabels
-
./pkg/querier
refactor(stringlabels): Support stringlabels in querier #17238 -
./pkg/ingester
refactor(stringlabels): Support stringlabels in ingester #17243 -
./pkg/storage
refactor(stringlabels): Support stringlabels in storage. #18103 -
./pkg/logql
refactor(stringlabels): Support stringlabels inlogql/log
package #17838 -
./pkg/chunkenc
refactor(stringlabels): Support stringlabels in chunkenc #17263 -
./pkg/distributor
-
./pkg/dataobj