in prometheus/alert/client.go [157:178]
func (c *client) WriteRule(filePrefix string, rule rulefmt.Rule) error {
filename := makeFilename(filePrefix)
c.fileLocks.Lock(filename)
defer c.fileLocks.Unlock(filename)
ruleFile, err := c.readOrInitializeRuleFile(filePrefix, filename)
if err != nil {
return err
}
err = SecureRule(c.tenancy.RestrictQueries, c.tenancy.RestrictorLabel, filePrefix, &rule)
if err != nil {
return err
}
ruleFile.AddRule(rule)
err = c.writeRuleFile(ruleFile, filename)
if err != nil {
return err
}
return nil
}