Merge pull request #874 from prometheus/fabxc/cfgfix

resolve rule files relative to config file.
pull/876/head
Fabian Reinartz 10 years ago
commit 92c20168c4

@ -21,6 +21,7 @@ import (
_ "net/http/pprof" // Comment this line to disable pprof endpoint.
"os"
"os/signal"
"path/filepath"
"strings"
"syscall"
"text/template"
@ -76,6 +77,7 @@ func Main() int {
NotificationHandler: notificationHandler,
QueryEngine: queryEngine,
ExternalURL: cfg.web.ExternalURL,
BaseDir: filepath.Dir(cfg.configFile),
})
flags := map[string]string{}

@ -84,6 +84,10 @@ func checkConfig(t cli.Term, filename string) ([]string, error) {
}
var ruleFiles []string
for _, rf := range cfg.RuleFiles {
if !filepath.IsAbs(rf) {
rf = filepath.Join(filepath.Dir(filename), rf)
}
rfs, err := filepath.Glob(rf)
if err != nil {
return nil, err

@ -104,6 +104,7 @@ type Manager struct {
notificationHandler *notification.NotificationHandler
externalURL *url.URL
baseDir string
}
// ManagerOptions bundles options for the Manager.
@ -115,6 +116,7 @@ type ManagerOptions struct {
SampleAppender storage.SampleAppender
ExternalURL *url.URL
BaseDir string
}
// NewManager returns an implementation of Manager, ready to be started
@ -129,6 +131,7 @@ func NewManager(o *ManagerOptions) *Manager {
queryEngine: o.QueryEngine,
notificationHandler: o.NotificationHandler,
externalURL: o.ExternalURL,
baseDir: o.BaseDir,
}
return manager
}
@ -327,6 +330,10 @@ func (m *Manager) ApplyConfig(conf *config.Config) bool {
var files []string
for _, pat := range conf.RuleFiles {
if !filepath.IsAbs(pat) {
pat = filepath.Join(m.baseDir, pat)
}
fs, err := filepath.Glob(pat)
if err != nil {
// The only error can be a bad pattern.
@ -356,6 +363,7 @@ func (m *Manager) loadRuleFiles(filenames ...string) error {
if err != nil {
return fmt.Errorf("error parsing %s: %s", fn, err)
}
for _, stmt := range stmts {
switch r := stmt.(type) {
case *promql.AlertStmt:

Loading…
Cancel
Save