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

[Dataset Quality]Add logic to display degraded fields in DQ Flyout #183934

Conversation

achyutjhunjhunwala
Copy link
Contributor

@achyutjhunjhunwala achyutjhunjhunwala commented May 21, 2024

Summary

Closes #172265

Description

This PR adds the Degraded Fields Table to the Dataset Quality Flyout for individual Data Stream. Following tasks were done as part of this PR

  1. A new server side endpoint created which queries the datastream directly and aggregates _ignored fields for that data stream during the given time range and also adds a sub aggregation for last occurence.
  2. On the UI Side, the table was added with 3 columns as mentioned in the Original ticket - Field, Count and Last Occurrence
  3. The UI currently supports clients side sorting and pagination. We can move this to server side pagination sorting if required in the future.
  4. The Flyout also supports sync with the URL which means user can navigate to the Dataset Quality page where the flyout would be open and Sorting and Pagination would be pre-applied
  5. API Tests
  6. Stateful and Serverless FTR tests

Screenshot

image

Scenario

  1. Spin up a 8.14-snapshot instance
  2. Ingest degraded docs
  3. Upgrade to 8.15-snapshot
  4. Open Data Set Quality Flyout and see how the page looks like
image

@achyutjhunjhunwala achyutjhunjhunwala self-assigned this May 21, 2024
@apmmachine
Copy link
Contributor

🤖 GitHub comments

Expand to view the GitHub comments

Just comment with:

  • /oblt-deploy : Deploy a Kibana instance using the Observability test environments.
  • run docs-build : Re-trigger the docs validation. (use unformatted text in the comment!)

@achyutjhunjhunwala achyutjhunjhunwala added Team:obs-ux-logs Observability Logs User Experience Team backport:skip This commit does not require backporting release_note:feature Makes this part of the condensed release notes release_note:skip Skip the PR/issue when compiling release notes and removed release_note:feature Makes this part of the condensed release notes labels May 21, 2024
@achyutjhunjhunwala
Copy link
Contributor Author

/ci

@achyutjhunjhunwala achyutjhunjhunwala marked this pull request as ready for review May 24, 2024 13:14
@achyutjhunjhunwala achyutjhunjhunwala requested review from a team as code owners May 24, 2024 13:14
@elasticmachine
Copy link
Contributor

Pinging @elastic/obs-ux-logs-team (Team:obs-ux-logs)

@botelastic botelastic bot added ci:project-deploy-observability Create an Observability project Team:obs-ux-management Observability Management User Experience Team labels May 24, 2024
@elasticmachine
Copy link
Contributor

Pinging @elastic/obs-ux-management-team (Team:obs-ux-management)

@tonyghiani tonyghiani self-requested a review May 28, 2024 09:22
Copy link
Contributor

@tonyghiani tonyghiani left a comment

Choose a reason for hiding this comment

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

I did a first pass and left some notes, I think the new API is not versioned and it requires to update the implementation to comply with the specs, good job overall 👌

@flash1293
Copy link
Contributor

It seems like the "last occurrence" is not formatted properly:

Screenshot 2024-05-28 at 14 22 26

@achyutjhunjhunwala
Copy link
Contributor Author

@flash1293 Thank you for pointing it out. I have fixed it now
image

@flash1293
Copy link
Contributor

Thanks @achyutjhunjhunwala ! One other note about the user experience - should we indicate somehow if the list of ignored fields is not exhaustive?

In the simplest way it would just be a mention in the tooltip: https://github.com/elastic/kibana/pull/183934/files#diff-e14f87ebe930d154e4d8be9da8d99811c8a756fca476f339edaaa62009c5c257R147

@achyutjhunjhunwala
Copy link
Contributor Author

achyutjhunjhunwala commented May 29, 2024

Thanks @achyutjhunjhunwala ! One other note about the user experience - should we indicate somehow if the list of ignored fields is not exhaustive?

In the simplest way it would just be a mention in the tooltip: https://github.com/elastic/kibana/pull/183934/files#diff-e14f87ebe930d154e4d8be9da8d99811c8a756fca476f339edaaa62009c5c257R147

@flash1293 Sounds good to me. I will proceed with something like this "Set of degraded fields in the dataset. Please not that this list may not be exhaustive."

@mdbirnstiehl Can you help me here with a better copy ?

Copy link
Contributor

@tonyghiani tonyghiani left a comment

Choose a reason for hiding this comment

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

LGTM, thanks for addressing the changes!

@achyutjhunjhunwala achyutjhunjhunwala enabled auto-merge (squash) May 29, 2024 10:46
@kibana-ci
Copy link
Collaborator

kibana-ci commented May 29, 2024

💛 Build succeeded, but was flaky

Failed CI Steps

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
datasetQuality 187 193 +6

Public APIs missing comments

Total count of every public API that lacks a comment. Target amount is 0. Run node scripts/build_api_docs --plugin [yourplugin] --stats comments for more detailed information.

id before after diff
observability 689 691 +2

Async chunks

Total size of all lazy-loaded chunks that will be downloaded as the user navigates the app

id before after diff
datasetQuality 179.4KB 183.5KB +4.1KB

Canvas Sharable Runtime

The Canvas "shareable runtime" is an bundle produced to enable running Canvas workpads outside of Kibana. This bundle is included in third-party webpages that embed canvas and therefor should be as slim as possible.

id before after diff
module count - 5412 +5412
total size - 8.8MB +8.8MB

Page load bundle

Size of the bundles that are downloaded on every page load. Target size is below 100kb

id before after diff
datasetQuality 36.7KB 38.1KB +1.4KB
observabilityLogsExplorer 16.3KB 16.3KB +49.0B
total +1.5KB
Unknown metric groups

API count

id before after diff
observability 698 700 +2

History

To update your PR or re-run it, just comment with:
@elasticmachine merge upstream

cc @achyutjhunjhunwala

@achyutjhunjhunwala achyutjhunjhunwala merged commit 6f7f133 into elastic:main May 29, 2024
21 of 22 checks passed
'xpack.datasetQuality.flyoutDegradedFieldsSectionTooltip',
{
defaultMessage:
'Set of degraded fields in the dataset. Please not that this list may not be exhaustive.',
Copy link
Contributor

Choose a reason for hiding this comment

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

Looks like there's a typo here. "Please note..." instead of "Please not..." You can probably remove that part anyway and just say "This list may not be exhaustive." We could also change the tooltip a little more and say, "A partial list of degraded fields found in your dataset." to imply that it's not exhaustive.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thank @mdbirnstiehl I will go with "A partial list of degraded fields found in your dataset." and update the tooltip in my next PR

@achyutjhunjhunwala achyutjhunjhunwala deleted the logic-to-display-degraded-fields branch May 30, 2024 07:56
rshen91 pushed a commit to rshen91/kibana that referenced this pull request May 30, 2024
…lastic#183934)

## Summary

Closes elastic#172265


## Description

This PR adds the Degraded Fields Table to the Dataset Quality Flyout for
individual Data Stream. Following tasks were done as part of this PR

1. A new server side endpoint created which queries the `datastream`
directly and aggregates `_ignored` fields for that data stream during
the given time range and also adds a sub aggregation for last occurence.
2. On the UI Side, the table was added with 3 columns as mentioned in
the Original ticket - Field, Count and Last Occurrence
3. The UI currently supports clients side sorting and pagination. We can
move this to server side pagination sorting if required in the future.
4. The Flyout also supports sync with the URL which means user can
navigate to the Dataset Quality page where the flyout would be open and
Sorting and Pagination would be pre-applied
5. API Tests
6. Stateful and Serverless FTR tests


## Screenshot

<img width="1278" alt="image"
src="https://github.com/elastic/kibana/assets/7416358/36a9b5cd-de05-4d17-99a2-cc08ec4583dd">


## Scenario

1. Spin up a 8.14-snapshot instance
2. Ingest degraded docs
3. Upgrade to 8.15-snapshot
4. Open Data Set Quality Flyout and see how the page looks like

<img width="1286" alt="image"
src="https://github.com/elastic/kibana/assets/7416358/100f3c8c-b697-4f81-ac7e-427d0f468407">
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:skip This commit does not require backporting ci:project-deploy-observability Create an Observability project release_note:skip Skip the PR/issue when compiling release notes Team:obs-ux-logs Observability Logs User Experience Team Team:obs-ux-management Observability Management User Experience Team v8.15.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Dataset quality] Add section for _ignored field in dataset flyout
9 participants