MCPcopy Create free account
hub / github.com/cortexproject/cortex / verifySamples

Function verifySamples

pkg/testexporter/correctness/simple.go:155–186  ·  view source on GitHub ↗
(log *spanlogger.SpanLogger, tc Case, pairs []model.SamplePair, duration time.Duration, cfg CommonTestConfig)

Source from the content-addressed store, hash-verified

153}
154
155func verifySamples(log *spanlogger.SpanLogger, tc Case, pairs []model.SamplePair, duration time.Duration, cfg CommonTestConfig) bool {
156 for _, pair := range pairs {
157 correct := timeEpsilonCorrect(tc.ExpectedValueAt, pair, cfg.testTimeEpsilon) || valueEpsilonCorrect(tc.ExpectedValueAt, pair, cfg.testEpsilon)
158 if correct {
159 sampleResult.WithLabelValues(tc.Name(), success).Inc()
160 } else {
161 sampleResult.WithLabelValues(tc.Name(), fail).Inc()
162 level.Error(log).Log("msg", "wrong value", "at", pair.Timestamp, "expected", tc.ExpectedValueAt(pair.Timestamp.Time()), "actual", pair.Value)
163 log.Error(fmt.Errorf("wrong value"))
164 return false
165 }
166 }
167
168 // when verifying a deleted series we get samples for very short interval. As small as 1 or 2 missing/extra samples can cause test to fail.
169 if duration > 5*time.Minute {
170 expectedNumSamples := int(duration / cfg.ScrapeInterval)
171 if !epsilonCorrect(float64(len(pairs)), float64(expectedNumSamples), cfg.samplesEpsilon) {
172 level.Error(log).Log("msg", "wrong number of samples", "expected", expectedNumSamples, "actual", len(pairs))
173 log.Error(fmt.Errorf("wrong number of samples"))
174 return false
175 }
176 } else {
177 expectedNumSamples := int(duration / cfg.ScrapeInterval)
178 if math.Abs(float64(expectedNumSamples-len(pairs))) > 2 {
179 level.Error(log).Log("msg", "wrong number of samples", "expected", expectedNumSamples, "actual", len(pairs))
180 log.Error(fmt.Errorf("wrong number of samples"))
181 return false
182 }
183 }
184
185 return true
186}
187
188func timeEpsilonCorrect(f func(time.Time) float64, pair model.SamplePair, testTimeEpsilon time.Duration) bool {
189 minExpected := f(pair.Timestamp.Time().Add(-testTimeEpsilon))

Callers 2

TestMethod · 0.85
TestMethod · 0.85

Calls 8

timeEpsilonCorrectFunction · 0.85
valueEpsilonCorrectFunction · 0.85
epsilonCorrectFunction · 0.85
NameMethod · 0.65
ExpectedValueAtMethod · 0.65
IncMethod · 0.45
LogMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected