Skip to content

Commit

Permalink
Merge pull request #48 from mattiaerre/cannot-read-property-of-undefi…
Browse files Browse the repository at this point in the history
…ned-issue

add guard clauses on app.js
  • Loading branch information
RafalWilinski authored Sep 7, 2016
2 parents c425dec + de038b1 commit 2003a4f
Showing 1 changed file with 66 additions and 28 deletions.
94 changes: 66 additions & 28 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ var createChart = function (ctx, dataset) {
});
};

var addTimestamp = function(point) {
var addTimestamp = function (point) {
return point.timestamp;
};

Expand Down Expand Up @@ -102,40 +102,60 @@ socket.on('start', function (data) {
data[defaultSpan].responses.pop();
data[defaultSpan].os.pop();

cpuStat.textContent = data[defaultSpan].os[data[defaultSpan].os.length - 1].cpu.toFixed(1) + '%';
var lastOsMetric = data[defaultSpan].os[data[defaultSpan].os.length - 1];

cpuStat.textContent = '0.0%';
if (lastOsMetric) {
cpuStat.textContent = lastOsMetric.cpu.toFixed(1) + '%';
}

cpuChart.data.datasets[0].data = data[defaultSpan].os.map(function (point) {
return point.cpu;
});
cpuChart.data.labels = data[defaultSpan].os.map(addTimestamp);

memStat.textContent = data[defaultSpan].os[data[defaultSpan].os.length - 1].memory.toFixed(1) + 'MB';
memStat.textContent = '0.0MB';
if (lastOsMetric) {
memStat.textContent = lastOsMetric.memory.toFixed(1) + 'MB';
}

memChart.data.datasets[0].data = data[defaultSpan].os.map(function (point) {
return point.memory;
});
memChart.data.labels = data[defaultSpan].os.map(addTimestamp);

loadStat.textContent = data[defaultSpan].os[data[defaultSpan].os.length - 1].load[defaultSpan].toFixed(2);
loadStat.textContent = '0.00';
if (lastOsMetric) {
loadStat.textContent = lastOsMetric.load[defaultSpan].toFixed(2);
}

loadChart.data.datasets[0].data = data[defaultSpan].os.map(function (point) {
return point.load[0];
});
loadChart.data.labels = data[defaultSpan].os.map(addTimestamp);

responseTimeStat.textContent = data[defaultSpan].responses[data[defaultSpan].responses.length - 1].mean.toFixed(2) + 'ms';
var lastResponseMetric = data[defaultSpan].responses[data[defaultSpan].responses.length - 1];

responseTimeStat.textContent = '0.00ms';
if (lastResponseMetric) {
responseTimeStat.textContent = lastResponseMetric.mean.toFixed(2) + 'ms';
}

responseTimeChart.data.datasets[0].data = data[defaultSpan].responses.map(function (point) {
return point.mean;
});
responseTimeChart.data.labels = data[defaultSpan].responses.map(addTimestamp);

if (data[defaultSpan].responses.length >= 2) {
var deltaTime = data[defaultSpan].responses[data[defaultSpan].responses.length - 1].timestamp - data[defaultSpan].responses[data[defaultSpan].responses.length - 2].timestamp;
rpsStat.textContent = (data[defaultSpan].responses[data[defaultSpan].responses.length - 1].count / deltaTime * 1000).toFixed(2);
var deltaTime = lastResponseMetric.timestamp - data[defaultSpan].responses[data[defaultSpan].responses.length - 2].timestamp;
rpsStat.textContent = (lastResponseMetric.count / deltaTime * 1000).toFixed(2);
rpsChart.data.datasets[0].data = data[defaultSpan].responses.map(function (point) {
return point.count / deltaTime * 1000;
});
rpsChart.data.labels = data[defaultSpan].responses.map(addTimestamp);
}

charts.forEach(function(chart) {
charts.forEach(function (chart) {
chart.update();
});

Expand All @@ -160,26 +180,44 @@ socket.on('start', function (data) {

socket.on('stats', function (data) {
if (data.retention === spans[defaultSpan].retention && data.interval === spans[defaultSpan].interval) {
cpuStat.textContent = data.os.cpu.toFixed(1) + '%';
cpuChart.data.datasets[0].data.push(data.os.cpu);
cpuChart.data.labels.push(data.os.timestamp);

memStat.textContent = data.os.memory.toFixed(1) + 'MB';
memChart.data.datasets[0].data.push(data.os.memory);
memChart.data.labels.push(data.os.timestamp);

loadStat.textContent = data.os.load[0].toFixed(2);
loadChart.data.datasets[0].data.push(data.os.load[0]);
loadChart.data.labels.push(data.os.timestamp);

responseTimeStat.textContent = data.responses.mean.toFixed(2) + 'ms';
responseTimeChart.data.datasets[0].data.push(data.responses.mean);
responseTimeChart.data.labels.push(data.responses.timestamp);

var deltaTime = data.responses.timestamp - rpsChart.data.labels[rpsChart.data.labels.length - 1];
rpsStat.textContent = (data.responses.count / deltaTime * 1000).toFixed(2);
rpsChart.data.datasets[0].data.push(data.responses.count / deltaTime * 1000);
rpsChart.data.labels.push(data.responses.timestamp);
var os = data.os;

cpuStat.textContent = '0.0%';
if (os) {
cpuStat.textContent = os.cpu.toFixed(1) + '%';
cpuChart.data.datasets[0].data.push(os.cpu);
cpuChart.data.labels.push(os.timestamp);
}

memStat.textContent = '0.0MB';
if (os) {
memStat.textContent = os.memory.toFixed(1) + 'MB';
memChart.data.datasets[0].data.push(os.memory);
memChart.data.labels.push(os.timestamp);
}

loadStat.textContent = '0';
if (os) {
loadStat.textContent = os.load[0].toFixed(2);
loadChart.data.datasets[0].data.push(os.load[0]);
loadChart.data.labels.push(os.timestamp);
}

var responses = data.responses;

responseTimeStat.textContent = '0.00ms';
if (responses) {
responseTimeStat.textContent = responses.mean.toFixed(2) + 'ms';
responseTimeChart.data.datasets[0].data.push(responses.mean);
responseTimeChart.data.labels.push(responses.timestamp);
}

if (responses) {
var deltaTime = responses.timestamp - rpsChart.data.labels[rpsChart.data.labels.length - 1];
rpsStat.textContent = (responses.count / deltaTime * 1000).toFixed(2);
rpsChart.data.datasets[0].data.push(responses.count / deltaTime * 1000);
rpsChart.data.labels.push(responses.timestamp);
}

charts.forEach(function (chart) {
if (spans[defaultSpan].retention < chart.data.labels.length) {
Expand Down

0 comments on commit 2003a4f

Please sign in to comment.