package main import ( "encoding/json" "flag" "fmt" "io/ioutil" "os" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/metrics" ) var ( node = flag.String("node", "", "File to export storage node metrics to.") ir = flag.String("ir", "", "File to export innerring node metrics to.") ) func main() { flag.Parse() if *node != "" && *ir != "" { fmt.Println("-node and -ir flags are mutually exclusive") os.Exit(1) } var filename string switch { case *node != "": _ = metrics.NewNodeMetrics() filename = *node case *ir != "": _ = metrics.NewInnerRingMetrics() filename = *ir default: flag.Usage() os.Exit(1) } ds, err := metrics.DescribeAll() if err != nil { fmt.Fprintf(os.Stderr, "Could not parse metric descriptions: %v\n", err) os.Exit(1) } data, err := json.Marshal(ds) if err != nil { fmt.Fprintf(os.Stderr, "Could not parse marshal: %v\n", err) os.Exit(1) } if err := ioutil.WriteFile(filename, data, 0644); err != nil { fmt.Fprintf(os.Stderr, "Could write to file: %v\n", err) os.Exit(1) } }