Hi,

I’m creating cool dashboards with redash, but the filters behaviour really prevennts them from being super.

First of all I’ve switched from query params to filters in order to not re-run the dashboard queries upon user selection of params. I found that using multiple queries in dashboards, each returning results in different time and with very lacking visual indication of that (small spinning timer at the corner of each widget) really ruins the user trust in the dashboards. Users don’t now when a change they made to the input params was effected in all widgets, especially since some queries take long to finish while others finish very quickly, so you get some widgets updated and some not a go figure out which is which. The state of long partial dashboard load is very bad for user experience and trust and makes users walk away from dashboards.

So I’ve switched to filters, which, together with setting refresh rates on individual queries promises fast and snappy performance, much to the user delight. From my experience, switching to filters boosted the usability of my dashboards very significantly.

But, there is a problem with the filters as well. each filter holds the distinct values of the entire returned result. So when selecting one filter, In most cases the data vanishes immediately cause the other filters were yet to change.

To give an example, Imagine a data set containing 2 columns, customer name and account ID. account IDs are distinct. Now I query the data for all the customers and accounts and set two filters, one for each column.

The initial returned data is great, showing the first customer and the first account to match it. But, if I now select a new customer, the account Id remains the one of the first customer, and since there is no such combo in the data, all table, charts, and graphs get emptied until I’ll select a proper account for the new customer selected.

And… It gets Even worse. Coming to choose an account, we get a drop down of all the ids in the dataset, regardless to whether they fit the already selected customer or not. So good luck guessing the proper Ids out of the who-knows-how-many out there.

So two problems:

Upon selection of non-default filter value, all data is usually gone.
No easy way to bring the data back by selecting the second filter values that match the first filter.
Is this currently solvable? If not, I’d like to take a stab at fixing it.

1 Like

Hi,

Thank you for the elaborate description.

I can see a few issues described here:

  1. Dashboards: there is no clear enough indication that a widget is still refreshing.
  2. Filters: when using multiple filters in a single query, we show all the options for each filters – regardless of the selection in the other filter.
  3. Parameters: updating parameter value might result in a long wait time for the queries to execute.

Issue #1 is probably the easiest to address and we should do it.

I can see the issue with #2, but ideally I would love to find a way to replace filters with parameters while making parameters as usable in scenarios like the ones you described. Because filters have their limitations, due to the need to bring to the UI the whole dataset. But as providing a proper solution that can replace filters will take time, if you have the will to solve issue #2, I’m happy to discuss this.

@zsoltk you’re welcome to share your thoughts too.

@arikfr

I’ll add:
4. Using query params, different widget refresh at different times and putting the dashboard in a partial state (which is exaggerated by issue 1 as you don’t easily know which is done and which is not)

For my use cases so far using filters is 100% replacing using query params, also filters impact the dashboard immediately and in sync. Is the concern about bringing the data to the UI a performance or latency/networking concern? or both?

The query param problem will always remain an issue since every param change requires querying the data in all related queries.

Since we are already using filters regardless of the hierarchy feature, I would love to have 2 implemented and create very powerful dashboards. The dashboard creator will have to be aware of not bring too much data to the UI…

Ido, I totally agree with you on this and it would be wonderful if you will solve it.
Currently the workaround I’m doing is adding a widget to the dashboard that shows that shows the second level values breakdown filtered by the first level filter.
Attaching screenshot with example.


The rest of the widgets in the dashboard are filtered by both dimensions.

@dlevison yes that’s exactly what I’m doing… and it quite sucks cause you need to add a widget per each filter, and then the user needs to select first filter, copy value from the first widget and paste in second filter, copy value from 2nd widget and past it in third filter and so on just to get to the data it needs.

So what we end up with is a redundant widget per every filter you place (minus 1) and a long and painful experience to get to the data you want. Also, those redundant widgets needs to be first in the dashboards to ease the next filters value selection, so the visualisations you are actually interested in are at the bottom of the dashboard.

:confused:

Somewhat related:

Any plans for addressing this need or any workaround you are aware of?