// BenchmarkCleanupMetrics needs to add metrics each time over the cycle. // Because of this the benchmark includes addmetric time func (*BenchmarkSuite) BenchmarkCleanupMetrics(c *gc.C) { numberOfMetrics := 50 var s ConnSuite s.SetUpSuite(c) defer s.TearDownSuite(c) s.SetUpTest(c) defer s.TearDownTest(c) oldTime := time.Now().Add(-(state.CleanupAge)) charm := s.AddTestingCharm(c, "wordpress") svc := s.AddTestingService(c, "wordpress", charm) unit, err := svc.AddUnit() c.Assert(err, jc.ErrorIsNil) serviceCharmURL, _ := svc.CharmURL() err = unit.SetCharmURL(serviceCharmURL) c.Assert(err, jc.ErrorIsNil) c.ResetTimer() for i := 0; i < c.N; i++ { for i := 0; i < numberOfMetrics; i++ { m, err := unit.AddMetrics(utils.MustNewUUID().String(), oldTime, "", []state.Metric{{}}) c.Assert(err, jc.ErrorIsNil) err = m.SetSent() c.Assert(err, jc.ErrorIsNil) } err := s.State.CleanupOldMetrics() c.Assert(err, jc.ErrorIsNil) } }
func benchmarkAddMetrics(metricsPerBatch, batches int, c *gc.C) { var s ConnSuite s.SetUpSuite(c) defer s.TearDownSuite(c) s.SetUpTest(c) defer s.TearDownTest(c) now := time.Now() metrics := make([]state.Metric, metricsPerBatch) for i := range metrics { metrics[i] = state.Metric{ Key: "metricKey", Value: "keyValue", Time: now, } } charm := s.AddTestingCharm(c, "wordpress") svc := s.AddTestingService(c, "wordpress", charm) unit, err := svc.AddUnit() c.Assert(err, jc.ErrorIsNil) serviceCharmURL, _ := svc.CharmURL() err = unit.SetCharmURL(serviceCharmURL) c.Assert(err, jc.ErrorIsNil) c.ResetTimer() for i := 0; i < c.N; i++ { for n := 0; n < batches; n++ { _, err := unit.AddMetrics(utils.MustNewUUID().String(), now, "", metrics) c.Assert(err, jc.ErrorIsNil) } } }
func (s *exampleSuite) BenchmarkExample(c *gc.C) { serverEndpoint, err := serve(func(endpoint string) (http.Handler, error) { return targetService(endpoint, s.authEndpoint, s.authPublicKey) }) c.Assert(err, gc.IsNil) c.ResetTimer() for i := 0; i < c.N; i++ { resp, err := clientRequest(serverEndpoint) c.Assert(err, gc.IsNil) c.Assert(resp, gc.Equals, "hello, world\n") } }
func (*BenchmarkSuite) BenchmarkAddAndAssignUnit(c *gc.C) { var s ConnSuite s.SetUpSuite(c) defer s.TearDownSuite(c) s.SetUpTest(c) defer s.TearDownTest(c) charm := s.AddTestingCharm(c, "wordpress") svc := s.AddTestingService(c, "wordpress", charm) c.ResetTimer() for i := 0; i < c.N; i++ { unit, err := svc.AddUnit() c.Assert(err, jc.ErrorIsNil) err = s.State.AssignUnit(unit, state.AssignClean) c.Assert(err, jc.ErrorIsNil) } }
func (*BenchmarkSuite) BenchmarkAddUnit(c *gc.C) { // TODO(rog) embed ConnSuite in BenchmarkSuite when // gocheck calls appropriate fixture methods for benchmark // functions. var s ConnSuite s.SetUpSuite(c) defer s.TearDownSuite(c) s.SetUpTest(c) defer s.TearDownTest(c) charm := s.AddTestingCharm(c, "wordpress") svc := s.AddTestingService(c, "wordpress", charm) c.ResetTimer() for i := 0; i < c.N; i++ { _, err := svc.AddUnit() c.Assert(err, jc.ErrorIsNil) } }