diff --git a/tsdb/config.go b/tsdb/config.go index bf3800e217..1b3d9239b2 100644 --- a/tsdb/config.go +++ b/tsdb/config.go @@ -119,5 +119,16 @@ func (c *Config) Validate() error { return fmt.Errorf("unrecognized engine %s", c.Engine) } + valid = false + for _, e := range RegisteredIndexes() { + if e == c.Index { + valid = true + break + } + } + if !valid { + return fmt.Errorf("unrecognized index %s", c.Index) + } + return nil } diff --git a/tsdb/config_test.go b/tsdb/config_test.go index 7af94f90f9..44d644f808 100644 --- a/tsdb/config_test.go +++ b/tsdb/config_test.go @@ -45,4 +45,20 @@ func TestConfig_Validate_Error(t *testing.T) { if err := c.Validate(); err == nil || err.Error() != "unrecognized engine fake1" { t.Errorf("unexpected error: %s", err) } + + c.Engine = "tsm1" + c.Index = "foo" + if err := c.Validate(); err == nil || err.Error() != "unrecognized index foo" { + t.Errorf("unexpected error: %s", err) + } + + c.Index = "inmem" + if err := c.Validate(); err != nil { + t.Error(err) + } + + c.Index = "tsi1" + if err := c.Validate(); err != nil { + t.Error(err) + } }