-
Notifications
You must be signed in to change notification settings - Fork 8.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Heatmap Charts #1265
Comments
Take a look at graphite for this. Check out grafana.org for a very familiar interface. |
Thanks @elvarb but as far as I know neither graphite (which I use often) or grafana (which we plan to use soon) offer heat-maps. Even if they did, the data I want to display is in elasticsearch and kibana is the ideal way to present it. Supporting a heat-map chart style would be a natural addition to the existing histogram panel. |
I'm using grafana against influxdb and by using three queries I can get some sort of a heat map. Each query the same except one uses max, other mean and the last min. The way smoke ping works would be a goal maybe? |
While I appreciate the suggestion @elvarb, what you describe does not sound at all like a heat map. For example, it wouldn't show 'hot spots'. A heat map requires the color/density of the pixels to vary according to the number of value that fall into that slot. The heat map shown here shows rich information that would be mostly hidden using a simple min/median/max visualization. And similarly for the information in these heat maps. |
I agree, not perfect by far but in the direction. Another way I have been using to simulate a heatmap is using a point graph. It should be possible to modify the point settings to add opacity of the points and then displaying all points in the time series. When the points overlap a 10% opacity per point would quickly become more visible. |
A point graph that allows the point size and opacity to be set would be workable, yes. So, incremental steps towards a heat map:
Those last three could be combined into a 'heat map' style that would also enable opacity if selected. |
Interesting. Thanks @LukasHavemann. |
We published the Code: https://github.com/ppi-ag/kibana-heatmap |
Nice work. Why does it require a special timestamp field instead of using a normal timestamp field? |
The special timestamp field is a byproduct of a other more sophisticated feature which we implemented in our stack. At that time I was not so familiar with the Elasticsearch API so I used this special field and the terms panel as foundation for the heatmap panel to get the job quickly done. I think it should be possible to write a query with the Aggregations API which will do the same thing. |
This look brilliant, thanks Lukas! Do you have an example of the using it with the elasticsearch script functionality? |
@yogi183 Sorry not really. I tried some different things, but as I said I am not that familiar with the Elasticsearch API. With that I was able to make request like this:
This query returns a additional scripted field for the matched documents. But if my memories are correct the problem was that elasticsearch is not capable of aggregating on scripted fields or something like that. So I gave up and added the additional timestamp field during the import. |
@rashidkpc Are there any plans to implement a heatmap or a scatter plot panel in Kibana? #928 #978 |
Yep, its on the roadmap. We have a working prototype, but we're refactoring how things work to play better with aggregations in a more flexible and composable way |
Hello, is it possible to get an idea of where on the roadmap it is? (weeks/months/years). It seems an slightly odd omission for a package specialising in visualising big data. |
+1 |
I think I understand the reason now - kibana 3 uses facets whereas
|
A few notes as this is a work in progress. The current functionality for the 2D Heatmap is such:
Major things left to accomplish:
@jthomassie feel free to add to this list. |
👍 |
Very nice, looking good. On 20 November 2014 04:42, Sahil Thapar notifications@github.com wrote:
|
Thanks for the update @stormpython. It looks great! |
+1 |
1 similar comment
+1 |
@rashidkpc http://bl.ocks.org/mbostock/3074470 is an example using d3 and canvas. Perhaps this approach would work here. Even though in general you're using SVG, it's really just because you're using d3 and it uses SVG by default, no? But even this approach is only needed for very dense heat maps - most traditional heat maps should work fine with SVG it seems (eg https://github.com/rstudio/d3heatmap, http://bl.ocks.org/tjdecke/5558084) I think for most of the applications for which people need heatmaps, svg would be fine. If needed, you could put a limit on the number of data points returned like there are in other visualizations. |
Just wanted to comment that we've had a few users we've talked to ask for scatter plot graphs :) |
@stormpython @jthomassie Do you have your prototype available somewhere? If not, could you publish the patch so we can take a look at it, please? |
Currently there's no prototype, you'd need to start from scratch. |
+1 |
1 similar comment
+1 |
We are trying to make a prototype of this for our specific usecase. What we want is to show a square with a color associated the most/least common value. In Kibana 3, we installed the Heatmap plugin that allows us to fulfill our requirements. Something like: As this was removed from the roadmap, we are trying to work on this, as this is a blocker requirement for us in order to move from K3 to K4. I have to tell that I didn't find easy at all how to add new visualizations, as you explicitly ask us not to develop any custom plugin and it's not documented because at some point you may change this (#1440 ?) My original idea was to have something like this in left panel to select metrics to build the heatmap. For documents like:
There would be a "metrics" section, where you can select what field will be represented as a square and another dropdown where you can select if you want to show the most/least repeated one. The rows/columns buckets, will allow the user to select what values should appear in the X/Y axis and what type of aggregation should be performed. This would just be perfect for us, but to make it more generic, if the metric is a number I thought to have something like: Where you can select the aggregation metric for the field (min, max, mean...) and define some thresholds. So depending on the value of each square, it will show a different color if it's in one range or another. What we developed until now is this fork of Kibana 4.1.1 (branch: heatmap). It's something that it's still on development (not very usable at the moment). Here a screenshot of what we have right now: Some things that need improvement:
We were wondering if you would be interested in giving some feedback/ideas to us in case you might want to include this as a visualization in K4. |
@Pigueiras I can't offer specific feedback on how to do this since:
I can say however that the pie chart query is not ideal for heatmaps. It would be better to use our |
+1 |
2 similar comments
+1 |
+1 |
+1 |
I have broken this out into a plugin. Please note: This plugin is still in alpha. There is a list of items that need to be completed before this is a fully functioning plugin. You are free to test it out in its current state, but be warned that several things are still broken. I plan to check these items off the list within the next several weeks so that I can get this out for beta testing. Once the plugin is in beta, I plan on closing this issue and redirecting all issues and feature request to the plugin repo. |
+1 @stormpython |
+1 |
See Brendan Gregg's excellent blog post on Latency Heat Maps that explains how heat maps enable highly-effective visualization of large volumes of time-series data.
See also this ACM journal article containing many examples showing the ability of heat maps to reveal patterns that would be hidden in normal graphs.
I think this would be a significant addition to Kibana for many use-cases, especially those using time-series data.
The text was updated successfully, but these errors were encountered: