(t *testing.T)
| 805 | } |
| 806 | |
| 807 | func 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) |
nothing calls this directly
no test coverage detected
searching dependent graphs…