diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b1d6411be..460d28ccf3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,6 +16,11 @@ We use _breaking :warning:_ to mark changes that are not backward compatible (re - [#3700](https://github.com/thanos-io/thanos/pull/3700) ui: make old bucket viewer UI work with vanilla Prometheus blocks - [#2641](https://github.com/thanos-io/thanos/issues/2641) Query Frontend: Added `--query-range.request-downsampled` flag enabling additional queries for downsampled data in case of empty or incomplete response to range request. +- [#3792](https://github.com/thanos-io/thanos/pull/3792) Receiver: Added `--tsdb.allow-overlapping-blocks` flag to allow overlapping tsdb blocks and enable vertical compaction + +### Fixed + +- [#3773](https://github.com/thanos-io/thanos/pull/3773) Compact: Pad compaction planner size check ### Changed diff --git a/cmd/thanos/receive.go b/cmd/thanos/receive.go index b90779a008..0b63ac211a 100644 --- a/cmd/thanos/receive.go +++ b/cmd/thanos/receive.go @@ -87,6 +87,7 @@ func registerReceive(app *extkingpin.App) { tsdbMinBlockDuration := extkingpin.ModelDuration(cmd.Flag("tsdb.min-block-duration", "Min duration for local TSDB blocks").Default("2h").Hidden()) tsdbMaxBlockDuration := extkingpin.ModelDuration(cmd.Flag("tsdb.max-block-duration", "Max duration for local TSDB blocks").Default("2h").Hidden()) + tsdbAllowOverlappingBlocks := cmd.Flag("tsdb.allow-overlapping-blocks", "Allow overlapping blocks, which in turn enables vertical compaction and vertical query merge.").Default("false").Bool() walCompression := cmd.Flag("tsdb.wal-compression", "Compress the tsdb WAL.").Default("true").Bool() noLockFile := cmd.Flag("tsdb.no-lockfile", "Do not create lockfile in TSDB data directory. In any case, the lockfiles will be deleted on next startup.").Default("false").Bool() @@ -108,11 +109,12 @@ func registerReceive(app *extkingpin.App) { } tsdbOpts := &tsdb.Options{ - MinBlockDuration: int64(time.Duration(*tsdbMinBlockDuration) / time.Millisecond), - MaxBlockDuration: int64(time.Duration(*tsdbMaxBlockDuration) / time.Millisecond), - RetentionDuration: int64(time.Duration(*retention) / time.Millisecond), - NoLockfile: *noLockFile, - WALCompression: *walCompression, + MinBlockDuration: int64(time.Duration(*tsdbMinBlockDuration) / time.Millisecond), + MaxBlockDuration: int64(time.Duration(*tsdbMaxBlockDuration) / time.Millisecond), + RetentionDuration: int64(time.Duration(*retention) / time.Millisecond), + NoLockfile: *noLockFile, + WALCompression: *walCompression, + AllowOverlappingBlocks: *tsdbAllowOverlappingBlocks, } // Local is empty, so try to generate a local endpoint diff --git a/docs/components/receive.md b/docs/components/receive.md index d937879984..28ca10d19d 100644 --- a/docs/components/receive.md +++ b/docs/components/receive.md @@ -178,6 +178,9 @@ Flags: --receive.replication-factor=1 How many times to replicate incoming write requests. + --tsdb.allow-overlapping-blocks + Allow overlapping blocks, which in turn enables + vertical compaction and vertical query merge. --tsdb.wal-compression Compress the tsdb WAL. --tsdb.no-lockfile Do not create lockfile in TSDB data directory. In any case, the lockfiles will be deleted on