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

🌊 Streams: Overview page redesign #214196

Merged
merged 22 commits into from
Mar 20, 2025

Conversation

flash1293
Copy link
Contributor

@flash1293 flash1293 commented Mar 12, 2025

This PR overhauls the overview page.

Classic stream:
Screenshot 2025-03-12 at 21 00 39

Wired stream:
Screenshot 2025-03-12 at 21 01 56

Doubts / things I changed from the design

  • Quick links is just all dashboards, so I adjusted the wording accordingly. Also, since we render all dashboards, there isn't really value in "View all assets"
  • The panel on top is already stating the count of docs, why should we repeat that in the histogram panel?
  • No search bar - in the beginning we said we don't want this page to become discover, a search bar feels like we are going there. Also, what should the user enter there? I don't think we want to buy deeper in KQL
  • Should the count of docs be the total count of the count for the currently selected time range? Not sure what makes more sense
  • For wired streams I left the tabs in place to switch between child streams and quick links. We can revisit this once we get closer to actually releasing wired streams

@flash1293 flash1293 changed the title wip 🌊 Streams: Overview page redesign Mar 12, 2025
@flash1293 flash1293 added release_note:skip Skip the PR/issue when compiling release notes Team:obs-ux-logs Observability Logs User Experience Team backport:version Backport to applied version labels Feature:Streams This is the label for the Streams Project v9.1.0 v8.19.0 labels Mar 12, 2025
@flash1293
Copy link
Contributor Author

/ci

@flash1293
Copy link
Contributor Author

/ci

@LucaWintergerst
Copy link
Contributor

Quick links is just all dashboards, so I adjusted the wording accordingly. Also, since we render all dashboards, there isn't really value in "View all assets"

sounds good, hopefully we'll have more in the future

The panel on top is already stating the count of docs, why should we repeat that in the histogram panel?
Don't think so

No search bar - in the beginning we said we don't want this page to become discover, a search bar feels like we are going there. Also, what should the user enter there? I don't think we want to buy deeper in KQL

makes sense, we don't have good use for it anyways

Should the count of docs be the total count of the count for the currently selected time range? Not sure what makes more sense

I think time range makes more sense, that's what we do in most other places across Kibana

For wired streams I left the tabs in place to switch between child streams and quick links. We can revisit this once we get closer to actually releasing wired streams

👍

@flash1293
Copy link
Contributor Author

Discussed offline:

  • For histogram use same auto-bucketing as in discover
  • For histogram fix the time range in the chart to the selected time range no matter where the data is

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

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

Copy link
Contributor

@jughosta jughosta left a comment

Choose a reason for hiding this comment

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

Data Discovery changes LGTM 👍

@yngrdyn
Copy link
Contributor

yngrdyn commented Mar 19, 2025

No search bar - in the beginning we said we don't want this page to become discover, a search bar feels like we are going there. Also, what should the user enter there? I don't think we want to buy deeper in KQL

Maybe not a KQL bar but what about a UI search like Application -> Services
image
where users will be able to filter, or maybe just highlight a specific stream they are looking for (I imagine the case where the streams tree is huge)?

@flash1293
Copy link
Contributor Author

where users will be able to filter, or maybe just highlight a specific stream they are looking for (I imagine the case where the streams tree is huge)?

I think we can do that, but then it still shouldn't be at the very top of the page, but in the child streams panel

@klacabane
Copy link
Contributor

@flash1293 The refresh button does not seem to trigger any updates on the overview page (graph or metadata) unless I change the period. I see a few network requests triggered but the view is not refreshed

[share.url.locators]
);

const bucketSize = useMemo(() => computeInterval(timeRange, data), [data, timeRange]);
Copy link
Contributor

Choose a reason for hiding this comment

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

Lifecycle graph uses the data-plugin logic to calculate interval.
Not sure how much it differs from this one but it would be nice to align

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The computeInterval is what's used by the ESQL histogram AFAICT, seems like a good standard. The one from the data plugin seems like it's used for the KQL discover bar and is more configurable, I don't think we need to lean into these here.

So if anything I would vote for using computeInterval everywhere.

@flash1293
Copy link
Contributor Author

@klacabane good catch with the refresh button - the problem was that the time range never changed (it's always now-15m to now), but the absolute time range does. I fixed the hook to also update the absolute time range so fetches are retriggered properly. We might need to do this in other places too, but I would like to keep this PR scoped to the overview page.

@yngrdyn
Copy link
Contributor

yngrdyn commented Mar 20, 2025

I think we can do that, but then it still shouldn't be at the very top of the page, but in the child streams panel

I think still a valuable addition

Copy link
Contributor

@yngrdyn yngrdyn left a comment

Choose a reason for hiding this comment

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

LGTM, I just left some non-blocking comments

@flash1293 flash1293 enabled auto-merge (squash) March 20, 2025 16:55
@flash1293 flash1293 merged commit 184d0a3 into elastic:main Mar 20, 2025
9 checks passed
@kibanamachine
Copy link
Contributor

Starting backport for target branches: 8.x

https://github.com/elastic/kibana/actions/runs/13978074845

@elasticmachine
Copy link
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Metrics [docs]

Module Count

Fewer modules leads to a faster build time

id before after diff
aiops 604 605 +1
apm 1895 1896 +1
charts 166 167 +1
cloudSecurityPosture 682 683 +1
dashboard 643 644 +1
dataVisualizer 748 749 +1
discover 1213 1214 +1
esql 189 190 +1
esqlDataGrid 418 419 +1
eventAnnotationListing 593 594 +1
expressionHeatmap 187 188 +1
expressionMetricVis 140 141 +1
expressionPartitionVis 211 212 +1
expressionTagcloud 175 176 +1
expressionXY 264 265 +1
graph 275 276 +1
investigateApp 263 264 +1
lens 1358 1359 +1
ml 2401 2402 +1
observability 1312 1313 +1
observabilityAIAssistantApp 438 439 +1
securitySolution 7087 7088 +1
slo 1129 1130 +1
streamsApp 391 404 +13
transform 715 716 +1
triggersActionsUi 836 837 +1
visDefaultEditor 237 238 +1
visTypeTimelion 59 60 +1
visTypeTimeseries 496 497 +1
total +41

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
@kbn/visualization-utils 22 25 +3

Async chunks

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

id before after diff
streamsApp 375.5KB 379.6KB +4.1KB
unifiedHistogram 63.2KB 63.2KB +6.0B
total +4.1KB

Page load bundle

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

id before after diff
data 397.4KB 397.6KB +221.0B
Unknown metric groups

API count

id before after diff
@kbn/visualization-utils 24 27 +3

History

@kibanamachine
Copy link
Contributor

💔 All backports failed

Status Branch Result
8.x Backport failed because of merge conflicts

You might need to backport the following PRs to 8.x:
- 🌊 Streams: Link to streams in Discover (#214052)

Manual backport

To create the backport manually run:

node scripts/backport --pr 214196

Questions ?

Please refer to the Backport tool documentation

flash1293 added a commit to flash1293/kibana that referenced this pull request Mar 21, 2025
This PR overhauls the overview page.

Classic stream:
<img width="1004" alt="Screenshot 2025-03-12 at 21 00 39"
src="https://github.com/user-attachments/assets/a058da08-0ae2-48cc-abca-359b23288b32"
/>

Wired stream:
<img width="1019" alt="Screenshot 2025-03-12 at 21 01 56"
src="https://github.com/user-attachments/assets/bca04537-f79b-4814-8e31-9d3dae18ad90"
/>

## Doubts / things I changed from the design

* Quick links is just all dashboards, so I adjusted the wording
accordingly. Also, since we render all dashboards, there isn't really
value in "View all assets"
* The panel on top is already stating the count of docs, why should we
repeat that in the histogram panel?
* No search bar - in the beginning we said we don't want this page to
become discover, a search bar feels like we are going there. Also, what
should the user enter there? I don't think we want to buy deeper in KQL
* Should the count of docs be the total count of the count for the
currently selected time range? Not sure what makes more sense
* For wired streams I left the tabs in place to switch between child
streams and quick links. We can revisit this once we get closer to
actually releasing wired streams

---------

Co-authored-by: kibanamachine <[email protected]>
(cherry picked from commit 184d0a3)

# Conflicts:
#	x-pack/platform/plugins/shared/streams_app/tsconfig.json
@flash1293
Copy link
Contributor Author

💚 All backports created successfully

Status Branch Result
8.x

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

flash1293 added a commit that referenced this pull request Mar 21, 2025
# Backport

This will backport the following commits from `main` to `8.x`:
- [🌊 Streams: Overview page redesign
(#214196)](#214196)

<!--- Backport version: 9.6.6 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Joe
Reuter","email":"[email protected]"},"sourceCommit":{"committedDate":"2025-03-20T19:48:10Z","message":"🌊
Streams: Overview page redesign (#214196)\n\nThis PR overhauls the
overview page.\n\nClassic stream:\n<img width=\"1004\" alt=\"Screenshot
2025-03-12 at 21 00
39\"\nsrc=\"https://github.com/user-attachments/assets/a058da08-0ae2-48cc-abca-359b23288b32\"\n/>\n\nWired
stream:\n<img width=\"1019\" alt=\"Screenshot 2025-03-12 at 21 01
56\"\nsrc=\"https://github.com/user-attachments/assets/bca04537-f79b-4814-8e31-9d3dae18ad90\"\n/>\n\n\n##
Doubts / things I changed from the design\n\n* Quick links is just all
dashboards, so I adjusted the wording\naccordingly. Also, since we
render all dashboards, there isn't really\nvalue in \"View all
assets\"\n* The panel on top is already stating the count of docs, why
should we\nrepeat that in the histogram panel?\n* No search bar - in the
beginning we said we don't want this page to\nbecome discover, a search
bar feels like we are going there. Also, what\nshould the user enter
there? I don't think we want to buy deeper in KQL\n* Should the count of
docs be the total count of the count for the\ncurrently selected time
range? Not sure what makes more sense\n* For wired streams I left the
tabs in place to switch between child\nstreams and quick links. We can
revisit this once we get closer to\nactually releasing wired
streams\n\n---------\n\nCo-authored-by: kibanamachine
<[email protected]>","sha":"184d0a32adb2ec372c6427903d9269f813f04b6d","branchLabelMapping":{"^v9.1.0$":"main","^v8.19.0$":"8.x","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:obs-ux-logs","backport:version","Feature:Streams","v9.1.0","v8.19.0"],"title":"🌊
Streams: Overview page
redesign","number":214196,"url":"https://github.com/elastic/kibana/pull/214196","mergeCommit":{"message":"🌊
Streams: Overview page redesign (#214196)\n\nThis PR overhauls the
overview page.\n\nClassic stream:\n<img width=\"1004\" alt=\"Screenshot
2025-03-12 at 21 00
39\"\nsrc=\"https://github.com/user-attachments/assets/a058da08-0ae2-48cc-abca-359b23288b32\"\n/>\n\nWired
stream:\n<img width=\"1019\" alt=\"Screenshot 2025-03-12 at 21 01
56\"\nsrc=\"https://github.com/user-attachments/assets/bca04537-f79b-4814-8e31-9d3dae18ad90\"\n/>\n\n\n##
Doubts / things I changed from the design\n\n* Quick links is just all
dashboards, so I adjusted the wording\naccordingly. Also, since we
render all dashboards, there isn't really\nvalue in \"View all
assets\"\n* The panel on top is already stating the count of docs, why
should we\nrepeat that in the histogram panel?\n* No search bar - in the
beginning we said we don't want this page to\nbecome discover, a search
bar feels like we are going there. Also, what\nshould the user enter
there? I don't think we want to buy deeper in KQL\n* Should the count of
docs be the total count of the count for the\ncurrently selected time
range? Not sure what makes more sense\n* For wired streams I left the
tabs in place to switch between child\nstreams and quick links. We can
revisit this once we get closer to\nactually releasing wired
streams\n\n---------\n\nCo-authored-by: kibanamachine
<[email protected]>","sha":"184d0a32adb2ec372c6427903d9269f813f04b6d"}},"sourceBranch":"main","suggestedTargetBranches":["8.x"],"targetPullRequestStates":[{"branch":"main","label":"v9.1.0","branchLabelMappingKey":"^v9.1.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/214196","number":214196,"mergeCommit":{"message":"🌊
Streams: Overview page redesign (#214196)\n\nThis PR overhauls the
overview page.\n\nClassic stream:\n<img width=\"1004\" alt=\"Screenshot
2025-03-12 at 21 00
39\"\nsrc=\"https://github.com/user-attachments/assets/a058da08-0ae2-48cc-abca-359b23288b32\"\n/>\n\nWired
stream:\n<img width=\"1019\" alt=\"Screenshot 2025-03-12 at 21 01
56\"\nsrc=\"https://github.com/user-attachments/assets/bca04537-f79b-4814-8e31-9d3dae18ad90\"\n/>\n\n\n##
Doubts / things I changed from the design\n\n* Quick links is just all
dashboards, so I adjusted the wording\naccordingly. Also, since we
render all dashboards, there isn't really\nvalue in \"View all
assets\"\n* The panel on top is already stating the count of docs, why
should we\nrepeat that in the histogram panel?\n* No search bar - in the
beginning we said we don't want this page to\nbecome discover, a search
bar feels like we are going there. Also, what\nshould the user enter
there? I don't think we want to buy deeper in KQL\n* Should the count of
docs be the total count of the count for the\ncurrently selected time
range? Not sure what makes more sense\n* For wired streams I left the
tabs in place to switch between child\nstreams and quick links. We can
revisit this once we get closer to\nactually releasing wired
streams\n\n---------\n\nCo-authored-by: kibanamachine
<[email protected]>","sha":"184d0a32adb2ec372c6427903d9269f813f04b6d"}},{"branch":"8.x","label":"v8.19.0","branchLabelMappingKey":"^v8.19.0$","isSourceBranch":false,"state":"NOT_CREATED"}]}]
BACKPORT-->

---------

Co-authored-by: kibanamachine <[email protected]>
JoseLuisGJ pushed a commit to JoseLuisGJ/kibana that referenced this pull request Mar 24, 2025
This PR overhauls the overview page.

Classic stream:
<img width="1004" alt="Screenshot 2025-03-12 at 21 00 39"
src="https://github.com/user-attachments/assets/a058da08-0ae2-48cc-abca-359b23288b32"
/>

Wired stream:
<img width="1019" alt="Screenshot 2025-03-12 at 21 01 56"
src="https://github.com/user-attachments/assets/bca04537-f79b-4814-8e31-9d3dae18ad90"
/>


## Doubts / things I changed from the design

* Quick links is just all dashboards, so I adjusted the wording
accordingly. Also, since we render all dashboards, there isn't really
value in "View all assets"
* The panel on top is already stating the count of docs, why should we
repeat that in the histogram panel?
* No search bar - in the beginning we said we don't want this page to
become discover, a search bar feels like we are going there. Also, what
should the user enter there? I don't think we want to buy deeper in KQL
* Should the count of docs be the total count of the count for the
currently selected time range? Not sure what makes more sense
* For wired streams I left the tabs in place to switch between child
streams and quick links. We can revisit this once we get closer to
actually releasing wired streams

---------

Co-authored-by: kibanamachine <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backport:version Backport to applied version labels Feature:Streams This is the label for the Streams Project release_note:skip Skip the PR/issue when compiling release notes Team:obs-ux-logs Observability Logs User Experience Team v8.19.0 v9.1.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants