From ab2721d7ee7cb573baf53905df8fd3e9a676cbf1 Mon Sep 17 00:00:00 2001 From: Salva Corts Date: Mon, 11 Nov 2024 12:17:23 +0100 Subject: [PATCH] fix(blooms): Fix strategy logger and add task test (#14857) --- .../planner/strategies/chunksize.go | 2 +- .../planner/strategies/splitkeyspace.go | 2 +- pkg/bloombuild/protos/compat_test.go | 50 +++++++++++++++++++ 3 files changed, 52 insertions(+), 2 deletions(-) create mode 100644 pkg/bloombuild/protos/compat_test.go diff --git a/pkg/bloombuild/planner/strategies/chunksize.go b/pkg/bloombuild/planner/strategies/chunksize.go index 21f473908dd99..91f7223440d74 100644 --- a/pkg/bloombuild/planner/strategies/chunksize.go +++ b/pkg/bloombuild/planner/strategies/chunksize.go @@ -54,7 +54,7 @@ func (s *ChunkSizeStrategy) Plan( targetTaskSize := s.limits.BloomTaskTargetSeriesChunksSizeBytes(tenant) logger := log.With(s.logger, "table", table.Addr(), "tenant", tenant) - level.Debug(s.logger).Log("msg", "loading work for tenant", "target task size", humanize.Bytes(targetTaskSize)) + level.Debug(logger).Log("msg", "loading work for tenant", "target task size", humanize.Bytes(targetTaskSize)) // Determine which TSDBs have gaps and need to be processed. tsdbsWithGaps, err := gapsBetweenTSDBsAndMetas(v1.NewBounds(0, math.MaxUint64), tsdbs, metas) diff --git a/pkg/bloombuild/planner/strategies/splitkeyspace.go b/pkg/bloombuild/planner/strategies/splitkeyspace.go index 2e799d1ed4903..8e68bbc4146eb 100644 --- a/pkg/bloombuild/planner/strategies/splitkeyspace.go +++ b/pkg/bloombuild/planner/strategies/splitkeyspace.go @@ -50,7 +50,7 @@ func (s *SplitKeyspaceStrategy) Plan( ownershipRanges := SplitFingerprintKeyspaceByFactor(splitFactor) logger := log.With(s.logger, "table", table.Addr(), "tenant", tenant) - level.Debug(s.logger).Log("msg", "loading work for tenant", "splitFactor", splitFactor) + level.Debug(logger).Log("msg", "loading work for tenant", "splitFactor", splitFactor) var tasks []*protos.Task for _, ownershipRange := range ownershipRanges { diff --git a/pkg/bloombuild/protos/compat_test.go b/pkg/bloombuild/protos/compat_test.go new file mode 100644 index 0000000000000..9acfdd800241d --- /dev/null +++ b/pkg/bloombuild/protos/compat_test.go @@ -0,0 +1,50 @@ +package protos + +import ( + "testing" + + "github.com/stretchr/testify/require" + + "github.com/grafana/loki/v3/pkg/bloombuild/planner/plannertest" + v1 "github.com/grafana/loki/v3/pkg/storage/bloom/v1" + "github.com/grafana/loki/v3/pkg/storage/stores/shipper/bloomshipper" + "github.com/grafana/loki/v3/pkg/storage/stores/shipper/indexshipper/tsdb" +) + +func TestTaskToProtoTask(t *testing.T) { + // Hack to set exportTSInSecs to true + idx := plannertest.TsdbID(1234) + idx, _ = tsdb.ParseSingleTenantTSDBPath(idx.Name()) + + in := NewTask(plannertest.TestTable, "fake", v1.NewBounds(0, 100), idx, []Gap{ + { + Bounds: v1.NewBounds(0, 25), + Series: plannertest.GenSeriesWithStep(v1.NewBounds(0, 10), 2), + Blocks: []bloomshipper.BlockRef{ + plannertest.GenBlockRef(0, 2), + plannertest.GenBlockRef(4, 10), + }, + }, + { + Bounds: v1.NewBounds(30, 50), + Series: plannertest.GenSeriesWithStep(v1.NewBounds(30, 40), 2), + Blocks: []bloomshipper.BlockRef{ + plannertest.GenBlockRef(30, 50), + }, + }, + { + Bounds: v1.NewBounds(60, 100), + Series: plannertest.GenSeriesWithStep(v1.NewBounds(60, 70), 5), + Blocks: []bloomshipper.BlockRef{ + plannertest.GenBlockRef(60, 70), + plannertest.GenBlockRef(71, 90), + plannertest.GenBlockRef(91, 100), + }, + }, + }) + + out, err := FromProtoTask(in.ToProtoTask()) + require.NoError(t, err) + + require.Equal(t, in, out) +}