-
Notifications
You must be signed in to change notification settings - Fork 8.3k
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
[Logs UI] View log message in context #50304
Comments
Pinging @elastic/logs-metrics-ui (Team:logs-metrics-ui) |
I like the look of this 👏 I'd like to ask some questions to explore the edge cases if I may:
|
@weltenwort very good questions:
Let me create an example of this.
Super cool would be a skeleton loader - we could reuse this also for the stream. I'm thinking of something like this
I don't think that I can help here...is there another context we could use? Or maybe we just disable the functionality for these log messages for now?
Yes, I would like that very much! 🤩 |
Summary of the feedback I got in yesterdays design weekly:
|
Casper just told me that we have something like a skeleton loader for text in EUI: https://elastic.github.io/eui/#/display/loading - this might be useful. |
@katrin-freihofner and I discussed the current UX and typical user journey associated with viewing surrounding logs and few minor enhancements to the current UX. Below is the summary of our discussion: Example use case for logs in troubleshooting workflow: Background Problem description User journey UX
|
Thanks for the use case description. I have a question for clarification, if I may:
This implies that the Logs UI can somehow distinguish which specific part of the filter to ignore for the context. What would be the criteria so that the remaining filter is predictable for the user? |
My assumption of a typical user journey for troubleshooting is: start with one or more key:value filter and text for search. When users wants to see surrounding logs, they want to remove the text search but retain what ever they have in key:value filters. So the criteria is to always remove the free text search.. |
Technically the free text search is just an implicit search against all fields, but I get what you mean. We should be able to distinguish these in the query AST somehow. I wonder, though, how we can communicate that to the user so they are not surprised and so they can learn to use key-value queries for the context view to be of value. |
Hi, sorry to chime in but I think it will be pretty limited if the context only ignores the free text.
The Google stackdriver has an interesting feature called anchor. Basically if a log is anchored, it will be always displayed and centered in the results (as long as it matches the search criteria). I think a flow like this would be nice to have:
|
@phantasia15 thank you for taking the time to contribute! What you describe makes sense and offers a lot of flexibility: The user can incrementally narrow the context by constructing a new filter expression. Maybe we can unify that with the approach that @mukeshelastic described by initializing that context filter with the current global filter so the user can widen the context. Then the user can choose whether to remove the full-text search terms or some of the field-specific terms. 🤔 |
Thank you @phantasia15 for taking time to describe your workflows. Like @weltenwort pointed out, we will provide clarity on which filters are still applied by showing them in the overlay. We will explore how to accomplish that UX elegantly. When the user clicks on show surrounding logs, they are intentional about removing some filter. We are removing the free text search because we believe that is usually the last step in narrowing down logs to find a log line that interests users and they want to see what is happening before and after that log line. If they want to remove other filters, then they can remove them from the context filter. |
@katrin-freihofner and I discussed this UX further and we made a minor adjustment to previous UX. Earlier when users clicked on surrounding logs, we only dropped the 'text search' filter.. If users just had key value filter and no text search filter then the surrounding logs will show same logs as that of stream view, which is misleading. So we think the the right UX is to drop the last filter, independent of whether it is text search or key value filter. For now, we will assume the last filter is the right most filter. If our assumption is wrong then we may provide a way for users to edit the filter in the surrounding logs overlay. |
Some notes
|
That means when the user scrolls to the end of the date interval in the overlay there is an option to extend the overall time range? Or does the overlay have a custom date range picker? |
Yes, I think extending the timeframe could work. I don't think that the overlay should have its own time picker. Maybe something like the overlay initially shows the selected log line +-30 min (or now) and this timeframe can be extended like the stream? Let me know what's your opinion on that. |
I think it should have at least the same initial interval as the main date picker. Otherwise it might exclude items that are visible on the stream. I'd probably recommend to start out with sharing the date state between the two for simplicity. If we then learn that it leads to a bad experience we can give it a separate date range state. |
I had a good chat with @mukeshelastic today about this feature. One thing I keep getting stuck on is the assumption around removing the “last filter” applied, etc. It feels like this UI as shown is a lot of ceremony for only making this one small assumption around removing one of the applied filters and it’s not clear to me yet that will always be useful. One thing I’m wondering, if “surrounding logs” is really about “view my current set of filters but with one removed”, is could we change the way filter state is represented so that when you add a filter, it is applied in an enabled state. But added filters can be a) disabled/re-enabled, or b) removed. This would let users achieve this kind of exploration mode without necessarily needing a new modal to do it in, and it would let users choose how many and which filters they need to “disable” in order to explore some log context and then quickly return to the fully filtered list they were looking at a moment ago. Just some thoughts, curious what others think. ping @katrin-freihofner |
As I already mentioned on Slack, I have doubts that we can generically convert KQL expressions into useful filters. How would we treat more complex KQL expressions that are more than just single-level conjunctions? |
Quick update of yesterday's discussion. Viewing a logline in context means:
|
This is an update according to our discussion in yesterdays meetings: I updated the engineering issue accordingly. |
We defined a way for the Logs UI to allow users to quickly see a log message in context. For now, context is defined as log lines within the same file.
Find more background information and related discussions in the design issue
#40808
View in context
The context can be triggered from each of the log lines. On hover (and touch) of a specific log line, the round button appears. This button triggers a popover menu with the following actions:
Figma/designs link https://www.figma.com/file/PvXWESp9YhkJMFy4l3Judo/40808-Logs-view-in-context
Overlay
The context itself is shown in an overlay/modal. Besides the selected log line, it also shows logs before and after the selected one.
Additionally, I used a white backdrop with 90% opacity to emphasize the overlay.
Actions
show more
button (EUI button empty) on the top and on the bottom of the overlay extend the number of shown log lines.Esc
key and clicking somewhere outside the overlay.When closing the overlay, the log line should still be selected!
Open questions
Show more
-> let's start with 10The text was updated successfully, but these errors were encountered: