func main() { flag.Parse() common.SetupLogger() config := common.LoadConfig() cassandraConfig := cassandra.CassandraMetricMetadataConfig{ Hosts: config.MetricMetadataConfig.Hosts, Keyspace: config.MetricMetadataConfig.Keyspace, } apiInstance := common.NewMetricMetadataAPI(cassandraConfig) ruleset, err := util.LoadRules(config.MetricMetadataConfig.ConversionRulesPath) if err != nil { //Blah } graphite := util.RuleBasedGraphiteConverter{Ruleset: ruleset} config.Blueflood.GraphiteMetricConverter = &graphite blueflood := 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{TimeseriesStorageAPI: blueflood, MetricMetadataAPI: 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) 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)) } }