I am on kibana 5 and I have pie chart visualization, it says "No results displayed because all values equal 0".
On discover tab everything is fine and ChannelID field is searchable and aggregatable.
Any ideas?
Screens:
kibana
kibana2
No results displayed because all values equal 0
means that the documents were found but the metric calculates 0 for every slice in your pie chart (probably sum of fields that are all 0). This cannot be displayed. If the values are 0 pie can't be drawn, there could be certain reasons.
Make sure you've set your aggregation correctly.
Make sure your metric is correct (by default it's count
which should work)
Make sure the time range which is located in the top right corner is set so you get
some results back (by default its last 15 minutes/give it a change)
You might want to have a look at this ticket. Hope it helps!
Related
Hopefully this is an easy question. I am working on a report containing an allocation sum for each person. I would like all allocation amounts greater than 100% to display with red background color, those that equal 100% to be green. All other cells can remain clear with no background.
I right clicked the cell with the sum, selected text box properties, and then fill. I entered the following expression: =IIF(Sum(Fields!Allocation.Value) =100%, "Green", IIF(Sum(Fields!Allocation.Value) >100%, "Red", "Transparent"))
I do not receive an error message but no data shows in the total column. Its like the transparent took over the cells. I've been trying to figure this out for three days. Please help! Thank you so much!
I think you need to refer to the instance of the value in the report, instead of the field. So use ReportItem![textbox name] in your expression.
For example:
IIF(ReportItems!TestScoreStudent.Value/ReportItems!TestMax.Value*100 < Parameters!Yellow.Value, "#f4a0a5", IIF(ReportItems!TestScoreStudent.Value/ReportItems!TestMax.Value*100 >= Parameters!Green.Value, "#b4eeb9", "#f4e5a9")))
I have data being written to Elasticsearch that I wanted to visualize in Kibana, but I'm having problems with the visualization.
I have a process writing when it starts {ProcessStartTime} and when it stops {ProcessStopTime}
I'm trying to create what I thought was a simple visualization:
A vertical bar chart with Count as the Y-Axis and {ProcessStartTime} and {ProcessStopTime} as bars on the X-Axis.
The problem is, instead of count of 480 for the {ProcessStartTime} as one vertical bar and a count for 389 for {ProcessStopTime} as another vertical bar. It separates out all unique {ProcessStartTime} entires so I have a count of 1 with a thousand vertical bars. Moreover, I appears I cannot add more than one term, just sub categories, so {ProcessStopTime} isn't on the bar chart at all. So I decided to try the Filter aggregation, which allowed me to get a count of all entries with "ProcessStartTime" in the body. However, I cannot add "ProcessStopTime" as another filter as those don't coexist.
My current solution is to have two charts, using the Filter aggregation, then compare the charts side-by-side to compare the counts. For obvious reasons, I'd like those combined, but I just don't see how to have two X-Axis buckets, or to group the data as it needs to be.
I am missing something obvious?
I might get wrong what you are trying to do and I can't comment on your question to ask for details, but here are a few things that you can do:
Get all entries regardless of their content (empty search query). Keep the Y-axis metrics for Aggregation-Count.
After that you can set a bucket for the X-axis with Filters aggregation, and use 2 filters.
Filter 1: ProcessStartTime: *
Filter 2: ProcessStopTime: *
This setup should give you 2 bars with the count of records that have the given attributes.
The other option is to make a new attribute, for example 'event', and give this attribute the values 'ProcessStartTime' and 'ProcessStopTime', and make a Terms aggregation bucket setup on event.keyword.
I hope this helps.
I have created a bar chart in Kibana using the percentage bar mode, with two filters on the x axis. I simply want to show the distribution of the filters as a percentage of the total results from the search query. The problem is that all of the filters are showing as 100%, when this is not correct. So the visualisation is not actually showing the amount of results in the filter as a percentage of the total results. My visualisation options are shown in the images below:
And the Options tab:
Old post, but in case somebody is looking for a similar answer:
You need to use a bucket type "Split Series" instead of "X-axis".
Need to display line in a line-chart , with the ability to move the tiles, to see a max bitrate value line, to see labels and axis pointers on hover, grouped with a table and time Slider.Y dimension needs to display "bitrate total" or "bitrate Avg" (as defined in code). X dimension needs to display 15 min interval in scope of weeks.
I can upload my data into a table but not into the line graph. I can see points on the graph using .renderDataPoints() but no lines.
I checked the data - could not find any null/NaN values being returned, not using any old version of colors.
The code can be found in https://jsfiddle.net/dani2011/bu2ag0f7/8/. Tried to replace my CSV with var data but nothing is being displayed at the moment in the fiddle. The code as whole is displayed in https://groups.google.com/forum/#!topic/dc-js-user-group/MEslyF2RWRI
Any help would be greatly appreciated.
Here's my go-to-answer for how to put data into a jsFiddle. Basically it's easiest to stick it in an unused tag in the HTML. bl.ocks.org / blockbuilder.org is easier for this.
Here's a fork of your fiddle with the data loaded that way:
http://jsfiddle.net/gordonwoodhull/bu2ag0f7/17/
I also had to remove the spaces from the column names, because those got d3.csv confused and caused the BITRATE calculations to fail.
There was also some stray code inside the renderlet which was failing with a complaint about dim not existing.
The main reason why data was not displaying was because the input groups were not producing usable aggregated data. Your data is very close together in time, so aggregating by week would aggregate everything.
The way to debug this is to put a breakpoint or a console.log before the chart initialization and look at the results of group.all()
In this case bitrateWeekMinIntervalGroupMove and minIntervalWeekBitrateGroup were returning an array with one key/value pair. No lines can be drawn with one point. :)
It looks like you originally wanted to aggregate by 15 minute intervals, so let's get that working.
For whatever reason, there are two levels of aggregation in crossfilter, the dimension level and the group level. The dimension will have first crack at generating a key, and then the group will further refine these keys.
Your min15 function will map each time-key to the 15-minute mark before it, but it needs data that is higher than 15 minutes in resolution. So let's put these groups on the dateDimension, which hasn't already been mapped to a lower resolution:
var minIntervalWeekBitrateGroup = dateDimension.group(min15).reduceSum(function (d) {
return +d.BITRATE
});
var bitrateWeekMinIntervalGroupMove = dateDimension.group(min15).reduce(
...
Great, now there are 30 data points. And it draws lines.
I made the dots a bit smaller :) because at 30 pixels it was hard to see the lines.
Zooming in using the range chart reveals more of lines:
There still seem to be glitches in the reduce function (or somewhere) because the lines drop to zero when you zoom in too far, but hopefully this is enough to get you moving again.
My fork of your fiddle: http://jsfiddle.net/gordonwoodhull/bu2ag0f7/25/
I have a few million documents in an ElasticSearch index with some numeric fields, say foo and bar. Is there any way to use Kibana 4 to create a graph with foo values on the X axis and bar values on the Y axis? Like a very, very basic chart one might create using Excel.
I'm fine with sampling/aggregations of some kind. I understand that these tools won't show me a plot with 20 million data points. I'm just trying to see if there's some obvious relationship between foo and bar by creating a graph.
To just plot the correlation between revenue and employee count I would just use a line chart like this:
In order to justify creating a scatter plot chart though (since they're awesome and I wanted to) I generated some fake data that looked something like this:
{
name: faker.company.companyName(),
employees: _.random(3, 30),
revenue: _.random(10000, 100000),
industry: _.sample(industries)
}
And plotted it in visualize by breaking it down piece-by-piece:
Start with a line chart
Switch to Options tab of sidebar (since 4.1)
Uncheck "Show Connecting Lines"
Check "Scale Y-Axis to Data Bounds"
Switch back to the Data tab
Modify the "Y-Axis"
use the Average aggregation
on the employees field
Add a "Dot Size" metric
use the Unique Count aggregation
on the company field
Add a "Split Lines" bucket
use the Terms aggregation
on the industry field
I like to set the size close to the cardinality of my data
Add an "X-Axis"
use the Histogram aggregation
on the revenue field
guess an interval, you will need to play with this a bit
Finally, click Apply
This configuration is pretty complex, but the resulting visualization shows a lot of information.
I found a hack for this.
Create a line chart
X axis is a Terms aggregation of foo
Add sub-aggregation (Split Lines) on the same field
Y Axis is sum of your other column (bar)
I don't see any way of making the legend meaningful, though