Commit a01dd003 by Spencer Alger

Rebased to master to include latest changes

updated the getFlotPairs() function to only check before and after a value, adding only enough zeros to maintain line graphs.
parent d45690af
......@@ -95,7 +95,7 @@ angular.module('kibana.histogram', [])
};
$scope.get_interval = function () {
var interval = $scope.panel.interval,
var interval = $scope.panel.interval,
range;
if ($scope.panel.auto_int) {
range = $scope.get_time_range();
......@@ -188,8 +188,8 @@ angular.module('kibana.histogram', [])
// Make sure we're still on the same query/queries
if($scope.query_id === query_id && _.difference(facetIds, $scope.panel.queries.ids).length === 0) {
var i = 0,
time_series,
var i = 0,
time_series,
hits;
_.each($scope.panel.queries.ids, function(id) {
......@@ -342,8 +342,19 @@ angular.module('kibana.histogram', [])
lineWidth: scope.panel.linewidth,
steps: false
},
bars: { show: scope.panel.bars, fill: 1, lineWidth:0, barWidth: barwidth/1.7, zero: false },
points: { show: scope.panel.points, fill: 1, fillColor: false, radius: 5},
bars: {
show: scope.panel.bars,
fill: 1,
barWidth: barwidth/1.8,
zero: false,
lineWidth: 0
},
points: {
show: scope.panel.points,
fill: 1,
fillColor: false,
radius: 5
},
shadowSize: 1
},
yaxis: {
......@@ -485,24 +496,33 @@ angular.module('kibana.histogram', [])
*/
this.ZeroFilled.prototype.getFlotPairs = function () {
// var startTime = performance.now();
var times = _.map(_.keys(this._data), base10Int).sort(),
result = [],
i,
next,
expected_next;
for(i = 0; i < times.length; i++) {
result.push([ times[i], this._data[times[i]] ]);
next = times[i + 1];
expected_next = times[i] + this.interval_ms;
for(; times.length > i && next > expected_next; expected_next+= this.interval_ms) {
/**
* since we don't know how the server will round subsequent segments
* we have to recheck for blanks each time.
*/
// this._data[expected_next] = 0;
result.push([expected_next, 0]);
var times = _.map(_.keys(this._data), base10Int).sort(),
result = [];
_.each(times, function (time, i, times) {
var next, expected_next, prev, expected_prev;
// check for previous measurement
if (i > 0) {
prev = times[i - 1];
expected_prev = time - this.interval_ms;
if (prev < expected_prev) {
result.push([expected_prev, 0]);
}
}
}
// add the current time
result.push([ time, this._data[time] ]);
// check for next measurement
if (times.length > i) {
next = times[i + 1];
expected_next = time + this.interval_ms;
if (next > expected_next) {
result.push([expected_next, 0]);
}
}
}, this);
// console.log(Math.round((performance.now() - startTime)*100)/100, 'ms to get', result.length, 'pairs');
return result;
};
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment