-
Notifications
You must be signed in to change notification settings - Fork 8.2k
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
[Search] Background session management UI #61741
Comments
Pinging @elastic/kibana-app-arch (Team:AppArch) |
Hi, I'd like to get started on this task. I am going to assign it to myself and begin to work on making the POC for this UI. As I understand, completion of this task is dependent on new server-side API(s) in Kibana for Background session. I'll have to keep track of that progress so that when the time is right, the POC for the UI can switch over to using real APIs. |
A few questions about the UI:
Edit: one more:
|
@thomheymann and I were discussing a related topic today: managing your own API Keys. While it's an administrative function, it's not really a "Stack Management" function. Managing your own background sessions almost feels like it belongs as part of the "Account Management" screen. The Account Management screen isn't currently pluggable, but we can change that if you agree that it makes sense there. I don't want to force an implementation one way or another, I'm just providing a drive-by comment for your consideration 😄 I assume that background sessions are designed to work even when security is disabled, so in that case, you wouldn't have an account management screen to hook into. So perhaps stack management is the next-best place to add this. We can always cross-link from account management to make it discoverable from there if we think it'd be helpful. tl;dr what you're planning is probably the right way to go |
Thanks for your inputs @legrego. Reporting is in the same boat as this feature then, which is a little more familiar to me. Reporting works with security disabled, which could be the reason why the Management UI is linked from Stack Management. I have thought if Kibana has a "notification center" then it could be handy as a way to get to the management UI, since when status changes in a background search, the user may like seeing a notification about it, in a central UI for all Kibana notifications. |
The types are
The Session object has a
It's one of the APIs we need to define in the API task. It's done by posting a request to the async search API with the search ID and a new
I think it should be consistent with other management table views. I suspect it's just the name field.
I don't think we need to support bulk operations at the moment, so no need for the checkbox at all. The 'Cancel' action you see in the mock will cancel the running search and move the saved object into a Canceled status.
At the moment, it seems like users will be able to see only their searches. The search API doesn't support admins applying any changes to other user's searches. Instead, we'll have to implement a management view using the Tasks API. I guess it can be implemented inside this view or as a separate management view that applies not only to BGS but to other things like Runtime fields. Let me know if there are any additional questions! 🚀 |
cc @mdefazio Thanks Liza! Very helpful.
I forgot to ask, but does the same thing happen if you click on the
As far as how to do it through the UI though, would there be an
++ this is how Reporting works. There's a |
@tsullivan Here are responses to your questions:
Yes, clicking the name would also direct you to that URL
Yes, there would be an option in the row's overflow menu to Extend. I've updated this whimsical doc with a screenshot and corrected filters/status/actions. I'm happy to connect this week if you have additional questions. This management view was created awhile ago, so it could possibly benefit from a fresh look. |
@lizozom @lukasolson @mdefazio Question: |
Am I able to restart a cancelled session? There are no other actions I can perform on this session once I cancel it, correct? I will update the mockups to include this scenario (and which badge/color should show). |
@mdefazio if you cancel a session or if it's expired, you can still |
Perfect, thanks |
Here is an updated mockup showing the cancelled row. I've also made a few other improvements around showing the status and the columns shown. @tsullivan Please reach out with questions—I think this is still close to the preliminary mock I shared, but let me know if you have concerns. |
@mdefazio looks good! It is pretty close to the preliminary mock. A few questions about UX:
A few questions about EUI
Here are some screenshots of my PR branch showing a few samples of random data, including what a possible error status item would look like, until I get a quick design for it :) Edit: I'm just noticing now that my status columns doesn't have the status inside of an EuiBadge. That will be an easy fix |
cc @elastic-jb |
Hi Tim, reposting this gif here for visibility. Updated to show how we can expose the expiration date and error status. The error status would be considered My thinking is that we do not need that many columns/information. My assumption is that we can show a message with the last status (Completed at 10:00, or Expiring in 2 days). But I don't think we need dedicated columns for start/complete/expiration time. I've also moved the icon outside of the badge for more cosistency with other uses—would also be nice to be able to click on the badge and apply the filter.
We can also just show the |
@mdefazio I guess we could do this as a second step, but I think that rather than having a A good UI reference is what you see when restoring Kibana from a snapshot. |
Sounds good. However is there a certain level of comfort for users to know they can refresh/re-fetch data when they want? I know we kind of do both ways across Kibana, so if it makes it easier and then see if anyone wants it added. |
We can have the refresh button show always, and have a spinner show inside the button when they click it, and also when results are loading automatically (data automatically loads and spinner automatically spins).
If it's possible, I would like to try to merge the Management app UI even if all of these capabilities aren't ready in the session client API. The first phase has View and Delete as available actions. Once cancel and extend are ready in the session client, we can add those actions in the Management UI. How do those 2 things sound? |
To get the listing items page-by-page, we could use server-side paging, where the UI requests 10 sessions at a time. Or we could have the UI fetch all of the sessions on each refresh interval, and do in-memory paging in the table UI. Both ideas have pros and cons: Getting one page at a time:
Getting all the pages
In the scenario where we fetch all of the sessions, we would want to run a I propose that the data fetch method is: I think that proposal works well because it seems unlikely that a cluster would have more than 10000 saved background search sessions. |
I like this approach. I think the payload size is a good tradeoff for a better experience and more responsive sorting/filtering. |
Part of #61738
The Background Session feature requires a new management section under
Stack Management
, to manage background sessions.The list should show a table of the
current user's
sessions:It should be sorted by creation time descending by default.
The list should support searching, filtering and sorting as other management views do.
If there are running sessions, the list should re-fetch data periodically. I would use the snapshot restore view as reference for this behavior.
Each row should support the following actions:
Note: The Session objects will be
hidden
, requiring some special handling.The text was updated successfully, but these errors were encountered: