|
|
|
|
@ -147,6 +147,12 @@ func (c *Config) UnmarshalYAML(unmarshal func(interface{}) error) error { |
|
|
|
|
if err := unmarshal((*plain)(c)); err != nil { |
|
|
|
|
return err |
|
|
|
|
} |
|
|
|
|
// If a global block was open but empty the default global config is overwritten.
|
|
|
|
|
// We have to restore it here.
|
|
|
|
|
if c.GlobalConfig.isZero() { |
|
|
|
|
c.GlobalConfig = DefaultGlobalConfig |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
for _, rf := range c.RuleFiles { |
|
|
|
|
if !patRulePath.MatchString(rf) { |
|
|
|
|
return fmt.Errorf("invalid rule file path %q", rf) |
|
|
|
|
@ -196,6 +202,14 @@ func (c *GlobalConfig) UnmarshalYAML(unmarshal func(interface{}) error) error { |
|
|
|
|
return checkOverflow(c.XXX, "global config") |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// isZero returns true iff the global config is the zero value.
|
|
|
|
|
func (c *GlobalConfig) isZero() bool { |
|
|
|
|
return c.Labels == nil && |
|
|
|
|
c.ScrapeInterval == 0 && |
|
|
|
|
c.ScrapeTimeout == 0 && |
|
|
|
|
c.EvaluationInterval == 0 |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// ScrapeConfig configures a scraping unit for Prometheus.
|
|
|
|
|
type ScrapeConfig struct { |
|
|
|
|
// The job name to which the job label is set by default.
|
|
|
|
|
|