func main() { runtime.GOMAXPROCS(4) var interval = flag.String("interval", "1s", "Interval for reported results") var writeRate = flag.Int("writeRate", 15000, "Number of writes per second to send to metron") var stopAfter = flag.String("stopAfter", "5m", "How long to run the experiment for") flag.Parse() duration, err := time.ParseDuration(*interval) if err != nil { log.Fatalf("Invalid duration %s\n", *interval) } stopAfterDuration, err := time.ParseDuration(*stopAfter) if err != nil { log.Fatalf("Invalid duration %s\n", *stopAfter) } internalMetricsCounter := metricsreporter.NewCounter("internal metrics") reporter := metricsreporter.New(duration, os.Stdout, internalMetricsCounter) reader := messagereader.NewMessageReader(3457) legacyReader := legacyreader.NewLegacyReader(reporter.GetReceivedCounter(), internalMetricsCounter, reader) exp := experiment.NewExperiment(legacyReader) generator := messagegenerator.NewValueMetricGenerator() writer := messagewriter.NewMessageWriter("localhost", 51161, "", reporter.GetSentCounter()) writeStrategy := writestrategies.NewConstantWriteStrategy(generator, writer, *writeRate) exp.AddWriteStrategy(writeStrategy) legacyGenerator := messagegenerator.NewLegacyLogGenerator() legacyWriter := messagewriter.NewMessageWriter("localhost", 51160, "", reporter.GetSentCounter()) legacyWriteStrategy := writestrategies.NewConstantWriteStrategy(legacyGenerator, legacyWriter, *writeRate) exp.AddWriteStrategy(legacyWriteStrategy) announceToEtcd() go reporter.Start() go exp.Start() timer := time.NewTimer(stopAfterDuration) <-timer.C exp.Stop() reporter.Stop() }
func main() { runtime.GOMAXPROCS(runtime.NumCPU()) var interval = flag.String("interval", "1s", "Interval for reported results") var writeRate = flag.Int("writeRate", 15000, "Number of writes per second to send to metron") var stopAfter = flag.String("stopAfter", "5m", "How long to run the experiment for") var concurrentWriters = flag.Int("concurrentWriters", 1, "Number of concurrent writers") flag.Parse() duration, err := time.ParseDuration(*interval) if err != nil { log.Fatalf("Invalid duration %s\n", *interval) } stopAfterDuration, err := time.ParseDuration(*stopAfter) if err != nil { log.Fatalf("Invalid duration %s\n", *stopAfter) } reporter := metricsreporter.New(duration, os.Stdout) generator := messagegenerator.NewValueMetricGenerator() reader := messagereader.NewMessageReader(3457) valueMetricReader := valuemetricreader.NewValueMetricReader(reporter.GetReceivedCounter(), reader) exp := experiment.NewExperiment(valueMetricReader) for i := 0; i < *concurrentWriters; i++ { writer := messagewriter.NewMessageWriter("localhost", 51161, "", reporter.GetSentCounter()) writeStrategy := writestrategies.NewConstantWriteStrategy(generator, writer, *writeRate) exp.AddWriteStrategy(writeStrategy) } announceToEtcd() exp.Warmup() go reporter.Start() go exp.Start() timer := time.NewTimer(stopAfterDuration) <-timer.C exp.Stop() reporter.Stop() }
"net" "tools/benchmark/messagereader" "github.com/cloudfoundry/sonde-go/events" "github.com/gogo/protobuf/proto" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("UdpMessageReader", func() { var port int var reader *messagereader.MessageReader BeforeEach(func() { port = 3457 reader = messagereader.NewMessageReader(port) }) AfterEach(func() { reader.Close() }) It("should receive message on specified port", func() { writeValueMessage(port) writeValueMessage(port) Eventually(reader.Read()).ShouldNot(BeNil()) Eventually(reader.Read()).ShouldNot(BeNil()) }) }) func writeValueMessage(port int) {