filter.InitGraphiteMetrics() patterns = filter.NewPatternStorage() patterns.DoRefresh(db) cache = &filter.CacheStorage{} cache.BuildRetentions(bufio.NewScanner(strings.NewReader(testRetentions))) testMetricsLines = generateMetrics(patterns, 100000) }) Context("Without saving", func() { Measure("metrics processing", func(b Benchmarker) { runtime := b.Time("runtime", func() { for _, line := range testMetricsLines { patterns.ProcessIncomingMetric([]byte(line)) } }) Expect(runtime.Seconds()).Should(BeNumerically("<", 1), "metrics processing shouldn't take too long.") b.RecordValue("metrics per sec", float64(len(testMetricsLines))/runtime.Seconds()) filter.UpdateProcessingMetrics() b.RecordValue("matched", float64(filter.MatchingMetricsReceived.Count())) }, 10) }) }) func generateMetrics(patterns *filter.PatternStorage, count int) []string { result := make([]string, 0, count) timestamp := time.Now()