13 April 2017 Engineering

New Kibana Visualizations: Heatmap and Point Series

By Peter Pišljar

With Tag Cloud we started our journey of adding new visualizations to Kibana. But we did not stop there. In 5.2 we introduced Heatmap visualization, and in 5.4 we plan to bring in much-requested enhancements for point series visualizations (e.g. line, area, bar) supporting multiple Y axes, mixed charts, and other awesome stuff.

Let’s look at some of these additions from a use case perspective.

Heatmap Chart

Heatmap charts allow you to plot individual bucket values as a color. Normally, in a chart a color would represent a single metric. 404 errors get one color and 200 responses get another. With heatmap, the color represents the aggregation value of a bucket and not to which series it belongs to.

Let’s start with a very simple use case. Imagine we want to plot a chart representing visitors to our website. We want to see how many visitors we are getting per top 5 operating systems. One way to do this would be to use a pie chart. But we want to see this over the course of days. We could go with vertical bar chart where each bar would represent a day and it would be split in 5 sections representing operating systems.

But a heatmap would probably represent this better. Select Date Histogram aggregation for your X-Axis aggregation and select Term aggregation on the machine.os field for your Y-Axis aggregation.

heatmap.png

Heatmap chart offers quite a few ways to customize it. You can choose among predefined color schemes or create your own by overwriting existing colors in the legend. It’s possible to define custom ranges for your color buckets and you can show labels on the buckets, just to name a few of them. Its best to take a look on your own and dive in.

Note: Heatmaps are not specific to the Date Histogram aggregation. You can use them with most bucket aggregations. However when used with Date Histogram they do replace the need for using Prelert swimlanes plugin.

Point Series Charts

With Point Series charts we mean the Area, Line and Vertical Bar charts. And with 5.4 we will have added another one to the group - Horizontal bar chart. We also added tons of options to them to make these chart types  far more powerful. Though the 5.4 release hasn’t shipped yet, you can already see these changes in master and Kibana nightly snapshot builds, and we want your feedback!

Multiple Y Axes

Whenever you are trying to plot two metrics on the same charts which have values in different ranges, this feature is a must have.

Let’s start by creating a Vertical Bar Chart. Select Date Histogram for your bucket aggregation and add another metric aggregation next to the Count which is provided by default in X-Axis. In this example I added Average of machine.ram.

bar_2metrics.png

Clicking on the play button will produce a chart where you can't really see the Count as it’s too small in comparison with Average machine.ram. But now you have another tab in visualize editor called 'Metrics & Axes'.

Clicking it you will find the list of metrics. Select Average machine.ram and in the Value Axis drop down choose New Axis. Another Y Axis was just added and clicking on the play button again you will see much nicer chart.

bar_2metrics_2axes.png

Each value axes offers you plenty of options to look into, so do not be afraid to click around or look to the documentation for explanation of what each of them does.

Multiple chart types per plot

In the past many have gone thru the frustration of setting up a line chart, just to find out that it would look better like a bar. The only way to do it was to reconstruct your whole chart from scratch again. No more! Now you can easily change the type of chart used to plot each metric. This doesn't just allow you to switch from line to bar and vice versa, but allows you to mix different charts as well.

If we continue with the example from above, changing the Average machine.ram metric type to line produces a chart that is actually easy to read now.

bar_2metrics_2axes_multichart.png

Horizontal (bar) cart

Another cool thing you can do with your charts is position your axes where ever you find them suitable. And by changing your X-Axis position to be on the left you actually get a horizontal chart. Yup, it’s this easy!

bar_2metrics_2axes_multichar_horizontal.png

Gridlines

If you head to the `Panel Settings` tab in visualize editor you will see a checkbox to enable gridlines on X-Axis. Next to it is a dropdown, that allows you to show lines on one of the Y-Axes. This option helps the eye more easily perceive scale of values on a plot. 

bar_2metrics_2axes_multichart_grid.png

Let us know what you think

I am going to stop at this and give you time to play with the new features on your own. If you want to see these visualizations and more in action, check out the Kibana Visualizations Deep Dive talk from Elastic{ON}17. And we would love to hear back from you. Never hesitate to submit enhancement requests and bug reports in Github or ask questions on the Discuss forum.