func main() { var ( publish = flag.String("publish", fmt.Sprintf("localhost:%d", xfer.AppPort), "publish target") publishInterval = flag.Duration("publish.interval", 1*time.Second, "publish (output) interval") hostCount = flag.Int("hostcount", 10, "Number of demo hosts to generate") ) flag.Parse() client, err := appclient.NewAppClient(appclient.ProbeConfig{ Token: "demoprobe", ProbeID: "demoprobe", Insecure: false, }, *publish, *publish, nil) if err != nil { log.Fatal(err) } rp := appclient.NewReportPublisher(client) rand.Seed(time.Now().UnixNano()) for range time.Tick(*publishInterval) { if err := rp.Publish(demoReport(*hostCount)); err != nil { log.Print(err) } } }
// New makes a new Probe. func New( spyInterval, publishInterval time.Duration, publisher appclient.Publisher, ) *Probe { result := &Probe{ spyInterval: spyInterval, publishInterval: publishInterval, publisher: appclient.NewReportPublisher(publisher), quit: make(chan struct{}), spiedReports: make(chan report.Report, reportBufferSize), shortcutReports: make(chan report.Report, reportBufferSize), } return result }
func main() { var ( publish = flag.String("publish", fmt.Sprintf("localhost:%d", xfer.AppPort), "publish target") publishInterval = flag.Duration("publish.interval", 1*time.Second, "publish (output) interval") publishToken = flag.String("publish.token", "fixprobe", "publish token, for if we are talking to the service") publishID = flag.String("publish.id", "fixprobe", "publisher ID used to identify publishers") useFixture = flag.Bool("fixture", false, "Use the embedded fixture report.") ) flag.Parse() if len(flag.Args()) != 1 && !*useFixture { log.Fatal("usage: fixprobe [--args] report.json") } var fixedReport report.Report if *useFixture { fixedReport = fixture.Report } else { b, err := ioutil.ReadFile(flag.Arg(0)) if err != nil { log.Fatal(err) } decoder := codec.NewDecoderBytes(b, &codec.JsonHandle{}) if err := decoder.Decode(&fixedReport); err != nil { log.Fatal(err) } } client, err := appclient.NewAppClient(appclient.ProbeConfig{ Token: *publishToken, ProbeID: *publishID, Insecure: false, }, *publish, *publish, nil) if err != nil { log.Fatal(err) } rp := appclient.NewReportPublisher(client) for range time.Tick(*publishInterval) { rp.Publish(fixedReport) } }