mirror of
https://github.com/prometheus/prometheus.git
synced 2024-12-24 21:24:05 -08:00
TestScrapeLoopCache: Display content of the appender (#10937)
This should help identifying windows tests flakiness. Signed-off-by: Julien Pivotto <roidelapluie@o11y.eu>
This commit is contained in:
parent
02f3297719
commit
90583c8906
|
@ -15,7 +15,9 @@ package scrape
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
|
"fmt"
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/prometheus/prometheus/model/exemplar"
|
"github.com/prometheus/prometheus/model/exemplar"
|
||||||
"github.com/prometheus/prometheus/model/labels"
|
"github.com/prometheus/prometheus/model/labels"
|
||||||
|
@ -106,3 +108,17 @@ func (a *collectResultAppender) Rollback() error {
|
||||||
}
|
}
|
||||||
return a.next.Rollback()
|
return a.next.Rollback()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (a *collectResultAppender) String() string {
|
||||||
|
var sb strings.Builder
|
||||||
|
for _, s := range a.result {
|
||||||
|
sb.WriteString(fmt.Sprintf("committed: %s %f %d\n", s.metric, s.v, s.t))
|
||||||
|
}
|
||||||
|
for _, s := range a.pendingResult {
|
||||||
|
sb.WriteString(fmt.Sprintf("pending: %s %f %d\n", s.metric, s.v, s.t))
|
||||||
|
}
|
||||||
|
for _, s := range a.rolledbackResult {
|
||||||
|
sb.WriteString(fmt.Sprintf("rolledback: %s %f %d\n", s.metric, s.v, s.t))
|
||||||
|
}
|
||||||
|
return sb.String()
|
||||||
|
}
|
||||||
|
|
|
@ -1125,7 +1125,7 @@ func TestScrapeLoopRunCreatesStaleMarkersOnFailedScrape(t *testing.T) {
|
||||||
|
|
||||||
// 1 successfully scraped sample, 1 stale marker after first fail, 5 report samples for
|
// 1 successfully scraped sample, 1 stale marker after first fail, 5 report samples for
|
||||||
// each scrape successful or not.
|
// each scrape successful or not.
|
||||||
require.Equal(t, 27, len(appender.result), "Appended samples not as expected")
|
require.Equal(t, 27, len(appender.result), "Appended samples not as expected:\n%s", appender)
|
||||||
require.Equal(t, 42.0, appender.result[0].v, "Appended first sample not as expected")
|
require.Equal(t, 42.0, appender.result[0].v, "Appended first sample not as expected")
|
||||||
require.True(t, value.IsStaleNaN(appender.result[6].v),
|
require.True(t, value.IsStaleNaN(appender.result[6].v),
|
||||||
"Appended second sample not as expected. Wanted: stale NaN Got: %x", math.Float64bits(appender.result[6].v))
|
"Appended second sample not as expected. Wanted: stale NaN Got: %x", math.Float64bits(appender.result[6].v))
|
||||||
|
@ -1189,7 +1189,7 @@ func TestScrapeLoopRunCreatesStaleMarkersOnParseFailure(t *testing.T) {
|
||||||
|
|
||||||
// 1 successfully scraped sample, 1 stale marker after first fail, 5 report samples for
|
// 1 successfully scraped sample, 1 stale marker after first fail, 5 report samples for
|
||||||
// each scrape successful or not.
|
// each scrape successful or not.
|
||||||
require.Equal(t, 17, len(appender.result), "Appended samples not as expected")
|
require.Equal(t, 17, len(appender.result), "Appended samples not as expected:\n%s", appender)
|
||||||
require.Equal(t, 42.0, appender.result[0].v, "Appended first sample not as expected")
|
require.Equal(t, 42.0, appender.result[0].v, "Appended first sample not as expected")
|
||||||
require.True(t, value.IsStaleNaN(appender.result[6].v),
|
require.True(t, value.IsStaleNaN(appender.result[6].v),
|
||||||
"Appended second sample not as expected. Wanted: stale NaN Got: %x", math.Float64bits(appender.result[6].v))
|
"Appended second sample not as expected. Wanted: stale NaN Got: %x", math.Float64bits(appender.result[6].v))
|
||||||
|
@ -1272,7 +1272,7 @@ func TestScrapeLoopCache(t *testing.T) {
|
||||||
|
|
||||||
// 1 successfully scraped sample, 1 stale marker after first fail, 5 report samples for
|
// 1 successfully scraped sample, 1 stale marker after first fail, 5 report samples for
|
||||||
// each scrape successful or not.
|
// each scrape successful or not.
|
||||||
require.Equal(t, 26, len(appender.result), "Appended samples not as expected")
|
require.Equal(t, 26, len(appender.result), "Appended samples not as expected:\n%s", appender)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestScrapeLoopCacheMemoryExhaustionProtection(t *testing.T) {
|
func TestScrapeLoopCacheMemoryExhaustionProtection(t *testing.T) {
|
||||||
|
@ -1642,7 +1642,7 @@ func TestScrapeLoopAppendSampleLimit(t *testing.T) {
|
||||||
v: 1,
|
v: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
require.Equal(t, want, resApp.rolledbackResult, "Appended samples not as expected")
|
require.Equal(t, want, resApp.rolledbackResult, "Appended samples not as expected:\n%s", appender)
|
||||||
|
|
||||||
now = time.Now()
|
now = time.Now()
|
||||||
slApp = sl.appender(context.Background())
|
slApp = sl.appender(context.Background())
|
||||||
|
@ -1707,7 +1707,7 @@ func TestScrapeLoop_ChangingMetricString(t *testing.T) {
|
||||||
v: 2,
|
v: 2,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
require.Equal(t, want, capp.result, "Appended samples not as expected")
|
require.Equal(t, want, capp.result, "Appended samples not as expected:\n%s", appender)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestScrapeLoopAppendStaleness(t *testing.T) {
|
func TestScrapeLoopAppendStaleness(t *testing.T) {
|
||||||
|
@ -1759,7 +1759,7 @@ func TestScrapeLoopAppendStaleness(t *testing.T) {
|
||||||
v: 42,
|
v: 42,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
require.Equal(t, want, app.result, "Appended samples not as expected")
|
require.Equal(t, want, app.result, "Appended samples not as expected:\n%s", appender)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestScrapeLoopAppendNoStalenessIfTimestamp(t *testing.T) {
|
func TestScrapeLoopAppendNoStalenessIfTimestamp(t *testing.T) {
|
||||||
|
@ -1800,7 +1800,7 @@ func TestScrapeLoopAppendNoStalenessIfTimestamp(t *testing.T) {
|
||||||
v: 1,
|
v: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
require.Equal(t, want, app.result, "Appended samples not as expected")
|
require.Equal(t, want, app.result, "Appended samples not as expected:\n%s", appender)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestScrapeLoopAppendExemplar(t *testing.T) {
|
func TestScrapeLoopAppendExemplar(t *testing.T) {
|
||||||
|
@ -2108,7 +2108,7 @@ func TestScrapeLoopAppendGracefullyIfAmendOrOutOfOrderOrOutOfBounds(t *testing.T
|
||||||
v: 1,
|
v: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
require.Equal(t, want, app.result, "Appended samples not as expected")
|
require.Equal(t, want, app.result, "Appended samples not as expected:\n%s", appender)
|
||||||
require.Equal(t, 4, total)
|
require.Equal(t, 4, total)
|
||||||
require.Equal(t, 4, added)
|
require.Equal(t, 4, added)
|
||||||
require.Equal(t, 1, seriesAdded)
|
require.Equal(t, 1, seriesAdded)
|
||||||
|
@ -2410,7 +2410,7 @@ func TestScrapeLoop_RespectTimestamps(t *testing.T) {
|
||||||
v: 1,
|
v: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
require.Equal(t, want, capp.result, "Appended samples not as expected")
|
require.Equal(t, want, capp.result, "Appended samples not as expected:\n%s", appender)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestScrapeLoop_DiscardTimestamps(t *testing.T) {
|
func TestScrapeLoop_DiscardTimestamps(t *testing.T) {
|
||||||
|
@ -2451,7 +2451,7 @@ func TestScrapeLoop_DiscardTimestamps(t *testing.T) {
|
||||||
v: 1,
|
v: 1,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
require.Equal(t, want, capp.result, "Appended samples not as expected")
|
require.Equal(t, want, capp.result, "Appended samples not as expected:\n%s", appender)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestScrapeLoopDiscardDuplicateLabels(t *testing.T) {
|
func TestScrapeLoopDiscardDuplicateLabels(t *testing.T) {
|
||||||
|
|
Loading…
Reference in a new issue