func main() { flag.Parse() common.SetupLogger() config := common.LoadConfig() ruleset, err := internal.LoadRules(config.API.ConversionRulesPath) if err != nil { common.ExitWithMessage(fmt.Sprintf("Error while reading rules: %s", err.Error())) } metricFile, err := os.Open(*metricsFile) if err != nil { common.ExitWithMessage("No metric file.") } scanner := bufio.NewScanner(metricFile) apiInstance := common.NewAPI(config.API) var output *os.File if *unmatchedFile != "" { output, err = os.Create(*unmatchedFile) if err != nil { common.ExitWithMessage(fmt.Sprintf("Error creating the output file: %s", err.Error())) } } stat := run(ruleset, scanner, apiInstance, output) report(stat) }
func main() { flag.Parse() common.SetupLogger() config := common.LoadConfig() apiInstance := common.NewAPI(config.API) myBackend := blueflood.NewBlueflood(config.Blueflood) l := liner.NewLiner() defer l.Close() for { input, err := l.Prompt("> ") if err != nil { return } l.AppendHistory(input) cmd, err := query.Parse(input) if err != nil { fmt.Println("parsing error", err.Error()) continue } n, ok := cmd.(query.Node) if !ok { fmt.Printf("error: %#v doesn't implement Node\n", cmd) continue } fmt.Println(query.PrintNode(n)) result, err := cmd.Execute(query.ExecutionContext{Backend: backend.NewSequentialMultiBackend(myBackend), API: apiInstance, FetchLimit: 1000}) if err != nil { fmt.Println("execution error:", err.Error()) continue } encoded, err := json.MarshalIndent(result, "", " ") if err != nil { fmt.Println("encoding error:", err.Error()) return } fmt.Println("success:") fmt.Println(string(encoded)) } }
func main() { flag.Parse() common.SetupLogger() config := common.LoadConfig() apiInstance := common.NewAPI(config.API) blueflood := api.ProfilingBackend{ Backend: blueflood.NewBlueflood(config.Blueflood), } backend := api.ProfilingMultiBackend{ MultiBackend: backend.NewParallelMultiBackend(blueflood, 20), } ui.Main(config.UIConfig, query.ExecutionContext{ API: apiInstance, Backend: backend, FetchLimit: 1000, Registry: registry.Default(), }) }