(t *testing.T)
| 617 | } |
| 618 | |
| 619 | func TestQueryRangeMaxSeriesDisabled(t *testing.T) { |
| 620 | util.RunIntegrationTests(t, util.TestHarnessConfig{ |
| 621 | ConfigOverlay: configQueryRangeMaxSeriesDisabled, |
| 622 | }, func(h *util.TempoHarness) { |
| 623 | h.WaitTracesWritable(t) |
| 624 | |
| 625 | ticker := time.NewTicker(500 * time.Millisecond) |
| 626 | defer ticker.Stop() |
| 627 | timer := time.NewTimer(5 * time.Second) |
| 628 | defer timer.Stop() |
| 629 | spanCount := 0 |
| 630 | sendLoop: |
| 631 | for { |
| 632 | select { |
| 633 | case <-ticker.C: |
| 634 | require.NoError(t, h.WriteJaegerBatch(util.MakeThriftBatch(), "")) |
| 635 | spanCount++ |
| 636 | case <-timer.C: |
| 637 | break sendLoop |
| 638 | } |
| 639 | } |
| 640 | |
| 641 | // Wait for traces to be flushed to blocks. spanCount happens to make traces count |
| 642 | h.WaitTracesQueryable(t, spanCount) |
| 643 | |
| 644 | callQueryRange(t, h, queryRangeRequest{ |
| 645 | Query: "{} | rate() by (span:id)", |
| 646 | Start: time.Now().Add(-5 * time.Minute), |
| 647 | End: time.Now(), |
| 648 | Step: "5s", |
| 649 | Exemplars: 100, |
| 650 | }, func(queryRangeRes *tempopb.QueryRangeResponse, err error) { |
| 651 | require.NoError(t, err) |
| 652 | require.NotNil(t, queryRangeRes) |
| 653 | require.Equal(t, tempopb.PartialStatus_COMPLETE, queryRangeRes.GetStatus()) |
| 654 | require.Equal(t, spanCount, len(queryRangeRes.GetSeries())) |
| 655 | }) |
| 656 | }) |
| 657 | } |
| 658 | |
| 659 | func TestQueryRangeTypeHandling(t *testing.T) { |
| 660 | util.RunIntegrationTests(t, util.TestHarnessConfig{}, func(h *util.TempoHarness) { |
nothing calls this directly
no test coverage detected