|
|
@ -37,6 +37,7 @@ import (
|
|
|
|
config_util "github.com/prometheus/common/config"
|
|
|
|
config_util "github.com/prometheus/common/config"
|
|
|
|
"github.com/prometheus/common/model"
|
|
|
|
"github.com/prometheus/common/model"
|
|
|
|
"github.com/prometheus/common/version"
|
|
|
|
"github.com/prometheus/common/version"
|
|
|
|
|
|
|
|
"github.com/prometheus/exporter-toolkit/https"
|
|
|
|
"gopkg.in/alecthomas/kingpin.v2"
|
|
|
|
"gopkg.in/alecthomas/kingpin.v2"
|
|
|
|
|
|
|
|
|
|
|
|
"github.com/prometheus/prometheus/config"
|
|
|
|
"github.com/prometheus/prometheus/config"
|
|
|
@ -59,6 +60,12 @@ func main() {
|
|
|
|
"The config files to check.",
|
|
|
|
"The config files to check.",
|
|
|
|
).Required().ExistingFiles()
|
|
|
|
).Required().ExistingFiles()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
checkWebConfigCmd := checkCmd.Command("web-config", "Check if the web config files are valid or not.")
|
|
|
|
|
|
|
|
webConfigFiles := checkWebConfigCmd.Arg(
|
|
|
|
|
|
|
|
"web-config-files",
|
|
|
|
|
|
|
|
"The config files to check.",
|
|
|
|
|
|
|
|
).Required().ExistingFiles()
|
|
|
|
|
|
|
|
|
|
|
|
checkRulesCmd := checkCmd.Command("rules", "Check if the rule files are valid or not.")
|
|
|
|
checkRulesCmd := checkCmd.Command("rules", "Check if the rule files are valid or not.")
|
|
|
|
ruleFiles := checkRulesCmd.Arg(
|
|
|
|
ruleFiles := checkRulesCmd.Arg(
|
|
|
|
"rule-files",
|
|
|
|
"rule-files",
|
|
|
@ -154,6 +161,9 @@ func main() {
|
|
|
|
case checkConfigCmd.FullCommand():
|
|
|
|
case checkConfigCmd.FullCommand():
|
|
|
|
os.Exit(CheckConfig(*configFiles...))
|
|
|
|
os.Exit(CheckConfig(*configFiles...))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
case checkWebConfigCmd.FullCommand():
|
|
|
|
|
|
|
|
os.Exit(CheckWebConfig(*webConfigFiles...))
|
|
|
|
|
|
|
|
|
|
|
|
case checkRulesCmd.FullCommand():
|
|
|
|
case checkRulesCmd.FullCommand():
|
|
|
|
os.Exit(CheckRules(*ruleFiles...))
|
|
|
|
os.Exit(CheckRules(*ruleFiles...))
|
|
|
|
|
|
|
|
|
|
|
@ -234,6 +244,24 @@ func CheckConfig(files ...string) int {
|
|
|
|
return 0
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// CheckWebConfig validates web configuration files.
|
|
|
|
|
|
|
|
func CheckWebConfig(files ...string) int {
|
|
|
|
|
|
|
|
failed := false
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for _, f := range files {
|
|
|
|
|
|
|
|
if err := https.Validate(f); err != nil {
|
|
|
|
|
|
|
|
fmt.Fprintln(os.Stderr, f, "FAILED:", err)
|
|
|
|
|
|
|
|
failed = true
|
|
|
|
|
|
|
|
continue
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
fmt.Fprintln(os.Stderr, f, "SUCCESS")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
if failed {
|
|
|
|
|
|
|
|
return 1
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
func checkFileExists(fn string) error {
|
|
|
|
func checkFileExists(fn string) error {
|
|
|
|
// Nothing set, nothing to error on.
|
|
|
|
// Nothing set, nothing to error on.
|
|
|
|
if fn == "" {
|
|
|
|
if fn == "" {
|
|
|
|