diff --git a/cmd/promxy/main.go b/cmd/promxy/main.go index 00bc7964a..980cc45ff 100644 --- a/cmd/promxy/main.go +++ b/cmd/promxy/main.go @@ -306,6 +306,22 @@ func main() { logrus.Fatalf("Error loading config: %s", err) } + // Our own checks on top of the config + checkConfig := func() error { + // check for any recording rules, if we find any lets log a fatal and stop + // https://github.com/jacksontj/promxy/issues/74 + for _, rule := range ruleManager.Rules() { + if _, ok := rule.(*rules.RecordingRule); ok { + return fmt.Errorf("Promxy doesn't support recording rules: %s", rule) + } + } + return nil + } + + if err := checkConfig(); err != nil { + logrus.Fatalf("Error checking config: %v", err) + } + close(reloadReady) // Set up access logger @@ -349,6 +365,9 @@ func main() { if err := reloadConfig(reloadables...); err != nil { log.Errorf("Error reloading config: %s", err) } + if err := checkConfig(); err != nil { + logrus.Errorf("Error checking config: %v", err) + } case syscall.SIGTERM, syscall.SIGINT: log.Infof("promxy exiting") cancel() diff --git a/proxystorage/proxy.go b/proxystorage/proxy.go index 5e2d7fbf2..6c91cb181 100644 --- a/proxystorage/proxy.go +++ b/proxystorage/proxy.go @@ -120,6 +120,7 @@ func (a *appenderStub) Commit() error { return nil } func (a *appenderStub) Rollback() error { return nil } func (p *ProxyStorage) Appender() (storage.Appender, error) { + logrus.Warning("Promxy cannot *write* metrics but is being asked to. This is likely due to a RecordingRule") return &appenderStub{}, nil }