Generating matrix heatmap in Kibana


(Nikhil Utane) #1

Hi,
I want to create a matrix-type heatmap as shown here: https://github.com/stormpython/heatmap
Sample image:

My X-axis will be date histogram and Y-axis will be the multiple fields being monitored.
For e.g. First row could be CPU, second memory and so on.
And depending on the ranges specified, the colors can be green, yellow or orange.

I could create basic heatmap in Kibana for one field, but couldn't find anything that allows me to create such a grid. The plugin provided in the above link seems to be what I want but is not supported for Kibana 5.x.
What are my options here?
Thanks
Nikhil


Multiple row metric heat hap
(Mark Walkom) #2

Use https://www.elastic.co/guide/en/kibana/current/heatmap-chart.html, it's a native visualisation.


(Nikhil Utane) #3

Thanks for the extremely quick response.
I selected new visualization of type Heatmap, but I don't see any option/way that would allow me to create a grid. What am I missing? Thanks.


(Mark Walkom) #4

You need to add a sub-bucket to split by Y axis.


(Nikhil Utane) #5

I tried that but:
a) It doesn't give an option to select fields (aggregate) like before rather you can only 'group by' X-axis terms (histogram, terms etc)
b) You can only add 1 other Y-axis sub-bucket.

In my case, I want to have many more fields.


(Nikhil Utane) #6

I tried with dummy data and was able to generate the heatmap in the manner I was looking for.
As you suggested I used "Terms" aggregation in the sub-bucket and it now splits across various categories that I have.

Now my question is, for the purpose of this exercise, I created data with values {0,1,2,3} where each number results into different color.
If I need to generate such a data based on information that is already present inside elasticsearch what is the right way?
For e.g. I want to show, say CPU usage, memory usage, status of some service. I don't think I can directly create the visualization based on such unrelated fields. So my best bet looks to be to create a separate data store. where periodically I update the status of each of these which can then be displayed in a heatmap as above. Please let me know if this is the right approach and if so, is there any mechanism within Elasticsearch that makes it easy to do that?
Thanks
Nikhil


(system) #7

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