TSVB hide empty time intervals

Hello, I'm wondering if it is possible to hide days (time interval units) when no event was happened in TSVB. I am interested in showing daily events, but when this extends to a longer time period it is very easy to get lost in all the data.

It would be ideal if I could only show days when an event happened and graph value is above 0. An example of days I would like to hide is shown below:

Is this possible in TSVB? Would another Kibana tool be a more suitable option for this? I tried using aggregation based panels but they do not adapt together with the global time filter.

Hello Janujc,

We'd like to understand more about your use case. Readers of temporal charts expect time continuity, or a fixed cadence (eg. daily bin width). So, while omitting periods when no event happened sounds attractive, it's also useful for most chart readers to know when nothing happened, and if these were shorter or longer stretches, or maybe it was rare that nothing happened. The reader can easily assess it on a regular timeline. But the chart reader can no longer tell it from the shape of the chart if you cut out the zero-event days. The chart reader would be forced to read the tick labels one by one.

It'd be especially misleading (untruthful in spirit) to link adjacently placed, but non-adjacent days with a line. Also, any trend that can be read out from that would be spurious, as the zero days would be omitted. A 5 followed by 7 then 9 is not the same as 5 followed by a bunch of zeros, followed by 7 then immediately a 9.

So a regular, vertical bar chart based time histogram would be better.

It's worth discussing it with data visualization best practices in mind, and get to the bottom of the requirements before looking for a technical solution for this.

If you have few time series, then multiple bar chart histograms atop of one another would be a good alternative; clear readability as the values are seen even if there's gaps among bars for the zero days. If you have many time series, it's worth aggregating, as it'd be a mess, whether with lines or charts. Eg. max aggregation, or averages (or a chart for each, positioned underneath one another).

If there are compelling reasons for the type of ordinal time axis you seek, we'd like to learn all details we can about it, so we better understand the needs. An enhancement request with snapshots, explanation etc. would be best for this, you can create a new "Feature request" issue here: https://github.com/elastic/kibana/issues If you have a support contract, please reference this github issue to your support folks, so that we can keep track of it that way too. Worth pasting your github issue into this discussion as well, to make it discoverable by others.

One more thing, if you have more than one time series as in your example, then only those days would be skipped when all series are zero. With an increasing number of series, it means you get lots of days which are almost all zeros anyway, except maybe one or two series. Or if events are more frequent, you'll have some event on most days. Depends on the distribution and correlation of the data.

Thank you for your insightful reply. It made me think about our technical specification needs.

I'll offer a short explanation of our data. We have events that are scheduled every week on the same day. Several actions happen during each of these events. We interested in showing the number of these actions for each specific event. It is important that the user can only see days on which these events happen as empty days do not bring any value to the graph. By omitting the empty days it is also easier to discern the long term trend of changes for these recurring events.

I am trying to create the same trend using aggregated bar chart but I am still unable to prevent the graph from showing empty days. Data histogram aggregation still displays all dates even if no event took place. I'm including the example below.

I would be very glad if you could offer me some suggestions on how I can solve this.