diff --git a/scrape/scrape.go b/scrape/scrape.go index 6808420c28..3a76ceae27 100644 --- a/scrape/scrape.go +++ b/scrape/scrape.go @@ -1315,20 +1315,20 @@ func (sl *scrapeLoop) scrapeAndReport(last, appendTime time.Time, errc chan<- er var total, added, seriesAdded, bytesRead int var err, appErr, scrapeErr error - sla := sl.appender() + app := sl.appender() defer func() { if err != nil { - _ = sla.Rollback() + _ = app.Rollback() return } - err = sla.Commit() + err = app.Commit() if err != nil { sl.l.Error("Scrape commit failed", "err", err) } }() defer func() { - if err = sl.report(sla, appendTime, time.Since(start), total, added, seriesAdded, bytesRead, scrapeErr); err != nil { + if err = sl.report(app, appendTime, time.Since(start), total, added, seriesAdded, bytesRead, scrapeErr); err != nil { sl.l.Warn("Appending scrape report failed", "err", err) } }() @@ -1336,9 +1336,9 @@ func (sl *scrapeLoop) scrapeAndReport(last, appendTime time.Time, errc chan<- er if forcedErr := sl.getForcedError(); forcedErr != nil { scrapeErr = forcedErr // Add stale markers. - if _, _, _, err := sla.append([]byte{}, "", appendTime); err != nil { - _ = sla.Rollback() - sla = sl.appender() + if _, _, _, err := app.append([]byte{}, "", appendTime); err != nil { + _ = app.Rollback() + app = sl.appender() sl.l.Warn("Append failed", "err", err) } if errc != nil { @@ -1394,16 +1394,16 @@ func (sl *scrapeLoop) scrapeAndReport(last, appendTime time.Time, errc chan<- er // A failed scrape is the same as an empty scrape, // we still call sl.append to trigger stale markers. - total, added, seriesAdded, appErr = sla.append(b, contentType, appendTime) + total, added, seriesAdded, appErr = app.append(b, contentType, appendTime) if appErr != nil { - _ = sla.Rollback() - sla = sl.appender() + _ = app.Rollback() + app = sl.appender() sl.l.Debug("Append failed", "err", appErr) // The append failed, probably due to a parse error or sample limit. // Call sl.append again with an empty scrape to trigger stale markers. - if _, _, _, err := sla.append([]byte{}, "", appendTime); err != nil { - _ = sla.Rollback() - sla = sl.appender() + if _, _, _, err := app.append([]byte{}, "", appendTime); err != nil { + _ = app.Rollback() + app = sl.appender() sl.l.Warn("Append failed", "err", err) } } @@ -1473,24 +1473,24 @@ func (sl *scrapeLoop) endOfRunStaleness(last time.Time, ticker *time.Ticker, int // If the target has since been recreated and scraped, the // stale markers will be out of order and ignored. // sl.context would have been cancelled, hence using sl.appenderCtx. - sla := sl.appender() + app := sl.appender() var err error defer func() { if err != nil { - _ = sla.Rollback() + _ = app.Rollback() return } - err = sla.Commit() + err = app.Commit() if err != nil { sl.l.Warn("Stale commit failed", "err", err) } }() - if _, _, _, err = sla.append([]byte{}, "", staleTime); err != nil { - _ = sla.Rollback() - sla = sl.appender() + if _, _, _, err = app.append([]byte{}, "", staleTime); err != nil { + _ = app.Rollback() + app = sl.appender() sl.l.Warn("Stale append failed", "err", err) } - if err = sl.reportStale(sla, staleTime); err != nil { + if err = sl.reportStale(app, staleTime); err != nil { sl.l.Warn("Stale report failed", "err", err) } } @@ -2036,7 +2036,7 @@ var ( } ) -func (sl *scrapeLoop) report(sla scrapeLoopAppendAdapter, start time.Time, duration time.Duration, scraped, added, seriesAdded, bytes int, scrapeErr error) (err error) { +func (sl *scrapeLoop) report(app scrapeLoopAppendAdapter, start time.Time, duration time.Duration, scraped, added, seriesAdded, bytes int, scrapeErr error) (err error) { sl.scraper.Report(start, duration, scrapeErr) ts := timestamp.FromTime(start) @@ -2047,63 +2047,63 @@ func (sl *scrapeLoop) report(sla scrapeLoopAppendAdapter, start time.Time, durat } b := labels.NewBuilderWithSymbolTable(sl.symbolTable) - if err = sla.addReportSample(scrapeHealthMetric, ts, health, b, false); err != nil { + if err = app.addReportSample(scrapeHealthMetric, ts, health, b, false); err != nil { return err } - if err = sla.addReportSample(scrapeDurationMetric, ts, duration.Seconds(), b, false); err != nil { + if err = app.addReportSample(scrapeDurationMetric, ts, duration.Seconds(), b, false); err != nil { return err } - if err = sla.addReportSample(scrapeSamplesMetric, ts, float64(scraped), b, false); err != nil { + if err = app.addReportSample(scrapeSamplesMetric, ts, float64(scraped), b, false); err != nil { return err } - if err = sla.addReportSample(samplesPostRelabelMetric, ts, float64(added), b, false); err != nil { + if err = app.addReportSample(samplesPostRelabelMetric, ts, float64(added), b, false); err != nil { return err } - if err = sla.addReportSample(scrapeSeriesAddedMetric, ts, float64(seriesAdded), b, false); err != nil { + if err = app.addReportSample(scrapeSeriesAddedMetric, ts, float64(seriesAdded), b, false); err != nil { return err } if sl.reportExtraMetrics { - if err = sla.addReportSample(scrapeTimeoutMetric, ts, sl.timeout.Seconds(), b, false); err != nil { + if err = app.addReportSample(scrapeTimeoutMetric, ts, sl.timeout.Seconds(), b, false); err != nil { return err } - if err = sla.addReportSample(scrapeSampleLimitMetric, ts, float64(sl.sampleLimit), b, false); err != nil { + if err = app.addReportSample(scrapeSampleLimitMetric, ts, float64(sl.sampleLimit), b, false); err != nil { return err } - if err = sla.addReportSample(scrapeBodySizeBytesMetric, ts, float64(bytes), b, false); err != nil { + if err = app.addReportSample(scrapeBodySizeBytesMetric, ts, float64(bytes), b, false); err != nil { return err } } return err } -func (sl *scrapeLoop) reportStale(sla scrapeLoopAppendAdapter, start time.Time) (err error) { +func (sl *scrapeLoop) reportStale(app scrapeLoopAppendAdapter, start time.Time) (err error) { ts := timestamp.FromTime(start) stale := math.Float64frombits(value.StaleNaN) b := labels.NewBuilder(labels.EmptyLabels()) - if err = sla.addReportSample(scrapeHealthMetric, ts, stale, b, true); err != nil { + if err = app.addReportSample(scrapeHealthMetric, ts, stale, b, true); err != nil { return err } - if err = sla.addReportSample(scrapeDurationMetric, ts, stale, b, true); err != nil { + if err = app.addReportSample(scrapeDurationMetric, ts, stale, b, true); err != nil { return err } - if err = sla.addReportSample(scrapeSamplesMetric, ts, stale, b, true); err != nil { + if err = app.addReportSample(scrapeSamplesMetric, ts, stale, b, true); err != nil { return err } - if err = sla.addReportSample(samplesPostRelabelMetric, ts, stale, b, true); err != nil { + if err = app.addReportSample(samplesPostRelabelMetric, ts, stale, b, true); err != nil { return err } - if err = sla.addReportSample(scrapeSeriesAddedMetric, ts, stale, b, true); err != nil { + if err = app.addReportSample(scrapeSeriesAddedMetric, ts, stale, b, true); err != nil { return err } if sl.reportExtraMetrics { - if err = sla.addReportSample(scrapeTimeoutMetric, ts, stale, b, true); err != nil { + if err = app.addReportSample(scrapeTimeoutMetric, ts, stale, b, true); err != nil { return err } - if err = sla.addReportSample(scrapeSampleLimitMetric, ts, stale, b, true); err != nil { + if err = app.addReportSample(scrapeSampleLimitMetric, ts, stale, b, true); err != nil { return err } - if err = sla.addReportSample(scrapeBodySizeBytesMetric, ts, stale, b, true); err != nil { + if err = app.addReportSample(scrapeBodySizeBytesMetric, ts, stale, b, true); err != nil { return err } } diff --git a/scrape/scrape_test.go b/scrape/scrape_test.go index 6e05c8aded..b31e8e3e40 100644 --- a/scrape/scrape_test.go +++ b/scrape/scrape_test.go @@ -135,17 +135,17 @@ func runScrapeLoopTest(t *testing.T, s *teststorage.TestStorage, expectOutOfOrde timestampOutOfOrder := now.Add(-5 * time.Minute) timestampInorder2 := now.Add(5 * time.Minute) - slApp := sl.appender() - _, _, _, err := slApp.append([]byte(`metric_total{a="1",b="1"} 1`), "text/plain", timestampInorder1) + app := sl.appender() + _, _, _, err := app.append([]byte(`metric_total{a="1",b="1"} 1`), "text/plain", timestampInorder1) require.NoError(t, err) - _, _, _, err = slApp.append([]byte(`metric_total{a="1",b="1"} 2`), "text/plain", timestampOutOfOrder) + _, _, _, err = app.append([]byte(`metric_total{a="1",b="1"} 2`), "text/plain", timestampOutOfOrder) require.NoError(t, err) - _, _, _, err = slApp.append([]byte(`metric_total{a="1",b="1"} 3`), "text/plain", timestampInorder2) + _, _, _, err = app.append([]byte(`metric_total{a="1",b="1"} 3`), "text/plain", timestampInorder2) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) // Query the samples back from the storage. q, err := s.Querier(time.Time{}.UnixNano(), time.Now().UnixNano()) @@ -219,10 +219,10 @@ test_metric2{foo="bar"} 22 sl, _ := newTestScrapeLoop(t, withAppendable(appTest)) now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append([]byte(scrape1), "application/openmetrics-text", now) + app := sl.appender() + _, _, _, err := app.append([]byte(scrape1), "application/openmetrics-text", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) testutil.RequireEqual(t, []sample{ {L: labels.FromStrings("__name__", "test_metric_total"), M: metadata.Metadata{Type: "counter", Unit: "metric", Help: "some help text"}}, {L: labels.FromStrings("__name__", "test_metric2", "foo", "bar"), M: metadata.Metadata{Type: "gauge", Unit: "", Help: "other help text"}}, @@ -231,10 +231,10 @@ test_metric2{foo="bar"} 22 appTest.ResultReset() // Next (the same) scrape should not new metadata entries. - slApp = sl.appender() - _, _, _, err = slApp.append([]byte(scrape1), "application/openmetrics-text", now.Add(15*time.Second)) + app = sl.appender() + _, _, _, err = app.append([]byte(scrape1), "application/openmetrics-text", now.Add(15*time.Second)) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) testutil.RequireEqual(t, []sample{ {L: labels.FromStrings("__name__", "test_metric_total")}, {L: labels.FromStrings("__name__", "test_metric2", "foo", "bar")}, @@ -242,10 +242,10 @@ test_metric2{foo="bar"} 22 }, appTest.ResultMetadata()) appTest.ResultReset() - slApp = sl.appender() - _, _, _, err = slApp.append([]byte(scrape2), "application/openmetrics-text", now.Add(15*time.Second)) + app = sl.appender() + _, _, _, err = app.append([]byte(scrape2), "application/openmetrics-text", now.Add(15*time.Second)) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) testutil.RequireEqual(t, []sample{ {L: labels.FromStrings("__name__", "test_metric_total"), M: metadata.Metadata{Type: "counter", Unit: "metric", Help: "different help text"}}, // Here, technically we should have no unit, but it's a known limitation of the current implementation. {L: labels.FromStrings("__name__", "test_metric2", "foo", "bar"), M: metadata.Metadata{Type: "gauge", Unit: "metric2", Help: "other help text"}}, @@ -257,11 +257,11 @@ test_metric2{foo="bar"} 22 func TestScrapeReportMetadata(t *testing.T) { appTest := teststorage.NewAppendable() sl, _ := newTestScrapeLoop(t, withAppendable(appTest)) - slApp := sl.appender() + app := sl.appender() now := time.Now() - require.NoError(t, sl.report(slApp, now, 2*time.Second, 1, 1, 1, 512, nil)) - require.NoError(t, slApp.Commit()) + require.NoError(t, sl.report(app, now, 2*time.Second, 1, 1, 1, 512, nil)) + require.NoError(t, app.Commit()) testutil.RequireEqual(t, []sample{ {L: labels.FromStrings("__name__", "up"), M: scrapeHealthMetric.Metadata}, {L: labels.FromStrings("__name__", "scrape_duration_seconds"), M: scrapeDurationMetric.Metadata}, @@ -1155,8 +1155,8 @@ func TestScrapeLoopRun_ContextCancelTerminatesBlockedSend(t *testing.T) { func TestScrapeLoopMetadata(t *testing.T) { sl, _ := newTestScrapeLoop(t) - slApp := sl.appender() - total, _, _, err := slApp.append([]byte(`# TYPE test_metric counter + app := sl.appender() + total, _, _, err := app.append([]byte(`# TYPE test_metric counter # HELP test_metric some help text # UNIT test_metric metric test_metric_total 1 @@ -1164,7 +1164,7 @@ test_metric_total 1 # HELP test_metric_no_type other help text # EOF`), "application/openmetrics-text", time.Now()) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) require.Equal(t, 1, total) md, ok := sl.cache.GetMetadata("test_metric") @@ -1189,17 +1189,17 @@ test_metric_total 1 func TestScrapeLoopSeriesAdded(t *testing.T) { sl, _ := newTestScrapeLoop(t) - slApp := sl.appender() - total, added, seriesAdded, err := slApp.append([]byte("test_metric 1\n"), "text/plain", time.Time{}) + app := sl.appender() + total, added, seriesAdded, err := app.append([]byte("test_metric 1\n"), "text/plain", time.Time{}) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) require.Equal(t, 1, total) require.Equal(t, 1, added) require.Equal(t, 1, seriesAdded) - slApp = sl.appender() - total, added, seriesAdded, err = slApp.append([]byte("test_metric 1\n"), "text/plain", time.Time{}) - require.NoError(t, slApp.Commit()) + app = sl.appender() + total, added, seriesAdded, err = app.append([]byte("test_metric 1\n"), "text/plain", time.Time{}) + require.NoError(t, app.Commit()) require.NoError(t, err) require.Equal(t, 1, total) require.Equal(t, 1, added) @@ -1223,10 +1223,10 @@ func TestScrapeLoopFailWithInvalidLabelsAfterRelabel(t *testing.T) { } }) - slApp := sl.appender() - total, added, seriesAdded, err := slApp.append([]byte("test_metric 1\n"), "text/plain", time.Time{}) + app := sl.appender() + total, added, seriesAdded, err := app.append([]byte("test_metric 1\n"), "text/plain", time.Time{}) require.ErrorContains(t, err, "invalid metric name or label names") - require.NoError(t, slApp.Rollback()) + require.NoError(t, app.Rollback()) require.Equal(t, 1, total) require.Equal(t, 0, added) require.Equal(t, 0, seriesAdded) @@ -1237,10 +1237,10 @@ func TestScrapeLoopFailLegacyUnderUTF8(t *testing.T) { sl.validationScheme = model.LegacyValidation }) - slApp := sl.appender() - total, added, seriesAdded, err := slApp.append([]byte("{\"test.metric\"} 1\n"), "text/plain", time.Time{}) + app := sl.appender() + total, added, seriesAdded, err := app.append([]byte("{\"test.metric\"} 1\n"), "text/plain", time.Time{}) require.ErrorContains(t, err, "invalid metric name or label names") - require.NoError(t, slApp.Rollback()) + require.NoError(t, app.Rollback()) require.Equal(t, 1, total) require.Equal(t, 0, added) require.Equal(t, 0, seriesAdded) @@ -1250,8 +1250,8 @@ func TestScrapeLoopFailLegacyUnderUTF8(t *testing.T) { sl.validationScheme = model.UTF8Validation }) - slApp = sl.appender() - total, added, seriesAdded, err = slApp.append([]byte("{\"test.metric\"} 1\n"), "text/plain", time.Time{}) + app = sl.appender() + total, added, seriesAdded, err = app.append([]byte("{\"test.metric\"} 1\n"), "text/plain", time.Time{}) require.NoError(t, err) require.Equal(t, 1, total) require.Equal(t, 1, added) @@ -1377,14 +1377,14 @@ func BenchmarkScrapeLoopAppend(b *testing.B) { b.Cleanup(func() { _ = s.Close() }) sl, _ := newTestScrapeLoop(b, withAppendable(s)) - slApp := sl.appender() + app := sl.appender() ts := time.Time{} b.ReportAllocs() b.ResetTimer() for b.Loop() { ts = ts.Add(time.Second) - _, _, _, err := slApp.append(bcase.parsable, bcase.contentType, ts) + _, _, _, err := app.append(bcase.parsable, bcase.contentType, ts) if err != nil { b.Fatal(err) } @@ -1821,10 +1821,10 @@ func TestScrapeLoopAppend(t *testing.T) { now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append([]byte(test.scrapeLabels), "text/plain", now) + app := sl.appender() + _, _, _, err := app.append([]byte(test.scrapeLabels), "text/plain", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) expected := []sample{ { @@ -1914,11 +1914,11 @@ func TestScrapeLoopAppendForConflictingPrefixedLabels(t *testing.T) { } }) - slApp := sl.appender() - _, _, _, err := slApp.append([]byte(tc.exposedLabels), "text/plain", time.Date(2000, 1, 1, 1, 0, 0, 0, time.UTC)) + app := sl.appender() + _, _, _, err := app.append([]byte(tc.exposedLabels), "text/plain", time.Date(2000, 1, 1, 1, 0, 0, 0, time.UTC)) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) requireEqual(t, []sample{ { @@ -1952,10 +1952,10 @@ func TestScrapeLoopAppendCacheEntryButErrNotFound(t *testing.T) { sl.cache.addRef(metric, fakeRef, lset, hash) now := time.Now() - slApp := sl.appender() - _, _, _, err = slApp.append(metric, "text/plain", now) + app := sl.appender() + _, _, _, err = app.append(metric, "text/plain", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) expected := []sample{ { @@ -1996,10 +1996,10 @@ func TestScrapeLoopAppendSampleLimit(t *testing.T) { beforeMetricValue := beforeMetric.GetCounter().GetValue() now := time.Now() - slApp := sl.appender() - total, added, seriesAdded, err := slApp.append([]byte("metric_a 1\nmetric_b 1\nmetric_c 1\n"), "text/plain", now) + app := sl.appender() + total, added, seriesAdded, err := app.append([]byte("metric_a 1\nmetric_b 1\nmetric_c 1\n"), "text/plain", now) require.ErrorIs(t, err, errSampleLimit) - require.NoError(t, slApp.Rollback()) + require.NoError(t, app.Rollback()) require.Equal(t, 3, total) require.Equal(t, 3, added) require.Equal(t, 1, seriesAdded) @@ -2025,10 +2025,10 @@ func TestScrapeLoopAppendSampleLimit(t *testing.T) { requireEqual(t, want, appTest.RolledbackSamples(), "Appended samples not as expected:\n%s", appTest) now = time.Now() - slApp = sl.appender() - total, added, seriesAdded, err = slApp.append([]byte("metric_a 1\nmetric_b 1\nmetric_c{deleteme=\"yes\"} 1\nmetric_d 1\nmetric_e 1\nmetric_f 1\nmetric_g 1\nmetric_h{deleteme=\"yes\"} 1\nmetric_i{deleteme=\"yes\"} 1\n"), "text/plain", now) + app = sl.appender() + total, added, seriesAdded, err = app.append([]byte("metric_a 1\nmetric_b 1\nmetric_c{deleteme=\"yes\"} 1\nmetric_d 1\nmetric_e 1\nmetric_f 1\nmetric_g 1\nmetric_h{deleteme=\"yes\"} 1\nmetric_i{deleteme=\"yes\"} 1\n"), "text/plain", now) require.ErrorIs(t, err, errSampleLimit) - require.NoError(t, slApp.Rollback()) + require.NoError(t, app.Rollback()) require.Equal(t, 9, total) require.Equal(t, 6, added) require.Equal(t, 1, seriesAdded) @@ -2047,7 +2047,7 @@ func TestScrapeLoop_HistogramBucketLimit(t *testing.T) { return l } }) - slApp := sl.appender() + app := sl.appender() metric := dto.Metric{} err := sl.metrics.targetScrapeNativeHistogramBucketLimit.Write(&metric) @@ -2082,7 +2082,7 @@ func TestScrapeLoop_HistogramBucketLimit(t *testing.T) { require.NoError(t, err) now := time.Now() - total, added, seriesAdded, err := slApp.append(msg, "application/vnd.google.protobuf", now) + total, added, seriesAdded, err := app.append(msg, "application/vnd.google.protobuf", now) require.NoError(t, err) require.Equal(t, 3, total) require.Equal(t, 3, added) @@ -2105,7 +2105,7 @@ func TestScrapeLoop_HistogramBucketLimit(t *testing.T) { require.NoError(t, err) now = time.Now() - total, added, seriesAdded, err = slApp.append(msg, "application/vnd.google.protobuf", now) + total, added, seriesAdded, err = app.append(msg, "application/vnd.google.protobuf", now) require.NoError(t, err) require.Equal(t, 3, total) require.Equal(t, 3, added) @@ -2128,11 +2128,11 @@ func TestScrapeLoop_HistogramBucketLimit(t *testing.T) { require.NoError(t, err) now = time.Now() - total, added, seriesAdded, err = slApp.append(msg, "application/vnd.google.protobuf", now) + total, added, seriesAdded, err = app.append(msg, "application/vnd.google.protobuf", now) if !errors.Is(err, errBucketLimit) { t.Fatalf("Did not see expected histogram bucket limit error: %s", err) } - require.NoError(t, slApp.Rollback()) + require.NoError(t, app.Rollback()) require.Equal(t, 3, total) require.Equal(t, 3, added) require.Equal(t, 0, seriesAdded) // Series are cached. @@ -2154,15 +2154,15 @@ func TestScrapeLoop_ChangingMetricString(t *testing.T) { sl, _ := newTestScrapeLoop(t, withAppendable(appTest)) now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append([]byte(`metric_a{a="1",b="1"} 1`), "text/plain", now) + app := sl.appender() + _, _, _, err := app.append([]byte(`metric_a{a="1",b="1"} 1`), "text/plain", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) - slApp = sl.appender() - _, _, _, err = slApp.append([]byte(`metric_a{b="1",a="1"} 2`), "text/plain", now.Add(time.Minute)) + app = sl.appender() + _, _, _, err = app.append([]byte(`metric_a{b="1",a="1"} 2`), "text/plain", now.Add(time.Minute)) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) want := []sample{ { @@ -2186,8 +2186,8 @@ func TestScrapeLoopAppendFailsWithNoContentType(t *testing.T) { }) now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append([]byte("metric_a 1\n"), "", now) + app := sl.appender() + _, _, _, err := app.append([]byte("metric_a 1\n"), "", now) // We expected the appropriate error. require.ErrorContains(t, err, "non-compliant scrape target sending blank Content-Type and no fallback_scrape_protocol specified for target", "Expected \"non-compliant scrape\" error but got: %s", err) } @@ -2200,10 +2200,10 @@ func TestScrapeLoopAppendEmptyWithNoContentType(t *testing.T) { }) now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append([]byte(""), "", now) + app := sl.appender() + _, _, _, err := app.append([]byte(""), "", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) } func TestScrapeLoopAppendStaleness(t *testing.T) { @@ -2211,15 +2211,15 @@ func TestScrapeLoopAppendStaleness(t *testing.T) { sl, _ := newTestScrapeLoop(t, withAppendable(appTest)) now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append([]byte("metric_a 1\n"), "text/plain", now) + app := sl.appender() + _, _, _, err := app.append([]byte("metric_a 1\n"), "text/plain", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) - slApp = sl.appender() - _, _, _, err = slApp.append([]byte(""), "", now.Add(time.Second)) + app = sl.appender() + _, _, _, err = app.append([]byte(""), "", now.Add(time.Second)) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) want := []sample{ { @@ -2240,15 +2240,15 @@ func TestScrapeLoopAppendNoStalenessIfTimestamp(t *testing.T) { appTest := teststorage.NewAppendable() sl, _ := newTestScrapeLoop(t, withAppendable(appTest)) now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append([]byte("metric_a 1 1000\n"), "text/plain", now) + app := sl.appender() + _, _, _, err := app.append([]byte("metric_a 1 1000\n"), "text/plain", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) - slApp = sl.appender() - _, _, _, err = slApp.append([]byte(""), "", now.Add(time.Second)) + app = sl.appender() + _, _, _, err = app.append([]byte(""), "", now.Add(time.Second)) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) want := []sample{ { @@ -2268,15 +2268,15 @@ func TestScrapeLoopAppendStalenessIfTrackTimestampStaleness(t *testing.T) { }) now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append([]byte("metric_a 1 1000\n"), "text/plain", now) + app := sl.appender() + _, _, _, err := app.append([]byte("metric_a 1 1000\n"), "text/plain", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) - slApp = sl.appender() - _, _, _, err = slApp.append([]byte(""), "", now.Add(time.Second)) + app = sl.appender() + _, _, _, err = app.append([]byte(""), "", now.Add(time.Second)) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) want := []sample{ { @@ -2809,7 +2809,7 @@ metric: < // expectations. sl.appendMetadataToWAL = false }) - slApp := sl.appender() + app := sl.appender() now := time.Now() @@ -2834,9 +2834,9 @@ metric: < buf.WriteString(test.scrapeText) } - _, _, _, err := slApp.append(buf.Bytes(), test.contentType, now) + _, _, _, err := app.append(buf.Bytes(), test.contentType, now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) requireEqual(t, test.samples, appTest.ResultSamples()) }) } @@ -2904,10 +2904,10 @@ func TestScrapeLoopAppendExemplarSeries(t *testing.T) { } for i, st := range scrapeText { - slApp := sl.appender() - _, _, _, err := slApp.append([]byte(st), "application/openmetrics-text", timestamp.Time(samples[i].T)) + app := sl.appender() + _, _, _, err := app.append([]byte(st), "application/openmetrics-text", timestamp.Time(samples[i].T)) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) } requireEqual(t, samples, appTest.ResultSamples()) @@ -2963,10 +2963,10 @@ func TestScrapeLoopAppendGracefullyIfAmendOrOutOfOrderOrOutOfBounds(t *testing.T sl, _ := newTestScrapeLoop(t, withAppendable(appTest)) now := time.Unix(1, 0) - slApp := sl.appender() - total, added, seriesAdded, err := slApp.append([]byte("out_of_order 1\namend 1\nnormal 1\nout_of_bounds 1\n"), "text/plain", now) + app := sl.appender() + total, added, seriesAdded, err := app.append([]byte("out_of_order 1\namend 1\nnormal 1\nout_of_bounds 1\n"), "text/plain", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) want := []sample{ { @@ -2992,10 +2992,10 @@ func TestScrapeLoopOutOfBoundsTimeError(t *testing.T) { )) now := time.Now().Add(20 * time.Minute) - slApp := sl.appender() - total, added, seriesAdded, err := slApp.append([]byte("normal 1\n"), "text/plain", now) + app := sl.appender() + total, added, seriesAdded, err := app.append([]byte("normal 1\n"), "text/plain", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) require.Equal(t, 1, total) require.Equal(t, 1, added) require.Equal(t, 0, seriesAdded) @@ -3418,10 +3418,10 @@ func TestScrapeLoop_RespectTimestamps(t *testing.T) { sl, _ := newTestScrapeLoop(t, withAppendable(appTest)) now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append([]byte(`metric_a{a="1",b="1"} 1 0`), "text/plain", now) + app := sl.appender() + _, _, _, err := app.append([]byte(`metric_a{a="1",b="1"} 1 0`), "text/plain", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) want := []sample{ { @@ -3444,10 +3444,10 @@ func TestScrapeLoop_DiscardTimestamps(t *testing.T) { }) now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append([]byte(`metric_a{a="1",b="1"} 1 0`), "text/plain", now) + app := sl.appender() + _, _, _, err := app.append([]byte(`metric_a{a="1",b="1"} 1 0`), "text/plain", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) want := []sample{ { @@ -3467,10 +3467,10 @@ func TestScrapeLoopDiscardDuplicateLabels(t *testing.T) { sl, _ := newTestScrapeLoop(t, withAppendable(appTest)) // We add a good and a bad metric to check that both are discarded. - slApp := sl.appender() - _, _, _, err := slApp.append([]byte("test_metric{le=\"500\"} 1\ntest_metric{le=\"600\",le=\"700\"} 1\n"), "text/plain", time.Time{}) + app := sl.appender() + _, _, _, err := app.append([]byte("test_metric{le=\"500\"} 1\ntest_metric{le=\"600\",le=\"700\"} 1\n"), "text/plain", time.Time{}) require.Error(t, err) - require.NoError(t, slApp.Rollback()) + require.NoError(t, app.Rollback()) // We need to cycle staleness cache maps after a manual rollback. Otherwise, they will have old entries in them, // which would cause ErrDuplicateSampleForTimestamp errors on the next append. sl.cache.iterDone(true) @@ -3482,10 +3482,10 @@ func TestScrapeLoopDiscardDuplicateLabels(t *testing.T) { require.NoError(t, series.Err()) // We add a good metric to check that it is recorded. - slApp = sl.appender() - _, _, _, err = slApp.append([]byte("test_metric{le=\"500\"} 1\n"), "text/plain", time.Time{}) + app = sl.appender() + _, _, _, err = app.append([]byte("test_metric{le=\"500\"} 1\n"), "text/plain", time.Time{}) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) q, err = s.Querier(time.Time{}.UnixNano(), 0) require.NoError(t, err) @@ -3510,10 +3510,10 @@ func TestScrapeLoopDiscardUnnamedMetrics(t *testing.T) { } }) - slApp := sl.appender() - _, _, _, err := slApp.append([]byte("nok 1\nnok2{drop=\"drop\"} 1\n"), "text/plain", time.Time{}) + app := sl.appender() + _, _, _, err := app.append([]byte("nok 1\nnok2{drop=\"drop\"} 1\n"), "text/plain", time.Time{}) require.Error(t, err) - require.NoError(t, slApp.Rollback()) + require.NoError(t, app.Rollback()) require.Equal(t, errNameLabelMandatory, err) q, err := s.Querier(time.Time{}.UnixNano(), 0) @@ -3780,10 +3780,10 @@ func TestScrapeAddFast(t *testing.T) { sl, _ := newTestScrapeLoop(t, withAppendable(s)) - slApp := sl.appender() - _, _, _, err := slApp.append([]byte("up 1\n"), "text/plain", time.Time{}) + app := sl.appender() + _, _, _, err := app.append([]byte("up 1\n"), "text/plain", time.Time{}) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) // Poison the cache. There is just one entry, and one series in the // storage. Changing the ref will create a 'not found' error. @@ -3791,10 +3791,10 @@ func TestScrapeAddFast(t *testing.T) { v.ref++ } - slApp = sl.appender() - _, _, _, err = slApp.append([]byte("up 1\n"), "text/plain", time.Time{}.Add(time.Second)) + app = sl.appender() + _, _, _, err = app.append([]byte("up 1\n"), "text/plain", time.Time{}.Add(time.Second)) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) } func TestReuseCacheRace(t *testing.T) { @@ -4080,15 +4080,15 @@ func TestScrapeLoopLabelLimit(t *testing.T) { sl.labelLimits = &test.labelLimits }) - slApp := sl.appender() - _, _, _, err := slApp.append([]byte(test.scrapeLabels), "text/plain", time.Now()) + app := sl.appender() + _, _, _, err := app.append([]byte(test.scrapeLabels), "text/plain", time.Now()) t.Logf("Test:%s", test.title) if test.expectErr { require.Error(t, err) } else { require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) } } } @@ -4690,10 +4690,10 @@ metric: < t.Error("unexpected content type") } now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append(content, contentType, now) + app := sl.appender() + _, _, _, err := app.append(content, contentType, now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) var expectedSchema int32 if expectCustomBuckets { @@ -5087,29 +5087,29 @@ func BenchmarkTargetScraperGzip(b *testing.B) { func TestScrapeLoopSeriesAddedDuplicates(t *testing.T) { sl, _ := newTestScrapeLoop(t) - slApp := sl.appender() - total, added, seriesAdded, err := slApp.append([]byte("test_metric 1\ntest_metric 2\ntest_metric 3\n"), "text/plain", time.Time{}) + app := sl.appender() + total, added, seriesAdded, err := app.append([]byte("test_metric 1\ntest_metric 2\ntest_metric 3\n"), "text/plain", time.Time{}) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) require.Equal(t, 3, total) require.Equal(t, 3, added) require.Equal(t, 1, seriesAdded) require.Equal(t, 2.0, prom_testutil.ToFloat64(sl.metrics.targetScrapeSampleDuplicate)) - slApp = sl.appender() - total, added, seriesAdded, err = slApp.append([]byte("test_metric 1\ntest_metric 1\ntest_metric 1\n"), "text/plain", time.Time{}) + app = sl.appender() + total, added, seriesAdded, err = app.append([]byte("test_metric 1\ntest_metric 1\ntest_metric 1\n"), "text/plain", time.Time{}) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) require.Equal(t, 3, total) require.Equal(t, 3, added) require.Equal(t, 0, seriesAdded) require.Equal(t, 4.0, prom_testutil.ToFloat64(sl.metrics.targetScrapeSampleDuplicate)) // When different timestamps are supplied, multiple samples are accepted. - slApp = sl.appender() - total, added, seriesAdded, err = slApp.append([]byte("test_metric 1 1001\ntest_metric 1 1002\ntest_metric 1 1003\n"), "text/plain", time.Time{}) + app = sl.appender() + total, added, seriesAdded, err = app.append([]byte("test_metric 1 1001\ntest_metric 1 1002\ntest_metric 1 1003\n"), "text/plain", time.Time{}) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) require.Equal(t, 3, total) require.Equal(t, 3, added) require.Equal(t, 0, seriesAdded) @@ -5492,21 +5492,21 @@ func TestScrapeAppendWithParseError(t *testing.T) { sl, _ := newTestScrapeLoop(t, withAppendable(appTest)) now := time.Now() - slApp := sl.appender() - _, _, _, err := slApp.append([]byte(scrape1), "application/openmetrics-text", now) + app := sl.appender() + _, _, _, err := app.append([]byte(scrape1), "application/openmetrics-text", now) require.Error(t, err) - require.NoError(t, slApp.Rollback()) + require.NoError(t, app.Rollback()) - slApp = sl.appender() - _, _, _, err = slApp.append(nil, "application/openmetrics-text", now) + app = sl.appender() + _, _, _, err = app.append(nil, "application/openmetrics-text", now) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) require.Empty(t, appTest.ResultSamples()) - slApp = sl.appender() - _, _, _, err = slApp.append([]byte(scrape2), "application/openmetrics-text", now.Add(15*time.Second)) + app = sl.appender() + _, _, _, err = app.append([]byte(scrape2), "application/openmetrics-text", now.Add(15*time.Second)) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) want := []sample{ { @@ -5530,15 +5530,15 @@ func TestScrapeLoopAppendSampleLimitWithDisappearingSeries(t *testing.T) { }) now := time.Now() - slApp := sl.appender() - samplesScraped, samplesAfterRelabel, createdSeries, err := slApp.append( + app := sl.appender() + samplesScraped, samplesAfterRelabel, createdSeries, err := app.append( // Start with 3 samples, all accepted. []byte("metric_a 1\nmetric_b 1\nmetric_c 1\n"), "text/plain", now, ) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) require.Equal(t, 3, samplesScraped) // All on scrape. require.Equal(t, 3, samplesAfterRelabel) // This is series after relabeling. require.Equal(t, 3, createdSeries) // Newly added to TSDB. @@ -5559,34 +5559,34 @@ func TestScrapeLoopAppendSampleLimitWithDisappearingSeries(t *testing.T) { V: 1, }, } - requireEqual(t, want, appTest.ResultSamples(), "Appended samples not as expected:\n%s", slApp) + requireEqual(t, want, appTest.ResultSamples(), "Appended samples not as expected:\n%s", app) now = now.Add(time.Minute) - slApp = sl.appender() - samplesScraped, samplesAfterRelabel, createdSeries, err = slApp.append( + app = sl.appender() + samplesScraped, samplesAfterRelabel, createdSeries, err = app.append( // Start exporting 3 more samples, so we're over the limit now. []byte("metric_a 1\nmetric_b 1\nmetric_c 1\nmetric_d 1\nmetric_e 1\nmetric_f 1\n"), "text/plain", now, ) require.ErrorIs(t, err, errSampleLimit) - require.NoError(t, slApp.Rollback()) + require.NoError(t, app.Rollback()) require.Equal(t, 6, samplesScraped) require.Equal(t, 6, samplesAfterRelabel) require.Equal(t, 1, createdSeries) // We've added one series before hitting the limit. - requireEqual(t, want, appTest.ResultSamples(), "Appended samples not as expected:\n%s", slApp) + requireEqual(t, want, appTest.ResultSamples(), "Appended samples not as expected:\n%s", app) sl.cache.iterDone(false) now = now.Add(time.Minute) - slApp = sl.appender() - samplesScraped, samplesAfterRelabel, createdSeries, err = slApp.append( + app = sl.appender() + samplesScraped, samplesAfterRelabel, createdSeries, err = app.append( // Remove all samples except first 2. []byte("metric_a 1\nmetric_b 1\n"), "text/plain", now, ) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) require.Equal(t, 2, samplesScraped) require.Equal(t, 2, samplesAfterRelabel) require.Equal(t, 0, createdSeries) @@ -5618,7 +5618,7 @@ func TestScrapeLoopAppendSampleLimitWithDisappearingSeries(t *testing.T) { V: math.Float64frombits(value.StaleNaN), }, }...) - requireEqual(t, want, appTest.ResultSamples(), "Appended samples not as expected:\n%s", slApp) + requireEqual(t, want, appTest.ResultSamples(), "Appended samples not as expected:\n%s", app) } // This test covers a case where there's a target with sample_limit set and each scrape sees a completely @@ -5633,15 +5633,15 @@ func TestScrapeLoopAppendSampleLimitReplaceAllSamples(t *testing.T) { }) now := time.Now() - slApp := sl.appender() - samplesScraped, samplesAfterRelabel, createdSeries, err := slApp.append( + app := sl.appender() + samplesScraped, samplesAfterRelabel, createdSeries, err := app.append( // Start with 4 samples, all accepted. []byte("metric_a 1\nmetric_b 1\nmetric_c 1\nmetric_d 1\n"), "text/plain", now, ) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) require.Equal(t, 4, samplesScraped) // All on scrape. require.Equal(t, 4, samplesAfterRelabel) // This is series after relabeling. require.Equal(t, 4, createdSeries) // Newly added to TSDB. @@ -5667,18 +5667,18 @@ func TestScrapeLoopAppendSampleLimitReplaceAllSamples(t *testing.T) { V: 1, }, } - requireEqual(t, want, appTest.ResultSamples(), "Appended samples not as expected:\n%s", slApp) + requireEqual(t, want, appTest.ResultSamples(), "Appended samples not as expected:\n%s", app) now = now.Add(time.Minute) - slApp = sl.appender() - samplesScraped, samplesAfterRelabel, createdSeries, err = slApp.append( + app = sl.appender() + samplesScraped, samplesAfterRelabel, createdSeries, err = app.append( // Replace all samples with new time series. []byte("metric_e 1\nmetric_f 1\nmetric_g 1\nmetric_h 1\n"), "text/plain", now, ) require.NoError(t, err) - require.NoError(t, slApp.Commit()) + require.NoError(t, app.Commit()) require.Equal(t, 4, samplesScraped) require.Equal(t, 4, samplesAfterRelabel) require.Equal(t, 4, createdSeries) @@ -5728,7 +5728,7 @@ func TestScrapeLoopAppendSampleLimitReplaceAllSamples(t *testing.T) { V: math.Float64frombits(value.StaleNaN), }, }...) - requireEqual(t, want, appTest.ResultSamples(), "Appended samples not as expected:\n%s", slApp) + requireEqual(t, want, appTest.ResultSamples(), "Appended samples not as expected:\n%s", app) } func TestScrapeLoopDisableStalenessMarkerInjection(t *testing.T) {