List of issues we ran into while adopting Kibana (missing features, bugs)

Hi, and thanks for the wonderful Kibana. Our company started to use it for analysing our users' behaviours so here's a list of issues that were near showstoppers (or minor annoyances) while starting to use Kibana. Is there a roadmap where we could see whether any of these are going to be addressed soon, or is there some kind of forum for voicing this list as feedback? It is of course possible we've just missed something, and if so please let us know! Thanks.

*When mouse hovering over graphs the area charts don’t display the max value in the info picker. Conversely, hovering over Timelion graphs don’t show the time value. This is almost a showstopper as you kinda have to resort to photoshop or such to see the exact time value when hovering over a Timelion graph, or to see the total value of a split area chart.

*There should be better control over a chart's interval. Use case: We have a chart showing daily active users. The default time range of the dashboard is last 7 days. We have set the interval to 1d, as auto shows too much noise in the weekly view. This makes it impossible to select a shorter time range (like last hour) as the chart will show its contents fit to days, effectively coming up blank. Selecting a longer time range works though.
Could a change be made so a chart would go to auto mode by itself if the selected time range is shorter than its interval?

*If a chart requires math of any kind (where data come from separate queries) Timelion must be used. This is far harder to use than the wysiwyg graph editor. Fortunately, most of the game metrics are discrete enough that they don’t need this pass. Any plans of adding a feature similar to Amplitude's custom formula editor or such?

*There is no way to plot a line graph’s total value, or add multiple y axes, in the wysiwyg editor. So Timelion must be used for creating line graphs where we want to show a total value of all the splits. Use case: we have a graph showing accumulated revenue split by platform type, and would like to have one line which shows the TOTAL amount of all splits.

*If using split series in Timelion, there is no way to select which color goes to which split. If this is needed manual setup of one query per split is required. Use case: we want to use standardised colors for different platforms (red for iOS, green for Android and so on).

*Bug: Timelion - A javascript error is thrown if you define more colors than a split series outputs, effectively making the .color('a:b'c') option unusable in Timelion for other than extremely defined data.

*There is no built-in .divideseries() in Timelion, making math on split series impossible. We are using a plugin for that, but it crashes if the split series are different in divider/divisor. We only use .divideseries() if the event is the same in both divider and divisor, else manually set up one query per split. This is extremely cumbersome and error prone.

*When having to do manual splits (one query per split) in Timelion (see above), there doesn't seem to be a way to hide the series that didn't have any data. This creates a discrepancy between the graphs using splits (showing only the splits with data), while the manual query splits are always there.

*There is no way of making unstacked (side by side) bar charts in Timelion (.bars(stacked=false) just stacks the bars differently).

*Bug: Using the label() expression in Timelion with an empty string prevents the label from being drawn, but all consecutive labels’ values are offset by one. This is very dangerous as the graph shows correct values but the labels incorrect values.

*Bug: Pie chart labels don't work, they will just show the auto-generated expression string.

*Annoyance: Creating a new chart resets time period to 15 minutes, so graphs can show weird data until that is corrected. It is very easy to miss and wonder why the chart shows weird stuff.

*There doesn't seem to be a way of sending in any kind of parameters to a dashboard in a convenient way. Use case: We have embedded Kibana dashboards in an iframe without showing the Kibana UI. We'd really need a way for the analytics users to be able to pick, for example, a country filter. If the Kibana UI is hidden there is no query bar visible. Also, even if there was it'd be a very hard sell to tell the analytics users to learn the query language. It would be far better if there was a widget you could create for sending in formatted parameters (like a country selector).
EDIT: Found that you can control the query by url parameters, so we'll just make external controls for that. Would of course be nice if it was built in, but at least this is solvable.

Thanks for reading this,

  • Tommi
2 Likes

Hey @Tommi_Kiviniemi, we really appreciate you taking the time to share this feedback with us. I've responded to each of your points below.

We track all enhancement requests/confirmed bugs on our GitHub; however, we don't publicly have a roadmap because of the constantly changing priorities. Obviously, we try to address the more serious bugs first and when we have a Pull-Request ready that solves a known bug we label the Pull-Request with the version of Kibana that will have the fix.

When mouse hovering over graphs the area charts don’t display the max value in the info picker. Conversely, hovering over Timelion graphs don’t show the time value. This is almost a showstopper as you kinda have to resort to photoshop or such to see the exact time value when hovering over a Timelion graph, or to see the total value of a split area chart.

With regard to the area charts, the tooltips are displaying the values for the individual series, were you wanting the total for the series to be displayed in the tooltips instead, or perhaps in addition to the series value?

Modifying Timelion to display the value of the the x-axis is a good candidate for an Enhancement Request in our GitHub repo.

There should be better control over a chart's interval. Use case: We have a chart showing daily active users. The default time range of the dashboard is last 7 days. We have set the interval to 1d, as auto shows too much noise in the weekly view. This makes it impossible to select a shorter time range (like last hour) as the chart will show its contents fit to days, effectively coming up blank. Selecting a longer time range works though.
Could a change be made so a chart would go to auto mode by itself if the selected time range is shorter than its interval?

This would be another good opportunity for an enhancement request, this one seems similar, but isn't exactly what you're looking for.

If a chart requires math of any kind (where data come from separate queries) Timelion must be used. This is far harder to use than the wysiwyg graph editor. Fortunately, most of the game metrics are discrete enough that they don’t need this pass. Any plans of adding a feature similar to Amplitude's custom formula editor or such?

There are some improvements targeted for Kibana 5.4 that will add the following pipeline aggregations that might address your needs:

Parent Pipeline Aggregations

  • Derivative
  • Cumulative Sum
  • Moving Avg
  • Serial Diff

Sibling Pipeline Aggregations

  • Average Bucket
  • Sum Bucket
  • Min Bucket
  • Max Bucket

We also have a new Time Series Visual Builder that supports the pipeline aggregations, and is geared specifically towards metrics that could potentially solve some of your problems.

There is no way to plot a line graph’s total value, or add multiple y axes, in the wysiwyg editor. So Timelion must be used for creating line graphs where we want to show a total value of all the splits. Use case: we have a graph showing accumulated revenue split by platform type, and would like to have one line which shows the TOTAL amount of all splits.

There are some additional improvements targeted at Kibana 5.4 that will add a number of options to all point series charts, including the ability to do stacked line charts and multiple y-axis that will hopefully address your needs.

If using split series in Timelion, there is no way to select which color goes to which split. If this is needed manual setup of one query per split is required. Use case: we want to use standardised colors for different platforms (red for iOS, green for Android and so on).

This would be another good opportunity for an enhancement request.

Bug: Timelion - A javascript error is thrown if you define more colors than a split series outputs, effectively making the .color('a:b'c') option unusable in Timelion for other than extremely defined data.

I'm unable to reproduce this, would you mind confirming your version of Kibana and the query that you're using?

There is no built-in .divideseries() in Timelion, making math on split series impossible. We are using a plugin for that, but it crashes if the split series are different in divider/divisor. We only use .divideseries() if the event is the same in both divider and divisor, else manually set up one query per split. This is extremely cumbersome and error prone.

This seems worthwhile of an enhancement request for Timelion.

When having to do manual splits (one query per split) in Timelion (see above), there doesn't seem to be a way to hide the series that didn't have any data. This creates a discrepancy between the graphs using splits (showing only the splits with data), while the manual query splits are always there.

When there is no data for a split, is the line just showing up as all 0s, and you're wanting the line to not show up at all?

There is no way of making unstacked (side by side) bar charts in Timelion (.bars(stacked=false) just stacks the bars differently).

Another good opportunity for an enhancement request.

Bug: Using the label() expression in Timelion with an empty string prevents the label from being drawn, but all consecutive labels’ values are offset by one. This is very dangerous as the graph shows correct values but the labels incorrect values.

Would you mind posting a screenshot of this? I'm having trouble replicating this one as well.

Bug: Pie chart labels don't work, they will just show the auto-generated expression string.

The Custom Label input is used in the tooltip as shown below:

Are you referring to something different?

Annoyance: Creating a new chart resets time period to 15 minutes, so graphs can show weird data until that is corrected. It is very easy to miss and wonder why the chart shows weird stuff.

This is very weird indeed, definitely worth filing a bug for this behavior.

There doesn't seem to be a way of sending in any kind of parameters to a dashboard in a convenient way. Use case: We have embedded Kibana dashboards in an iframe without showing the Kibana UI. We'd really need a way for the analytics users to be able to pick, for example, a country filter. If the Kibana UI is hidden there is no query bar visible. Also, even if there was it'd be a very hard sell to tell the analytics users to learn the query language. It would be far better if there was a widget you could create for sending in formatted parameters (like a country selector).

Agreed, and this is something that we intend to look into. If you'd like to provide your input, there's an existing GitHub issue that started discussing this: https://github.com/elastic/kibana/issues/6884

One thing we've also seen done is using the MarkDown widget to create links to the various dashboards with filters applied.

1 Like

Hi @Brandon_Kobel and thanks for the in-depth reply! Really appreciated.

What I meant was that there is no way of seeing the total value when hovering over a section of an area. Please see the attached image where an area chart shows failure reasons. In addition to the relative amount of different errors we are very interested in seeing if the error RATE itself increases (and by how much). To do this we'd have to create an additional (line) chart. It'd be convenient if, for example, hovering over the top "node" in the area chart (as I do in the screenshot) displayed the total number as well.

In the attached screenshot the split series produces three values. Let's say there's a maximum of four values for the series, so I have set the colors to red, green, blue and yellow. I get the following error:

I will do that. Not showing the value of the x-axis forces us to use photoshop, which is a bit cumbersome to say the least, and does not always provide enough precision :slight_smile:

Yes exactly! We have some Timelion charts that are split based on say platform type, which of course draws lines only for existing platforms. However, due to the lack of a .divideseries() we have to sometimes hard-code several expressions into one, say one line for iOS, one for Android and so on, by modifying the query to "... AND platform:iOS" etc. In this case we have to make a line for EVERY possible platform. Now, for a lot of ranges no data exist for a particular platform, but the line is still rendered. However, the graphs that are split won't show those platforms, only the ones that contained data. This creates a discrepancy that can be dangerous if you assume a similar order in all charts. Maybe add an option to not draw the line if no data points were found? Of course this wouldn't be a problem if .splitseries() existed.

Ok so in the first image there's a line for iOS, and another line just for the .points() part. All queries have labels so this works properly:

Now we hide the .points() line:

Both charts render correctly. First look at the labels in the first image, iOS shows 7 and Android 2. Now look at the labels in the second image, Android's label shows what would have been shown in the HIDDEN label. This is very dangerous as all consecutive labels after the hidden label will show bogus values.

Peculiar, it doesn't work for me. We are using Kibana 5.2.2:

I will get back to the ones I didn't answer yet, but wanted to get this info out as soon as possible. Thanks again for looking into these!

  • Tommi

What I meant was that there is no way of seeing the total value when hovering over a section of an area. Please see the attached image where an area chart shows failure reasons. In addition to the relative amount of different errors we are very interested in seeing if the error RATE itself increases (and by how much). To do this we'd have to create an additional (line) chart. It'd be convenient if, for example, hovering over the top "node" in the area chart (as I do in the screenshot) displayed the total number as well.

That makes sense, this is another situation where an enhancement request for the tooltip in stacked mode would be beneficial.

In the attached screenshot the split series produces three values. Let's say there's a maximum of four values for the series, so I have set the colors to red, green, blue and yellow. I get the following error:

Thanks for the clarification, I've been able to confirm that this is a bug and it warrants a bug in github.

Yes exactly! We have some Timelion charts that are split based on say platform type, which of course draws lines only for existing platforms. However, due to the lack of a .divideseries() we have to sometimes hard-code several expressions into one, say one line for iOS, one for Android and so on, by modifying the query to "... AND platform:iOS" etc. In this case we have to make a line for EVERY possible platform. Now, for a lot of ranges no data exist for a particular platform, but the line is still rendered. However, the graphs that are split won't show those platforms, only the ones that contained data. This creates a discrepancy that can be dangerous if you assume a similar order in all charts. Maybe add an option to not draw the line if no data points were found? Of course this wouldn't be a problem if .splitseries() existed.

I think an option is appropriate, I don't think's something we'd want to enable by default as I could see that being rather confusing. The splitseries function would also make sense.

Both charts render correctly. First look at the labels in the first image, iOS shows 7 and Android 2. Now look at the labels in the second image, Android's label shows what would have been shown in the HIDDEN label. This is very dangerous as all consecutive labels after the hidden label will show bogus values.

That's very interesting... I'm following you now, and I've been able to replicate this bug as well, nice find!

Peculiar, it doesn't work for me. We are using Kibana 5.2.2:

Looks like this bug has been resolved in 5.4 - https://github.com/elastic/kibana/pull/10219

Thanks for your help, we really appreciate it!

I have filed bug reports and feature requests for the discussed points.

  • Tommi

A follow-up question is in order. It seems that with enough data any Timelion chart using .divideseries() (the custom extension) times out. We really need to do stuff like "revenue / users" "split by platform", which is not possible with vanilla Timelion or Kibana. Are there any workarounds for this, as we really need charts like those? Any kind of workaround attempt would be hugely appreciated!

Thanks,

  • Tommi

Tommi, you might want to investigate if scripted fields in Kibana can meet your needs.

A demo video is here... https://www.youtube.com/watch?v=BhmpDtS7g28

Rob

Thanks for the reply Robert!

Unfortunately we need to access different events, such as fetching the revenue from a revenue event, divided by cardinality of (unique) users from a load event. I interpret
"Note: Keep in mind that Kibana scripted fields work on a single document at a time only, so there is no way to do time-series math in a scripted field."
to mean you can only do operations within a single event type.

However, we were able to solve the issue by hacking the Timelion plugin :stuck_out_tongue:

Thanks again,

  • Tommi

@Tommi_Kiviniemi I can see why scripted fields wouldn't work for you. I have used them for math on multiple metrics within the same document, which worked really well.

Since you mention timelion, it is worth noting that timelion will not be able to graph scripted fields as the es() function appears to go directly to Elasticsearch and bypasses the index pattern config in Kibana. This also means that any field formatting you have configured in Kibana will be ignored by timelion as well.

The good news is that over time the folks at Elastic have been making constant improvements, so while we are left to deal with some occasional quirkiness, I trust that many such details will improve over time.

Rob

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.