-
Notifications
You must be signed in to change notification settings - Fork 913
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
[Proposal] VisBuilder - Drag & Drop Visualization CX #883
Comments
Answer to some of the questions that I believe should be included in the MVP.
These are the basic ones to consider short-term with my thoughts on numbered priority.
Depends on field type. There are sensible defaults for most field types.
These depend on various factors. Here's a couple things to think about.
Is this the Suggestions view that was mentioned? I know Lens does this below its canvas view but it doesn't seem necessary.
From that list here's what I would prioritize.
Additional InformationTo ensure that major rework is not needed after an MVP the following features should be kept in mind up front so I'm mentioning them now even though I know you said not to go into implementation details yet 😄 . Plugins should be able to participate in this new UX.
Table view interaction.
|
@JacobBrandt thanks as always! This is awesome input. RE: chart types prioritization, what do you think about the ordering of Bar, Line, Metric, Data Table, Area, and Pie? While I do see a lot across metric and data table viz options, I think bar and line are table stakes for a drag and drop visualization experience. Otherwise, agree with metric and bucket. RE: field dropped at on the canvas, yes, the canvas should have some visual cues on where a user can drop the field. For example, the axis space for adding specific fields to a specific axis. And there will be a visualization config - I was thinking at the right of the data panel after the first element is added. RE: suggestions, your perspective here is something I'm a bit surprised by (that's good!) and makes me think that there might be an opportunity to reduce scope for the first iteration. Specifically, if we drop the requirement for a suggestions panel/view/bar (thing?) and rather added a more visual chart selection (e.g., row of icons, @kgcreative thoughts?) path we could focus on the core CX and determine if and when to incorporate suggestions. I like the idea of using suggestions to improve the output discovery in the future but this approach seems more iterative. @ashwin-pc what are your thoughts? Would this save us some scope? RE: abstraction layers, good callout. |
My thoughts on that stemmed from the fact that Metric and Data Table are visualizations that don't require a charting library. Data table also just fits very naturally with how the data structure will most likely be delivered to visualizations. By removing the complexity of working with a charting library these two could quickly flesh out the communication between the two abstraction layers. While that development is going on someone else can determine which charting libraries to use for the more visual charts. However, I understand what you're saying. Depending on team size of this effort and whether or not a charting library has been selected already, I could see bar and line priorities move up or at the very least be worked in tandem with metric and data table. |
@ahopp yes it would. It makes me wonder if we can skip suggestions entirely in the first iteration and bring it in later. I wouldn't eliminate its need entirely though because it does have its benefits. The suggestion panel doesn't necessarily suggest different chart types, it can also suggest different ways to aggregate fields for the same chart type (e.g. one suggestion could be a metric that just shows the number of records while another could show the metric for median value of the field). This way as we improve the experience we can be smarter about the suggestions based on common use patterns and not be coupled to the chart type selector. Another important use case for suggestions is to see in realtime what the suggested chart looks like for the data that you are visualizing. This makes it easier to know identify patterns that the user would have otherwise missed. But if these are not as important for the initial iteration, it can simplify the scope significantly. |
@JacobBrandt Thanks for the detailed comment, especially the additional information. We will definitely keep that in mind to make sure that it is extensible in future. |
@ahopp @ashwin-pc Happy to help. Designing software is my passion. I do agree that some form of suggestions to users could provide an improved experience. It's definitely something that could come later though in my opinion. Also, I wanted to give some insight into why I'm not really a fan of the suggestion panel Len's has. The suggestion panel currently in Lens is mostly a waste of space. Len's version for the most part just shows the user what their current measures & dimensions will look like in other chart types. I guess that's neat and can be somewhat helpful.
I agree with you here. Suggesting other ways to view the data has potential for some improved experience for the user. However, I caution the approach of how Kibana did this within Len's. Len's show's you these suggestions as views and thus creates additional requests to Elasticsearch for each suggestion panel. It has to do this so that each panel can show the user what that suggestion would look like. This bolded statement right here is why I'm not a fan. It's making 5-6 additional requests to the cluster when the user is already focused on just the one they are building. It does this every time the user changes something as well. Len's has turned into a sort of suggested dashboard experience of visualizing data instead of a visualization editor. All these extra requests come with a cost and what if the majority of the time the user never interacts with any of the suggestions. Now it's wasting space as well as fetch & query cycles from the cluster. I think suggestions can have potential, but I don't agree with them automatically making requests to the cluster all the time for what is supposed to be a visualization editor. With that being said I have a counter proposal. Suggesting visualizations on dashboards when the user wants to add a new visualization. This is where I think the most power of a suggestion like system could have a huge impact. It has tons more data to look at and gather context to provide suggestions based on already created visualizations for this dashboard. I feel like this type of suggestion experience would greatly improve the dashboard workflow because at the end of the day the user is trying to build a dashboard to gather insights not a single visualization. Hopefully I helped explained why I balked at the idea of the suggestion panel. |
RE: suggestions - Okay, I think we pull the suggestion path for now - let's keep thinking about how we capture the best of suggestion utility in long-term (for instance, maybe we can let the user prompt for suggestion rather than making it automatic or add visualization suggestion to dashboard) but I'm aligned with this direct! Thanks both! RE: Metric and Data Table - Gotcha, that's helpful @JacobBrandtl! I think we should plan for working them in tandem and then cross than bridge if we come to it. |
Hey folks! We're planning on closing this proposal on Friday (10/25) and opening the design doc on the same. Please comment if you have any questions, thoughts, ideas, etc. regard the drag and drop feature set or any related topics! otherwise, we'll see you in the design doc. |
Problem Statement
Today, visualization and exploration in OpenSearch Dashboard is harder than it needs to be. Users need to preselect both the chart type and index pattern they will use to create a visualization. Additionally, users may need to navigate between multiple screens (e.g. discovery → visualize → discover → visualize, etc.) to find the right feature, the right chart, and the right index to include in their dashboard. Not only is this more work then it needs to be, it prevents the serendipitous discovery that more accessible exploration allows.
Proposal
Our proposal is to allow users of OpenSearch Dashboards to create data visualizations and gather insights without preselecting the visualization output and with the flexibility to change visualization types and index patterns on the fly. Users would be able to switch visualization types, index patterns, and data fields quickly and easily in a simple Drag & Drop experience. More specifically, we are proposing a number of key features for OpenSearch Dashboard Drag & Drop:
The Drag & Drop experience we're proposing would be created as a first party plugin (i.e. within the OpenSearch Dashboards repo and part of the default Dashboard experience) and accessible via the “New Visualization” option within the Visualize page (example below).
Once Drag & Drop is selected, the UI will primarily consist of a column layout as seen in the example wireframe below: a data panel, a visualization config panel, and the visualization canvas.
In addition to the primary sections, we are proposing the following additional changes;
Assumptions
Open questions to address
As we work to design this feature, we need to address the following with the help of community feedback:
Providing feedback
The purpose of this proposal is to introduce our recommendation to enhance the usability of data analytics and visualization capabilities of OpenSearch Dashboards as well as collect feedback from the community. This proposal is meant to cover the high-level proposal and functionality but does not go into implementation details and architecture. Once we get feedback from the community we will publish a more detailed design doc.
For any feedback on the problem statement, the proposal, or any open questions please leave your comments on this issue. Looking forward to your input!
The text was updated successfully, but these errors were encountered: