From d86e8a63c751007a233e7929af12a6da343a4715 Mon Sep 17 00:00:00 2001 From: Fabian Reinartz Date: Tue, 10 Jan 2017 11:17:37 +0100 Subject: [PATCH] Report correct number of appended samples --- cmd/tsdb/main.go | 25 +++++++++++++++++-------- head.go | 14 +++----------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/cmd/tsdb/main.go b/cmd/tsdb/main.go index 034db8a32f..1f2f06a3cd 100644 --- a/cmd/tsdb/main.go +++ b/cmd/tsdb/main.go @@ -121,7 +121,7 @@ func (b *writeBenchmark) run(cmd *cobra.Command, args []string) { measureTime("ingestScrapes", func() { b.startProfiling() - if err := b.ingestScrapes(metrics, 3000); err != nil { + if err := b.ingestScrapes(metrics, 2000); err != nil { exitWithError(err) } }) @@ -135,6 +135,8 @@ func (b *writeBenchmark) run(cmd *cobra.Command, args []string) { func (b *writeBenchmark) ingestScrapes(metrics []model.Metric, scrapeCount int) error { var wg sync.WaitGroup + var mu sync.Mutex + var total uint64 for len(metrics) > 0 { l := 1000 @@ -145,20 +147,25 @@ func (b *writeBenchmark) ingestScrapes(metrics []model.Metric, scrapeCount int) metrics = metrics[l:] wg.Add(1) - go func() { - if err := b.ingestScrapesShard(batch, scrapeCount); err != nil { + go func(batch []model.Metric) { + n, err := b.ingestScrapesShard(batch, scrapeCount) + if err != nil { // exitWithError(err) fmt.Println(" err", err) } + mu.Lock() + total += n + mu.Unlock() wg.Done() - }() + }(batch) } - wg.Wait() + + fmt.Println("> total samples:", total) return nil } -func (b *writeBenchmark) ingestScrapesShard(metrics []model.Metric, scrapeCount int) error { +func (b *writeBenchmark) ingestScrapesShard(metrics []model.Metric, scrapeCount int) (uint64, error) { app := b.storage.Appender() ts := int64(model.Now()) @@ -181,6 +188,7 @@ func (b *writeBenchmark) ingestScrapesShard(metrics []model.Metric, scrapeCount value: 123456789, } } + total := uint64(0) for i := 0; i < scrapeCount; i++ { ts += int64(30000) @@ -188,12 +196,13 @@ func (b *writeBenchmark) ingestScrapesShard(metrics []model.Metric, scrapeCount for _, s := range scrape { s.value += 1000 app.Add(s.labels, ts, float64(s.value)) + total++ } if err := app.Commit(); err != nil { - return err + return total, err } } - return nil + return total, nil } func (b *writeBenchmark) startProfiling() { diff --git a/head.go b/head.go index 4c1de4000e..2118e367e2 100644 --- a/head.go +++ b/head.go @@ -143,17 +143,9 @@ func (c *safeChunk) Iterator() chunks.Iterator { return c.cd.iterator() } -func (c *safeChunk) Appender() (chunks.Appender, error) { - panic("illegal") -} - -func (c *safeChunk) Bytes() []byte { - panic("illegal") -} - -func (c *safeChunk) Encoding() chunks.Encoding { - panic("illegal") -} +func (c *safeChunk) Appender() (chunks.Appender, error) { panic("illegal") } +func (c *safeChunk) Bytes() []byte { panic("illegal") } +func (c *safeChunk) Encoding() chunks.Encoding { panic("illegal") } func (h *HeadBlock) interval() (int64, int64) { h.bstats.mtx.RLock()