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

[Discover] Makes caching dataset options optional #8799

Merged
merged 4 commits into from
Nov 4, 2024

Conversation

ashwin-pc
Copy link
Member

Description

Makes caching dataset options optional. Enables it only for s3 since its metadtata calls are slower.

Additinal fix: When caching was no longer optional, qury assist api calls held the Clusters menu in a perpetual loading state causing the menu to not load. This fixes that by timing out only the is enabled queries to not prevent that menu from loading.

Issues Resolved

Screenshot

Testing the changes

See unit test.

Or for Manual testing:

  • Open Discover
  • Open the advanced data selector
  • Select index patterns, the menu shoud always fire a network request
  • Select Indices, the menu should always fire a network request
  • Select S3, the menu should only fire the query oince

Changelog

  • fix: [Discover] Makes cachign dataset options optional and configurable by the dataset type

Check List

  • All tests pass
    • yarn test:jest
    • yarn test:jest_integration
  • New functionality includes testing.
  • New functionality has been documented.
  • Update CHANGELOG.md
  • Commits are signed per the DCO using --signoff

kavilla
kavilla previously approved these changes Nov 4, 2024
Copy link

codecov bot commented Nov 4, 2024

Codecov Report

Attention: Patch coverage is 92.30769% with 1 line in your changes missing coverage. Please review.

Project coverage is 60.78%. Comparing base (5829303) to head (707527b).
Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
...ry/query_string/dataset_service/dataset_service.ts 85.71% 0 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #8799      +/-   ##
==========================================
+ Coverage   60.77%   60.78%   +0.01%     
==========================================
  Files        3798     3798              
  Lines       90695    90701       +6     
  Branches    14279    14284       +5     
==========================================
+ Hits        55121    55135      +14     
+ Misses      32075    32067       -8     
  Partials     3499     3499              
Flag Coverage Δ
Linux_1 29.05% <0.00%> (-0.01%) ⬇️
Linux_2 56.39% <ø> (ø)
Linux_3 37.65% <85.71%> (+0.01%) ⬆️
Linux_4 29.82% <46.15%> (+<0.01%) ⬆️
Windows_1 29.06% <0.00%> (-0.01%) ⬇️
Windows_2 56.34% <ø> (ø)
Windows_3 37.65% <85.71%> (+0.02%) ⬆️
Windows_4 29.82% <46.15%> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Signed-off-by: Kawika Avilla <[email protected]>
@@ -36,6 +36,8 @@ export interface DatasetTypeConfig {
supportsTimeFilter?: boolean;
/** Optional isFieldLoadAsync determines if field loads are async */
isFieldLoadAsync?: boolean;
/** Optional cacheOptions determines if the data structure is cacheable. Defaults to false */
cacheOptions?: boolean;
Copy link
Member

Choose a reason for hiding this comment

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

Why don't we just name it cacheable since it is a boolean.

const isEnabled = await getAvailableLanguagesForDataSource(http, dataSourceId).then(
(languages) => languages.length > 0
);
// [TODO] - The timmeout exists because the loading of the Datasource menu is prevented until this request completes. This if a single cluster is down the request holds the whole menu level in a loading state. We should make this call non blocking and load the datasource meta in the background.
Copy link
Member

Choose a reason for hiding this comment

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

Suggested change
// [TODO] - The timmeout exists because the loading of the Datasource menu is prevented until this request completes. This if a single cluster is down the request holds the whole menu level in a loading state. We should make this call non blocking and load the datasource meta in the background.
// [TODO] - The timeout exists because the loading of the Datasource menu is prevented until this request completes. Then if a single cluster is down the request holds the whole menu level in a loading state. We should make this call non blocking and load the datasource meta in the background.

@SuZhou-Joe SuZhou-Joe merged commit 005a83a into opensearch-project:main Nov 4, 2024
67 of 69 checks passed
@opensearch-trigger-bot
Copy link
Contributor

The backport to 2.x failed:

The process '/usr/bin/git' failed with exit code 128

To backport manually, run these commands in your terminal:

# Navigate to the root of your repository
cd $(git rev-parse --show-toplevel)
# Fetch latest updates from GitHub
git fetch
# Create a new working tree
git worktree add ../.worktrees/OpenSearch-Dashboards/backport-2.x 2.x
# Navigate to the new working tree
pushd ../.worktrees/OpenSearch-Dashboards/backport-2.x
# Create a new branch
git switch --create backport/backport-8799-to-2.x
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x --mainline 1 005a83a4091d912649283f79ab0b5d617066955d
# Push it to GitHub
git push --set-upstream origin backport/backport-8799-to-2.x
# Go back to the original working tree
popd
# Delete the working tree
git worktree remove ../.worktrees/OpenSearch-Dashboards/backport-2.x

Then, create a pull request where the base branch is 2.x and the compare/head branch is backport/backport-8799-to-2.x.

angle943 added a commit to angle943/OpenSearch-Dashboards that referenced this pull request Jan 22, 2025
ananzh pushed a commit to ananzh/OpenSearch-Dashboards that referenced this pull request Jan 23, 2025
…#8799)

* [Discover] Makes caching dataset options optional.

* Adds unit test

* Changeset file for PR opensearch-project#8799 created/updated

* Update test

Signed-off-by: Kawika Avilla <[email protected]>

---------

Signed-off-by: Kawika Avilla <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
Co-authored-by: Kawika Avilla <[email protected]>
ananzh added a commit that referenced this pull request Jan 23, 2025
…ing backports (#9261)

* [Discover] Makes caching dataset options optional (#8799)

* [Discover] Makes caching dataset options optional.

* Adds unit test

* Changeset file for PR #8799 created/updated

* Update test

Signed-off-by: Kawika Avilla <[email protected]>

---------

Signed-off-by: Kawika Avilla <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
Co-authored-by: Kawika Avilla <[email protected]>

* Upgrade Cypress to v12 (#8995)

* Update Cypress to v12 (#8926)

* Update cypress to v12

Signed-off-by: Daniel Rowe <[email protected]>

* Add required e2e.js

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #8926 created/updated

* Update license header

Signed-off-by: Daniel Rowe <[email protected]>

* Update license in e2e.js

Signed-off-by: Daniel Rowe <[email protected]>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* fix: support imports without extensions in cypress webpack build (#8993)

* fix: support imports without extensions in cypress webpack build

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #8993 created/updated

* use typescript config

Signed-off-by: Daniel Rowe <[email protected]>

* fix lint

Signed-off-by: Daniel Rowe <[email protected]>

* disable new test isolation feature

This isolation was causing regressions

Signed-off-by: Daniel Rowe <[email protected]>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* [Discover Test] TestID-69: Filtering. Add data-test-subj tags. (#9027)

* Update Cypress to v12 (#8926)

* Update cypress to v12

Signed-off-by: Daniel Rowe <[email protected]>

* Add required e2e.js

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #8926 created/updated

* Update license header

Signed-off-by: Daniel Rowe <[email protected]>

* Update license in e2e.js

Signed-off-by: Daniel Rowe <[email protected]>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* fix: support imports without extensions in cypress webpack build (#8993)

* fix: support imports without extensions in cypress webpack build

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #8993 created/updated

* use typescript config

Signed-off-by: Daniel Rowe <[email protected]>

* fix lint

Signed-off-by: Daniel Rowe <[email protected]>

* disable new test isolation feature

This isolation was causing regressions

Signed-off-by: Daniel Rowe <[email protected]>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* Add data-test-subj tags.

Signed-off-by: Argus Li <[email protected]>

---------

Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Argus Li <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* Migrate query enhancement tests from functional repo to main (#9048)

* migrate query enhacenement tests

Signed-off-by: abbyhu2000 <[email protected]>

* ignore lint in data files

Signed-off-by: abbyhu2000 <[email protected]>

* remove yarn lock changes

Signed-off-by: abbyhu2000 <[email protected]>

* add changelog

Signed-off-by: abbyhu2000 <[email protected]>

---------

Signed-off-by: abbyhu2000 <[email protected]>

* Add missing data-test-subj tags for discover plugin (#9049)

* Add data-test-subj for discover
Signed-off-by: Anan Zhuang <[email protected]>
* fix comment
Signed-off-by: Anan Zhuang <[email protected]>

---------

Signed-off-by: Anan Zhuang <[email protected]>

* Add missing data-test-subj tags for data plugin (#9051)

* Add missing data-test-subj tags for data plugin
* Update Snapshots
* Fix as per the comments

---------

Signed-off-by: Suchit Sahoo <[email protected]>
Co-authored-by: Anan Zhuang <[email protected]>

* Follow up on #9048 by updating data and utilities (#9060)

* Follow up on #9048 by updating data and utilities

Feature branch PRs:
#9038
#9006

Signed-off-by: Anan <[email protected]>

* fix comment

Signed-off-by: Anan <[email protected]>

* update path and add utility from suchit commit

Signed-off-by: Anan <[email protected]>

* update the path to run sample test

Signed-off-by: Anan <[email protected]>

* fix PR comments

Signed-off-by: Anan <[email protected]>

* skip tests before enable workspace

Signed-off-by: Anan <[email protected]>

---------

Signed-off-by: Anan <[email protected]>

* refactor some query-enhancement utility functions, add some missing typings (#9074)

* refactor some query-enhancement utility functions, add some missing typings

Signed-off-by: Justin Kim <[email protected]>

* Changeset file for PR #9074 created/updated

---------

Signed-off-by: Justin Kim <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* add queryEditorLanguageOptions data-test-subj on language_selector.tsx (#9029)

Signed-off-by: Federico Silva <[email protected]>
Co-authored-by: Federico Silva <[email protected]>

* Re-enable dataset_selector.spec.js and queries.spec.js under workspace (#9082)

* Re-enable dataset_selector.spec.js and queries.spec.js under workspace

Signed-off-by: Anan <[email protected]>

* fix comment

Signed-off-by: Anan <[email protected]>

* add verifyHitCount for PPL

Signed-off-by: Anan <[email protected]>

* Changeset file for PR #9082 created/updated

---------

Signed-off-by: Anan <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* Make createWorkspaceIndexPatterns to handle no default cluster and clean up (#9129)

* Make createWorkspaceIndexPatterns to handle no default cluster and clean up

Signed-off-by: Anan <[email protected]>

* Changeset file for PR #9129 created/updated

---------

Signed-off-by: Anan <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* add data-test-subj (#9135)

Signed-off-by: Federico Silva <[email protected]>

* [Discover] Adding Cypress Tests for S3 Datasets (#9113)

* [Discover 2.0 Testing] Create Filtering Test (TestId-69: Filtering) (#9119)

* Add test for filtering functionality for discover, which enables query enhancement
* Make test more robust: Add logic to use date picker start and end buttons if set to absolute times. Check the table length directly instead of number of hits to avoid bug where not all results load.

---------

Signed-off-by: Argus Li <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* Add tests for saved search creation and loading for query enhancement (#9112)

* Add tests for saved search creation and loading for query enhancement
* click on a random element before typing on query editor to bypass the popover that appears
* address pr comments - refactor to create saved search as an api call
* address pr comments - specifically navigate to discover page before setting datasource

Signed-off-by: Justin Kim <[email protected]>

---------

Signed-off-by: Justin Kim <[email protected]>
Signed-off-by: Anan Zhuang <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
Co-authored-by: Anan Zhuang <[email protected]>

* fix: 0 rendered in discover when there are no results (#9153)

* fix: 0 rendered in discover when there are no results

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #9153 created/updated

---------

Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* [Cypress][Fix] Update saved search utilities (#9151)

* update saved search
* minor refactor4 on setDatePickerDatesAndSearchIfRelevant

Signed-off-by: Justin Kim <[email protected]>

---------

Signed-off-by: Justin Kim <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* chore: use relative paths in cypress (#9079)

* chore: use relative paths in cypress

when we move to running tests in parallel we won't be able to use a single
hardcoded basepath as these can differ by tasks

Signed-off-by: Daniel Rowe <[email protected]>

* Changeset file for PR #9079 created/updated

---------

Signed-off-by: Daniel Rowe <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* [Discover 2.0 Testing] Create View List of Saved Queries Test (Test-Id 124: View list of Saved query)  (#9166)

* add spec for old ui

Signed-off-by: Argus Li <[email protected]>

* Add comment about cleaning up saved queries

Signed-off-by: Argus Li <[email protected]>

* Add data-test-subj for save query new ui

Signed-off-by: Argus Li <[email protected]>

* Add data-test-subj for save query button for new ui

Signed-off-by: Argus Li <[email protected]>

* Add data-test-subj for open query button in query management popover

Signed-off-by: Argus Li <[email protected]>

* Add new ui spec to test list saved queries

Signed-off-by: Argus Li <[email protected]>

* Fix DataSource url

Signed-off-by: Argus Li <[email protected]>

* Changeset file for PR #9166 created/updated

* Address Justin's comments.

Signed-off-by: Argus Li <[email protected]>

* Remove final force.

Signed-off-by: Argus Li <[email protected]>

* Fix final force.

Signed-off-by: Argus Li <[email protected]>

* Move utils to Suchit's suggested location, fix comments

Signed-off-by: Argus Li <[email protected]>

* Rename specs, change cypress workflow to use new save query ui, merge old ui and new ui commands

Signed-off-by: Argus Li <[email protected]>

* fix import

Signed-off-by: Argus Li <[email protected]>

---------

Signed-off-by: Argus Li <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>

* change casing to folder structures to be compliant with our rules (#9197)

Signed-off-by: Justin Kim <[email protected]>

* [Fix] Saved Search Integ Test Update: update saving a new saved search test spec (#9200)

* wait for the page to be loaded before loading a saved search
* when loading a saved search and saving it as a new saved search, use a different name

Signed-off-by: Justin Kim <[email protected]>

---------

Signed-off-by: Justin Kim <[email protected]>

* refactor query enhancement tests (#9208)

Signed-off-by: Justin Kim <[email protected]>

* chore: change casing of data-logs to be compliant with our git hook rules (#9220)

Signed-off-by: Justin Kim <[email protected]>

* chore: remove unused/redundant functions from field_display_filtering utils (#9219)

Signed-off-by: Justin Kim <[email protected]>

* Create cypress command namespacing util (#9150)

* update cy.createInitialWorkspaceWithDataSource -> cy.osd.createInitialWorkspaceWithDataSource (#9262)

Signed-off-by: Justin Kim <[email protected]>

---------

Signed-off-by: Kawika Avilla <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Daniel Rowe <[email protected]>
Signed-off-by: Argus Li <[email protected]>
Signed-off-by: abbyhu2000 <[email protected]>
Signed-off-by: Anan Zhuang <[email protected]>
Signed-off-by: Suchit Sahoo <[email protected]>
Signed-off-by: Anan <[email protected]>
Signed-off-by: Justin Kim <[email protected]>
Signed-off-by: Federico Silva <[email protected]>
Signed-off-by: Federico Silva <[email protected]>
Co-authored-by: Ashwin P Chandran <[email protected]>
Co-authored-by: opensearch-changeset-bot[bot] <154024398+opensearch-changeset-bot[bot]@users.noreply.github.com>
Co-authored-by: Kawika Avilla <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: Argus Li <[email protected]>
Co-authored-by: Daniel Rowe <[email protected]>
Co-authored-by: Qingyang(Abby) Hu <[email protected]>
Co-authored-by: Suchit Sahoo <[email protected]>
Co-authored-by: Justin Kim <[email protected]>
Co-authored-by: Federico Silva <[email protected]>
Co-authored-by: Federico Silva <[email protected]>
Co-authored-by: Federico Silva <[email protected]>
Co-authored-by: Sean Li <[email protected]>
Co-authored-by: d rowe <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants