From c4c3205d765deadc4dc9c0410306360038dee51e Mon Sep 17 00:00:00 2001 From: Paul Gier Date: Wed, 25 Oct 2017 19:24:49 -0500 Subject: [PATCH] storage/tsdb: check that max block duration is larger than min If the user accidentally sets the max block duration smaller than the min, the current error is not informative. This change just performs the check earlier and improves the error message. --- storage/tsdb/tsdb.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/storage/tsdb/tsdb.go b/storage/tsdb/tsdb.go index 7cc8294dd..18ada9792 100644 --- a/storage/tsdb/tsdb.go +++ b/storage/tsdb/tsdb.go @@ -126,6 +126,10 @@ type Options struct { // Open returns a new storage backed by a TSDB database that is configured for Prometheus. func Open(path string, l log.Logger, r prometheus.Registerer, opts *Options) (*tsdb.DB, error) { + if opts.MinBlockDuration > opts.MaxBlockDuration { + return nil, errors.Errorf("tsdb max block duration (%v) must be larger than min block duration (%v)", + opts.MaxBlockDuration, opts.MinBlockDuration) + } // Start with smallest block duration and create exponential buckets until the exceed the // configured maximum block duration. rngs := tsdb.ExponentialBlockRanges(int64(time.Duration(opts.MinBlockDuration).Seconds()*1000), 10, 3)