Push data only from current span to chart
Showing
1 changed file
with
16 additions
and
4 deletions
... | @@ -133,6 +133,7 @@ | ... | @@ -133,6 +133,7 @@ |
133 | 133 | ||
134 | var socket = io('http://localhost:41338'); | 134 | var socket = io('http://localhost:41338'); |
135 | var defaultSpan = 0; | 135 | var defaultSpan = 0; |
136 | var spans = []; | ||
136 | 137 | ||
137 | var defaultDataset = { | 138 | var defaultDataset = { |
138 | label: '', | 139 | label: '', |
... | @@ -162,7 +163,8 @@ | ... | @@ -162,7 +163,8 @@ |
162 | enabled: false | 163 | enabled: false |
163 | }, | 164 | }, |
164 | responsive: true, | 165 | responsive: true, |
165 | maintainAspectRatio: false | 166 | maintainAspectRatio: false, |
167 | animation: false | ||
166 | }; | 168 | }; |
167 | 169 | ||
168 | var createChart = function (ctx, dataset) { | 170 | var createChart = function (ctx, dataset) { |
... | @@ -208,11 +210,11 @@ | ... | @@ -208,11 +210,11 @@ |
208 | 210 | ||
209 | var onSpanChange = function (e) { | 211 | var onSpanChange = function (e) { |
210 | e.target.classList.add('active'); | 212 | e.target.classList.add('active'); |
211 | defaultSpan = Integer.parseInt(e.target.id); | 213 | defaultSpan = parseInt(e.target.id); |
212 | 214 | ||
213 | var otherSpans = document.getElementsByTagName('span'); | 215 | var otherSpans = document.getElementsByTagName('span'); |
214 | for (var i = 0; i < otherSpans.length; i++) { | 216 | for (var i = 0; i < otherSpans.length; i++) { |
215 | if (otherSpans[i] !== e.target) otherSpans[i].classList.remove('remove'); | 217 | if (otherSpans[i] !== e.target) otherSpans[i].classList.remove('active'); |
216 | } | 218 | } |
217 | }; | 219 | }; |
218 | 220 | ||
... | @@ -261,6 +263,11 @@ | ... | @@ -261,6 +263,11 @@ |
261 | 263 | ||
262 | var spanControls = document.getElementById('span-controls'); | 264 | var spanControls = document.getElementById('span-controls'); |
263 | data.forEach(function (span, index) { | 265 | data.forEach(function (span, index) { |
266 | spans.push({ | ||
267 | retention: span.retention, | ||
268 | interval: span.interval | ||
269 | }); | ||
270 | |||
264 | var spanNode = document.createElement('span'); | 271 | var spanNode = document.createElement('span'); |
265 | var textNode = document.createTextNode((span.retention * span.interval) / 60 + "M"); | 272 | var textNode = document.createTextNode((span.retention * span.interval) / 60 + "M"); |
266 | spanNode.appendChild(textNode); | 273 | spanNode.appendChild(textNode); |
... | @@ -271,6 +278,7 @@ | ... | @@ -271,6 +278,7 @@ |
271 | }); | 278 | }); |
272 | 279 | ||
273 | socket.on('stats', function (data) { | 280 | socket.on('stats', function (data) { |
281 | if (data.retention === spans[defaultSpan].retention && data.interval === spans[defaultSpan].interval) { | ||
274 | cpuStat.textContent = data.os.cpu.toFixed(1) + '%'; | 282 | cpuStat.textContent = data.os.cpu.toFixed(1) + '%'; |
275 | cpuChart.data.datasets[0].data.push(data.os.cpu); | 283 | cpuChart.data.datasets[0].data.push(data.os.cpu); |
276 | cpuChart.data.labels.push(data.os.timestamp); | 284 | cpuChart.data.labels.push(data.os.timestamp); |
... | @@ -292,11 +300,15 @@ | ... | @@ -292,11 +300,15 @@ |
292 | rpsChart.data.datasets[0].data.push(data.responses.count / deltaTime * 1000); | 300 | rpsChart.data.datasets[0].data.push(data.responses.count / deltaTime * 1000); |
293 | rpsChart.data.labels.push(data.responses.timestamp); | 301 | rpsChart.data.labels.push(data.responses.timestamp); |
294 | 302 | ||
295 | charts.forEach(function(chart) { | 303 | charts.forEach(function (chart) { |
304 | if (spans[defaultSpan].retention < chart.data.labels.length) { | ||
296 | chart.data.datasets[0].data.shift(); | 305 | chart.data.datasets[0].data.shift(); |
297 | chart.data.labels.shift(); | 306 | chart.data.labels.shift(); |
307 | } | ||
308 | |||
298 | chart.update(); | 309 | chart.update(); |
299 | }); | 310 | }); |
311 | } | ||
300 | }); | 312 | }); |
301 | </script> | 313 | </script> |
302 | </body> | 314 | </body> | ... | ... |
-
Please register or sign in to post a comment