MCPcopy
hub / github.com/grafana/tempo / TestIngesterRequests

Function TestIngesterRequests

modules/frontend/search_sharder_test.go:491–718  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

489}
490
491func TestIngesterRequests(t *testing.T) {
492 synctest.Test(t, func(t *testing.T) {
493 nownow := time.Now()
494
495 now := int(nownow.Unix())
496
497 ago := func(d string) int {
498 duration, err := time.ParseDuration(d)
499 require.NoError(t, err)
500 return int(nownow.Add(-duration).Unix())
501 }
502 tenMinutesAgo := int(nownow.Add(-10 * time.Minute).Unix())
503 fifteenMinutesAgo := int(nownow.Add(-15 * time.Minute).Unix())
504 twentyMinutesAgo := int(nownow.Add(-20 * time.Minute).Unix())
505
506 tests := []struct {
507 request string
508 queryBackendAfter time.Duration
509 ingesterShards int
510 expectedURI []string
511 expectedError error
512 }{
513 // start/end is outside queryBackendAfter
514 {
515 request: "/?tags=foo%3Dbar&minDuration=10ms&maxDuration=30ms&limit=50&start=10&end=20",
516 queryBackendAfter: 10 * time.Minute,
517 expectedURI: []string{},
518 ingesterShards: 1,
519 },
520 // start/end is inside queryBackendAfter
521 {
522 request: "/?tags=foo%3Dbar&minDuration=10ms&maxDuration=30ms&limit=50&start=" + strconv.Itoa(tenMinutesAgo) + "&end=" + strconv.Itoa(now),
523 queryBackendAfter: 30 * time.Minute,
524 expectedURI: []string{"/querier?end=" + strconv.Itoa(now) + "&limit=50&maxDuration=30ms&minDuration=10ms&spss=3&start=" + strconv.Itoa(tenMinutesAgo) + "&tags=foo%3Dbar"},
525 ingesterShards: 1,
526 },
527 // queryBackendAfter = 0 results in no ingester query
528 {
529 request: "/?tags=foo%3Dbar&minDuration=10ms&maxDuration=30ms&limit=50&start=" + strconv.Itoa(tenMinutesAgo) + "&end=" + strconv.Itoa(now),
530 queryBackendAfter: 0,
531 expectedURI: []string{},
532 ingesterShards: 1,
533 },
534 // start/end = 20 - 10 mins ago - break across query backend after
535 // ingester start/End = 15 - 10 mins ago
536 {
537 request: "/?tags=foo%3Dbar&minDuration=10ms&maxDuration=30ms&limit=50&start=" + strconv.Itoa(twentyMinutesAgo) + "&end=" + strconv.Itoa(tenMinutesAgo),
538 queryBackendAfter: 15 * time.Minute,
539 expectedURI: []string{"/querier?end=" + strconv.Itoa(tenMinutesAgo) + "&limit=50&maxDuration=30ms&minDuration=10ms&spss=3&start=" + strconv.Itoa(fifteenMinutesAgo) + "&tags=foo%3Dbar"},
540 ingesterShards: 1,
541 },
542 // start/end = 10 - now mins ago - break across query backend after
543 // ingester start/End = 10 - now mins ago
544 // backend start/End = 15 - 10 mins ago
545 {
546 request: "/?tags=foo%3Dbar&minDuration=10ms&maxDuration=30ms&limit=50&start=" + strconv.Itoa(tenMinutesAgo) + "&end=" + strconv.Itoa(now),
547 queryBackendAfter: 15 * time.Minute,
548 expectedURI: []string{"/querier?end=" + strconv.Itoa(now) + "&limit=50&maxDuration=30ms&minDuration=10ms&spss=3&start=" + strconv.Itoa(tenMinutesAgo) + "&tags=foo%3Dbar"},

Callers

nothing calls this directly

Calls 12

SetWeightMethod · 0.95
ingesterRequestsMethod · 0.95
HTTPRequestMethod · 0.95
WeightMethod · 0.95
ParseSearchRequestFunction · 0.92
NewHTTPRequestFunction · 0.92
timeFromFunction · 0.85
TestMethod · 0.80
QueryMethod · 0.80
NowMethod · 0.65
AddMethod · 0.65
EqualMethod · 0.45

Tested by

no test coverage detected