blob: c97ec942fecc720f82dc1cfab410410555af2dce [file] [log] [blame]
$(function() {
var options = {
lines : {
show : true
},
points : {
show : false
},
xaxis : {
tickDecimals : 0,
tickSize : 0
}
};
function onDataReceived(data) {
var result = data.result;
var sysLoad = result['system-load-averages'];
var heapUsageInitSizes = result['heap-init-sizes'];
var heapUsageUsedSizes = result['heap-used-sizes'];
var heapUsageCommittedSizes = result['heap-committed-sizes'];
var heapUsageMaxSizes = result['heap-max-sizes'];
var nonheapUsageInitSizes = result['nonheap-init-sizes'];
var nonheapUsageUsedSizes = result['nonheap-used-sizes'];
var nonheapUsageCommittedSizes = result['nonheap-committed-sizes'];
var nonheapUsageMaxSizes = result['nonheap-max-sizes'];
var threadCounts = result['thread-counts'];
var peakThreadCounts = result['peak-thread-counts'];
var gcCollectionCounts = result['gc-collection-counts'];
var gcCollectionTimes = result['gc-collection-times'];
var sysLoadArray = [];
var heapUsageInitSizesArray = [];
var heapUsageUsedSizesArray = [];
var heapUsageCommittedSizesArray = [];
var heapUsageMaxSizesArray = [];
var nonheapUsageInitSizesArray = [];
var nonheapUsageUsedSizesArray = [];
var nonheapUsageCommittedSizesArray = [];
var nonheapUsageMaxSizesArray = [];
var threadCountsArray = [];
var peakThreadCountsArray = [];
var gcCollectionCountsArray = [];
var gcCollectionTimesArray = [];
var gcChartsDiv = document.getElementById('gc-charts');
for ( var i = 0; i < gcCollectionCounts.length; ++i) {
gcCollectionCountsArray.push([]);
gcCollectionTimesArray.push([]);
var gcCollectionCountDiv = document.createElement('div');
gcCollectionCountDiv.id = 'gc-collection-count-' + i;
gcCollectionCountDiv.style = "jqplot-target time-chart";
gcChartsDiv.appendChild(gcCollectionCountDiv);
var gcCollectionTimeDiv = document.createElement('div');
gcCollectionTimeDiv.id = 'gc-collection-time-' + i;
gcChartsDiv.appendChild(gcCollectionTimeDiv);
}
var rrdPtr = result['rrd-ptr'];
for ( var i = 0; i < sysLoad.length; ++i) {
sysLoadArray.push([ i, sysLoad[rrdPtr] ]);
heapUsageInitSizesArray.push([ i, heapUsageInitSizes[rrdPtr] / (1024 * 1024) ]);
heapUsageUsedSizesArray.push([ i, heapUsageUsedSizes[rrdPtr] / (1024 * 1024) ]);
heapUsageCommittedSizesArray.push([ i, heapUsageCommittedSizes[rrdPtr] / (1024 * 1024) ]);
heapUsageMaxSizesArray.push([ i, heapUsageMaxSizes[rrdPtr] / (1024 * 1024) ]);
nonheapUsageInitSizesArray.push([ i, nonheapUsageInitSizes[rrdPtr] / (1024 * 1024) ]);
nonheapUsageUsedSizesArray.push([ i, nonheapUsageUsedSizes[rrdPtr] / (1024 * 1024) ]);
nonheapUsageCommittedSizesArray.push([ i, nonheapUsageCommittedSizes[rrdPtr] / (1024 * 1024) ]);
nonheapUsageMaxSizesArray.push([ i, nonheapUsageMaxSizes[rrdPtr] / (1024 * 1024) ]);
threadCountsArray.push([ i, threadCounts[rrdPtr] ]);
peakThreadCountsArray.push([ i, peakThreadCounts[rrdPtr] ]);
for ( var j = 0; j < gcCollectionCounts.length; ++j) {
gcCollectionCountsArray[j].push([ i, gcCollectionCounts[j][rrdPtr] ]);
}
for ( var j = 0; j < gcCollectionTimes.length; ++j) {
gcCollectionTimesArray[j].push([ i, gcCollectionTimes[j][rrdPtr] ]);
}
rrdPtr = (rrdPtr + 1) % sysLoad.length;
}
$.plot($('#system-load-chart'), [ {
label : 'System Load',
data : sysLoadArray
} ], options);
var gcNames = result['gc-names'];
for ( var i = 0; i < gcCollectionCounts.length; ++i) {
$('#gc-collection-count-' + i).addClass("time-chart");
$.plot($('#gc-collection-count-' + i), [ {
label : gcNames[i] + ' Collection Count',
data : gcCollectionCountsArray[i]
} ], options);
$('#gc-collection-time-' + i).addClass("time-chart");
$.plot($('#gc-collection-time-' + i), [ {
label : gcNames[i] + ' Collection Time (ms)',
data : gcCollectionTimesArray[i]
} ], options);
}
$.plot($('#heap-usage-chart'), [ {
label : 'Heap Usage Initial Size (MB)',
data : heapUsageInitSizesArray
}, {
label : 'Heap Usage Used Size (MB)',
data : heapUsageUsedSizesArray
}, {
label : 'Heap Usage Committed Size (MB)',
data : heapUsageCommittedSizesArray
}, {
label : 'Heap Usage Max Size (MB)',
data : heapUsageMaxSizesArray
} ], options);
$.plot($('#nonheap-usage-chart'), [ {
label : 'Non-Heap Usage Initial Size (MB)',
data : nonheapUsageInitSizesArray
}, {
label : 'Non-Heap Usage Used Size (MB)',
data : nonheapUsageUsedSizesArray
}, {
label : 'Non-Heap Usage Committed Size (MB)',
data : nonheapUsageCommittedSizesArray
}, {
label : 'Non-Heap Usage Max Size (MB)',
data : nonheapUsageMaxSizesArray
} ], options);
$.plot($('#thread-chart'), [ {
label : 'Thread Count',
data : threadCountsArray
}, {
label : 'Peak Thread Count',
data : peakThreadCountsArray
} ], options);
}
function fetchData() {
$.ajax({
url : '/rest/nodes/' + $.getURLParam('node-id'),
method : 'GET',
dataType : 'json',
success : onDataReceived
});
setTimeout(fetchData, 10000);
}
fetchData();
});