I've been using drill-downs for about a year now and have been meaning to post on this topic to get feedback on if I'm missing something in what I'm attempting to do. We use drill-downs mainly from maps and I'll describe my understanding how how we've got them to work and how we'd like them to work.
Use Case
I'll use the NYC taxi dataset as an example since it's similar to what we're doing and allows me to describe the data we're working with. Our dataset is looking at clustering of events (drop-off, pick-up) points and we are clustering the data spatial-temporally. Our dataframe looks like
cluster_id | lat | lon | cluster_start_time | cluster_end_time | cluster_radius | google_maps_link | ... other data fields
On our map we are plotting the clusters in the above dataframe.
Current Approach
In maps we need to add tooltips for any values we want to use in a drill-down. We can then add a Single click "Go to URL" drill-down and use {{event.value}} to drive. Each tooltip we add has the menu option and each value is separate. I have NOT been able to get {{event.rowIndex}}, {{event.values}} to work. So in order for us to leverage data to create a "Go to URL" link I'm finding myself needing to actually create a field that contains multiple values that I can then parse. In this case a create a value in the dataframe called lat_lon that looks like "23.123 45.3453" and then parse the lat and lon separately so that I can use the lat and lon in the URL which looks like https:\\example.com?lat={{lookup (split event.value " ") 0}}&lon={{lookup (split event.value " ") 1}}. Fortunately I found the following issue which allowed me to parse the string using lookup and split.
That works but feels like a big limitation.
Feature Request
Maybe this functionality already exists and I don't know how to use drill-downs properly, but what I would like is to access the entire data row for "Single click" functionality so that I could do something like https:\\example.com?lat={{event.value['lat']}}&lon={{event.value['lon']}}. Every point on a map represents a row and the URLs we will need to build will likely depend on a minimum of 5 fields (lat, lon, cluster_start_time, cluster_end_time, cluster_radius). Our work around now is to create a run-time field and or regular field that contains all 5 values and shove them into a single field so we can access them using the split/lookup approach described above.
This would also allow me to define multiple drill-downs still, I would just select which value(s) are used in each drill-down. I understand that sending all the data to the client may be excessive for some indicies but that can be controlled either with new functionality by (1) allowing the user to specify which fields are available for the url and sent back to the browser or existing functionality (2) only allow urls to access fields that are selected as tooltips.
Another benefit of this feature request is that the single click menus could be shown either above or below the tooltips and not require another click to access them. Currently the "Single click" functionality is very hidden and so most users I work with I need to actually them how to get to the URL link, that alone is a big barrier for users with this feature.
I'll defer to some of my colleagues who know the drilldown feature best but wanted to comment on this part
Another benefit of this feature request is that the single click menus could be shown either above or below the tooltips and not require another click to access them
The {{event.rowIndex}} and {{event.values}} variables are not available in Single click trigger. Those variables are only available for Row click trigger, which happens on table row clicks, and those variables reference the data downloaded in the table.
Regarding your feature request for access to more granular document level data on Single click, that is something interesting we could explore. The challenges there are: as you mentioned, sending lots of data to the client, but also, the Single click event is usually an aggregation of many documents and there the fields in those documents might have different values. Like a Single click event might happen on an aggregation, which is composed of many individual documents, where each document has a different {{event.value['lat']}} value.
Thanks for the feedback, I've been having issues getting to the Elastic discuss page since Friday from client site so just doing the email reply. I read through all the related issues for github issue 615, sounds awesome and looking forward to a lot of the updates. I stepped away from working with the elastic stack for the last 6-8 months but seeing the updates and the pace is super impressive. Several features like time soldier (7.14) have been released that will have huge benefits for our use cases.
Thanks, I figured the event.rowIndex and event.values were tied to tables and wouldn't work. Appreciate the link to the trigger variables section. I've been reading the drill-down documentation over-and-over multiple times and each time able to digest and understand a little more. I've always found the ES documentation to be very accurate, terse and concise but generally all there. Some of the concepts which are new can be tough to understand, e.g. understanding "single-click vs context menu" and not really understanding the differences.
Regarding the feature request discussion, I understand that for tables and all non-map visualizations "single-click" events will almost always be aggregations of data, however for maps that leverage "Documents", those maps I believe will always result in single data points. Even when there are multiple points at the exact same coordinate, Kibanan shows them as separate layers in the tooltip dialogue. I realize this is a much more specific use case of "single click" but most of our use cases the maps are the main focus of our dashboards with surrounding charts and metrics generally just summarizing facets of the dataset and allowing for filtering against key dimensions.
@petersedivec would you mind opening an enhancement request at Sign in to GitHub · GitHub for Maps Row click trigger drill down support? Please include your use case.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.