|
|
@ -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 == "" { |
|
|
|