|
|
|
@ -45,6 +45,8 @@ angular.module('kibana.histogram', []) |
|
|
|
|
var _d = { |
|
|
|
|
group : "default", |
|
|
|
|
query : [ {query: "*", label:"Query"} ], |
|
|
|
|
mode : 'count', |
|
|
|
|
value_field: null, |
|
|
|
|
auto_int : true, |
|
|
|
|
interval : '5m', |
|
|
|
|
fill : 3, |
|
|
|
@ -124,12 +126,20 @@ angular.module('kibana.histogram', []) |
|
|
|
|
|
|
|
|
|
// Build the facet part, injecting the query in as a facet filter
|
|
|
|
|
_.each(queries, function(v) { |
|
|
|
|
request = request |
|
|
|
|
.facet($scope.ejs.DateHistogramFacet("chart"+_.indexOf(queries,v)) |
|
|
|
|
.field($scope.time.field) |
|
|
|
|
.interval($scope.panel.interval) |
|
|
|
|
.facetFilter($scope.ejs.QueryFilter(v)) |
|
|
|
|
).size(0) |
|
|
|
|
|
|
|
|
|
var facet = $scope.ejs.DateHistogramFacet("chart"+_.indexOf(queries,v)) |
|
|
|
|
|
|
|
|
|
if($scope.panel.mode === 'count') { |
|
|
|
|
facet = facet.field($scope.time.field) |
|
|
|
|
} else { |
|
|
|
|
if(_.isNull($scope.panel.value_field)) { |
|
|
|
|
$scope.panel.error = "In " + $scope.panel.mode + " mode a field must be specified"; |
|
|
|
|
return |
|
|
|
|
} |
|
|
|
|
facet = facet.keyField($scope.time.field).valueField($scope.panel.value_field) |
|
|
|
|
} |
|
|
|
|
facet = facet.interval($scope.panel.interval).facetFilter($scope.ejs.QueryFilter(v)) |
|
|
|
|
request = request.facet(facet).size(0) |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
// Populate the inspector panel
|
|
|
|
@ -171,14 +181,12 @@ angular.module('kibana.histogram', []) |
|
|
|
|
// Assemble segments
|
|
|
|
|
var segment_data = []; |
|
|
|
|
_.each(v.entries, function(v, k) { |
|
|
|
|
segment_data.push([v['time'],v['count']]) |
|
|
|
|
segment_data.push([v['time'],v[$scope.panel.mode]]) |
|
|
|
|
hits += v['count']; // The series level hits counter
|
|
|
|
|
$scope.hits += v['count']; // Entire dataset level hits counter
|
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
data.splice.apply(data,[1,0].concat(segment_data)) // Join histogram data
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Create the flot series object
|
|
|
|
|
var series = {
|
|
|
|
|
data: { |
|
|
|
|