Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Backend Search #1174

Merged
merged 31 commits into from
Dec 16, 2021
Merged

Backend Search #1174

merged 31 commits into from
Dec 16, 2021

Conversation

joe-elliott
Copy link
Member

@joe-elliott joe-elliott commented Dec 13, 2021

What this PR does:
Adds support for full backend search to the /api/search endpoint. If parameters start and end are provided Tempo will perform a full backend search by scanning the blocks in parallel. This PR also includes code to run and configuration to use a Google Cloud Function to perform the scanning of blocks.

Changes:

  • Additional query-frontend params related to search. default_result_limit and max_result_limit were moved from the querier config to here:
query_frontend:
  search:
    concurrent_jobs: <int>
    target_bytes_per_job: <int>
    default_result_limit: <int>
    max_result_limit: <int>
    max_duration: <duration>
    query_ingesters_within_min: <duration>
    query_ingesters_within_max: <duration>
  • Additional storage parameters related to search:
storage:
  trace:
    search:
      chunk_size_bytes: <int>
      prefetch_trace_count: <int>
  • Full Backend and Serverless integration tests
  • Fixes on some flakey integration tests by using cortex_e2e.WaitMissingMetrics
  • Testing on model.Matches()

Which issue(s) this PR fixes:
Fixes #1112

Even though we are clearing #1112 as part of this PR backend search is far from complete. A new issue will be created "Backend search production readiness" (#1175) that will track future search work.

Checklist

  • Tests updated
  • Documentation added
  • CHANGELOG.md updated - the order of entries should be [CHANGE], [FEATURE], [ENHANCEMENT], [BUGFIX]

tempodb/tempodb.go Show resolved Hide resolved
modules/frontend/config.go Outdated Show resolved Hide resolved
modules/frontend/searchsharding.go Show resolved Hide resolved
modules/frontend/searchsharding.go Outdated Show resolved Hide resolved
modules/frontend/searchsharding.go Outdated Show resolved Hide resolved
Copy link
Member

@yvrhdn yvrhdn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Really nice work consolidating all those search functions!

integration/e2e/serverless_test.go Outdated Show resolved Hide resolved
modules/frontend/frontend.go Outdated Show resolved Hide resolved
pkg/tempopb/tempo.proto Outdated Show resolved Hide resolved
docs/tempo/website/configuration/_index.md Outdated Show resolved Hide resolved
modules/frontend/searchsharding.go Outdated Show resolved Hide resolved
Signed-off-by: Joe Elliott <[email protected]>
Signed-off-by: Joe Elliott <[email protected]>
Signed-off-by: Joe Elliott <[email protected]>
Signed-off-by: Joe Elliott <[email protected]>
Signed-off-by: Joe Elliott <[email protected]>
Signed-off-by: Joe Elliott <[email protected]>
Copy link
Contributor

@mdisibio mdisibio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Excellent work! LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support Backend Search
3 participants