mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-27 14:39:40 -08:00
b9c90925dd
This tool does the simple job of checking a Prometheus rule file for validity and printing the parsed rules if the loading succeeds. This came out of an immediate need to quickly verify changes to existing rule files.
47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
// Copyright 2013 Prometheus Team
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
// Rule-Checker allows checking the validity of a Prometheus rule file. It
|
|
// prints an error if the specified rule file is invalid, while it prints a
|
|
// string representation of the parsed rules otherwise.
|
|
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
|
|
"github.com/prometheus/prometheus/rules"
|
|
)
|
|
|
|
var ruleFile = flag.String("ruleFile", "", "The path to the rule file to check.")
|
|
|
|
func main() {
|
|
flag.Parse()
|
|
|
|
if *ruleFile == "" {
|
|
log.Fatal("Must provide a rule file path")
|
|
}
|
|
|
|
rules, err := rules.LoadRulesFromFile(*ruleFile)
|
|
if err != nil {
|
|
log.Fatalf("Error loading rule file %s: %s", *ruleFile, err)
|
|
}
|
|
|
|
fmt.Printf("Successfully loaded %d rules:\n\n", len(rules))
|
|
|
|
for _, rule := range rules {
|
|
fmt.Println(rule)
|
|
}
|
|
}
|