MCPcopy
hub / github.com/prometheus/prometheus / TestScrapePoolAppenderWithLimits

Function TestScrapePoolAppenderWithLimits

scrape/scrape_test.go:807–865  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

805}
806
807func TestScrapePoolAppenderWithLimits(t *testing.T) {
808 // Create a unique value, to validate the correct chain of appenders.
809 baseAppender := struct{ storage.Appender }{}
810 appendable := appendableFunc(func(context.Context) storage.Appender { return baseAppender })
811
812 sl, _ := newTestScrapeLoop(t, func(sl *scrapeLoop) {
813 sl.appendable = appendable
814 })
815 wrapped := appenderWithLimits(sl.appendable.Appender(context.Background()), 0, 0, histogram.ExponentialSchemaMax)
816
817 tl, ok := wrapped.(*timeLimitAppender)
818 require.True(t, ok, "Expected timeLimitAppender but got %T", wrapped)
819
820 require.Equal(t, baseAppender, tl.Appender, "Expected base appender but got %T", tl.Appender)
821
822 sampleLimit := 100
823 sl, _ = newTestScrapeLoop(t, func(sl *scrapeLoop) {
824 sl.appendable = appendable
825 sl.sampleLimit = sampleLimit
826 })
827 wrapped = appenderWithLimits(sl.appendable.Appender(context.Background()), sampleLimit, 0, histogram.ExponentialSchemaMax)
828
829 la, ok := wrapped.(*limitAppender)
830 require.True(t, ok, "Expected limitAppender but got %T", wrapped)
831
832 tl, ok = la.Appender.(*timeLimitAppender)
833 require.True(t, ok, "Expected timeLimitAppender but got %T", la.Appender)
834
835 require.Equal(t, baseAppender, tl.Appender, "Expected base appender but got %T", tl.Appender)
836
837 wrapped = appenderWithLimits(sl.appendable.Appender(context.Background()), sampleLimit, 100, histogram.ExponentialSchemaMax)
838
839 bl, ok := wrapped.(*bucketLimitAppender)
840 require.True(t, ok, "Expected bucketLimitAppender but got %T", wrapped)
841
842 la, ok = bl.Appender.(*limitAppender)
843 require.True(t, ok, "Expected limitAppender but got %T", bl)
844
845 tl, ok = la.Appender.(*timeLimitAppender)
846 require.True(t, ok, "Expected timeLimitAppender but got %T", la.Appender)
847
848 require.Equal(t, baseAppender, tl.Appender, "Expected base appender but got %T", tl.Appender)
849
850 wrapped = appenderWithLimits(sl.appendable.Appender(context.Background()), sampleLimit, 100, 0)
851
852 ml, ok := wrapped.(*maxSchemaAppender)
853 require.True(t, ok, "Expected maxSchemaAppender but got %T", wrapped)
854
855 bl, ok = ml.Appender.(*bucketLimitAppender)
856 require.True(t, ok, "Expected bucketLimitAppender but got %T", wrapped)
857
858 la, ok = bl.Appender.(*limitAppender)
859 require.True(t, ok, "Expected limitAppender but got %T", bl)
860
861 tl, ok = la.Appender.(*timeLimitAppender)
862 require.True(t, ok, "Expected timeLimitAppender but got %T", la.Appender)
863
864 require.Equal(t, baseAppender, tl.Appender, "Expected base appender but got %T", tl.Appender)

Callers

nothing calls this directly

Calls 4

appendableFuncFuncType · 0.85
newTestScrapeLoopFunction · 0.85
appenderWithLimitsFunction · 0.85
AppenderMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…