mirror of
https://github.com/Unitech/pm2.git
synced 2025-12-08 20:35:53 +00:00
(aggregator) add check to avoid invalid data
This commit is contained in:
parent
48cffd5b56
commit
28dd085666
@ -177,15 +177,6 @@ var TransactionAggregator = module.exports = function (pushInteractor) {
|
||||
this.mergeTrace = function (aggregated, trace) {
|
||||
if (!aggregated || !trace)
|
||||
return ;
|
||||
if (!aggregated.variances)
|
||||
aggregated.variances = [];
|
||||
|
||||
if (!aggregated.meta)
|
||||
aggregated.meta = {
|
||||
count: 0,
|
||||
min: 100000,
|
||||
max: 0
|
||||
}
|
||||
|
||||
// remove spans with startTime == endTime
|
||||
trace.spans = trace.spans.filter(function(span) {
|
||||
@ -195,6 +186,16 @@ var TransactionAggregator = module.exports = function (pushInteractor) {
|
||||
if (trace.spans.length == 0)
|
||||
return ;
|
||||
|
||||
// create data structure if needed
|
||||
if (!aggregated.variances)
|
||||
aggregated.variances = [];
|
||||
if (!aggregated.meta)
|
||||
aggregated.meta = {
|
||||
count: 0,
|
||||
min: 100000,
|
||||
max: 0
|
||||
}
|
||||
|
||||
// compute duration of child spans
|
||||
trace.spans.forEach(function(span) {
|
||||
span.min = span.max = span.mean = Math.round(new Date(span.endTime) - new Date(span.startTime));
|
||||
@ -409,6 +410,10 @@ var TransactionAggregator = module.exports = function (pushInteractor) {
|
||||
Object.keys(routes).forEach(function(route_path) {
|
||||
var data = routes[route_path];
|
||||
|
||||
// hard check for invalid data
|
||||
if (!data.variances || data.variances.length == 0)
|
||||
return ;
|
||||
|
||||
// get top 5 variances of the same route
|
||||
var variances = data.variances.sort(function(a, b) {
|
||||
return b.count - a.count;
|
||||
@ -422,6 +427,10 @@ var TransactionAggregator = module.exports = function (pushInteractor) {
|
||||
}
|
||||
|
||||
variances.forEach(function (variance) {
|
||||
// hard check for invalid data
|
||||
if (!variance.spans || variance.spans.length == 0)
|
||||
return ;
|
||||
|
||||
// deep copy of variances data
|
||||
var tmp = fclone({
|
||||
spans: variance.spans,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user