elastic / kibana

Your window into the Elastic Stack
https://www.elastic.co/products/kibana
Other
19.62k stars 8.22k forks source link

Project: Time to visualize #51318

Closed AlonaNadler closed 1 year ago

AlonaNadler commented 4 years ago

Background: One of Kibana’s unique advantages is its ability to combine multiple visualizations into a single dashboard and allow users to interact with the visualizations in a quick and smooth way, showing how all the panels focus on the area the user is interested in.

Building the first dashboard and seeing live data with high-quality interactivity is one of the first “wow” moments users experience when they start using Kibana, and how Kibana increased its user base over the years. The “wow” moment is the moment when new users first realize the value in Kibana, which later can evolve into Canvas, Solutions and more of the Elastic offering.

Challenges with creating dashboards :

Goals:

Simplified suggestion:

One of the challenges in this project is the object reference model, which raises a bigger and more complex question of whether we want to change it. This question introduces invasive changes that require migration plans and further details.

The suggestions below are an attempt to come up with an approach that will be feasible in the short term and still allow us in the future to take a larger technical decision if we choose to.

Current empty dashboard image

First phase: COMPLETED

image

Second phase: In progress

Third phase: improving existing dashboard editing

Other changes which can be considered in the future:

@majagrubic @timroes @rayafratkina @ryankeairns

elasticmachine commented 4 years ago

Pinging @elastic/kibana-app (Team:KibanaApp)

timroes commented 4 years ago

@AlonaNadler Could you please clarify how this relates to https://github.com/elastic/kibana/issues/35334 and how those are different from each other in which parts, or close one of them if they are not meant to represent different topics?

AlonaNadler commented 4 years ago

Done @timroes

stacey-gammon commented 4 years ago

related:

AlonaNadler commented 4 years ago

Next steps fo time to visualize:

ryankeairns commented 4 years ago

7.7 enhancements

7.7+ enhancements

Prototype / mockups

This is a 'live' link that will contain the latest updates as items are checked off (above) and feedback is addressed. 👁 https://www.figma.com/file/EwodWYRUIjbNvYoi9G4Hnh/Lensboard?node-id=611%3A0

Providing feedback

There are two ways to provide feedback:

  1. Add comments on the mockup
  2. Add comments to this issue

The former will be less transparent and is best reserved for smaller, well-defined change requests. The latter is generally better for all other feedback as it generates more discussion and shared context. When in doubt, comment here.

ryankeairns commented 4 years ago

^^ Initial designs for the 7.7 enhancements have been added to the prototype. Please provide any feedback; see notes regarding how to do so in my previous comment.

In particular I'm looking for feedback on:

  1. Using the existing panel hover design (yellow bar in edit mode) to indicate the ability to add a title. Showing the 'Add title' placeholder text on hover/focus means the user won't see this text repeated on all title-less panels while in edit mode. It also leverages existing UI with the assumption this may save some development effort. The title can still be added via the actions panel.

  2. Adding to point 1, it might be helpful to make the placeholder 'Add title' text clickable so that you can open the 'Customize panel' modal directly. If that is technically challenging, then we can simply rely on the existing 'Customize panel' link in the actions panel and re-word the placeholder text. panel-title-hover

  3. Maja noted in a previous conversation that we may need to add a Cancel menu item in Visualize so that users have a way back to the Dashboard when they decide to abandon their visualization. This seems like a necessity, just pointing it out since it may not an obvious addition at first glance (see the 'Cancel' menu item in screenshot below).

  4. The 'Add to library' feature introduces a new concept; however, the design here is intentionally subtle in this iteration. Keeping in mind the impetus for this change (reducing the volume of items in the Visualize list/flyout), it seems logical to not visually over-emphasize this capability. Given that assumption, I've opted to slot this under the 'Share' menu item in Visualize. image

  5. You can also find the 'Add to library' feature listed in the panel actions menu when in Dashboard edit mode. This strikes me as an intuitive, second location for this link though I'm uncertain how complex this might be. image

Additional questions and considerations

I'm happy to walk through this over zoom if people feel that would be helpful.

cc:/ @timroes @AlonaNadler @majagrubic @rayafratkina

ryankeairns commented 4 years ago

The mockups have been updated to address the latest feedback:

👉 Link to Figma prototype for Autosave

ryankeairns commented 4 years ago

An issue was brought up in #59134 regarding the use case where a user removes a panel from a dashboard and that panel contains/displays an object that does not live in the library. In that case, a user may want to use that object again in the future, but it would seemingly become inaccessible as it would not display in the visualizations list.

I commented on that PR that it might be handled via a modal, as follows:

Perhaps we could do something like show a modal confirmation to confirm the deletion with an alternative action being to add it to the Visualization library for future use.

So the modal might read: "Removing this panel will permanently delete this object since it does not exist in the Visualization library. If you would like to save it for future use, then you can add it the library now."

With button actions like: Cancel | Add to library | Delete permanently

I can mock this up later if we like this route.

AlonaNadler commented 4 years ago

Yes indeed when a visualization created in a dashboard is deleted unless it was explicitly added to the visualization library it will be gone. I think we can live with that. Few things:

majagrubic commented 4 years ago

I like the solution of making a popup prompting the user to save it to visualize. Do you think we should also add "Remember for future" option, as ideally we don't want this to show up every time the users need to delete something?

Yes, undo could work same as it does now.

ryankeairns commented 4 years ago

I don't think the remember is necessary, but it might be convenient. In other words, having a confirmation dialog when deleting something feels like a good practice, generally speaking.

rayafratkina commented 4 years ago

It seems there are 2 models for the Visualization library 1. Reusable component model When user wants to reuse a visualization they created for a dashboard, they can save it to the library. That means visualization becomes a separate object and we switch the dashboard to embedding by reference. Any other dashboards using the library vis will be embeding by reference as well. So if visualization in the library is edited, all places using it are updated. When deleting something from the library, the shared object will be removed and all dashboards using it will get a copy included by value.

2. Template model When user wants to reuse a visualization they created for a dashboard, they can save it to the library. This action creates a visualization object but does not change anything on the dashboard. In the future users can create their own copies of the visualization from the library. Changing the library vis does not change any of the dashboards. Deleting the library vis does not affect the dashboards.

AlonaNadler commented 4 years ago
  1. Reusable component model When user wants to reuse a visualization they created for a dashboard, they can save it to the library. That means visualization becomes a separate object and we switch the dashboard to embedding by reference. Any other dashboards using the library vis will be embeding by reference as well. So if visualization in the library is edited, all places using it are updated. When deleting something from the library, the shared object will be removed and all dashboards using it will get a copy included by value.

Option1 is how I think this should behave. Right now users can use specific visualization in multiple dashboards. When they change the visualization it applies in all the dashboards this visualization appears on. We do want to preserve and still allow this behavior. The big change is that it is not the default anymore. Meaning in the past everything was saved in Visualize and used by reference. However, users don't need it for most visualizations and it created lists of thousands of visualizations that companies need to manage. With the new dashboard behavior, by default, every panel added from a dashboard is strictly tied to that dashboard, unless users decide to explicitly add that to the library. If a panel is added to a library it is used as a reference and can be used in multiple dashboards

rayafratkina commented 4 years ago

Starting to think through the rollout of the Visualize library phase, I think we want to take a bit of extra care with user experience of the whole switch. This includes

ryankeairns commented 4 years ago

@rayafratkina The UX Labs team, with assistance from Customer Experience, has built a pool of ~200 current customers who are willing to provide feedback. I can reach out to several people for some feedback once we have something to show them.

In the spirit of discovering issues early (when they're cheaper to fix), I can arrange a round of tests (3-5 to start) via a Figma prototype. Others are welcome to attend (or wait for recordings) and we can collaborate on the test script to insure we're hitting the right portions of this UX.

I have some test scripts which can be used as a template. I'll update one and circulate for feedback prior to scheduling any sessions.

ThomThomson commented 4 years ago

Updates on Phase 2 will continue to be tracked in https://github.com/elastic/kibana-team/issues/231

ThomThomson commented 1 year ago

Closing this meta issue because the project is finished!