diff --git a/src/views/graphs.html b/src/views/graphs.html index a34e9f380..0ff1bad8f 100644 --- a/src/views/graphs.html +++ b/src/views/graphs.html @@ -1,5 +1,12 @@
+
+
+
+ {{ errorMessage }} +
+
+

Memory

diff --git a/src/views/graphs.js b/src/views/graphs.js index b722097fc..0f866b0dc 100644 --- a/src/views/graphs.js +++ b/src/views/graphs.js @@ -13,11 +13,9 @@ angular.module('Application').controller('GraphsController', ['$scope', '$locati $scope.activeApp = null; $scope.disks = []; - $scope.installedApps = Client.getInstalledApps(); + $scope.errorMessage = ''; - function bytesToGigaBytes(value) { - return (value/1024/1024/1024).toFixed(2); - } + $scope.installedApps = Client.getInstalledApps(); function bytesToMegaBytes(value) { return (value/1024/1024).toFixed(2); @@ -40,6 +38,10 @@ angular.module('Application').controller('GraphsController', ['$scope', '$locati return getRandomColor(); } + $scope.setError = function (context, error) { + $scope.errorMessage = 'Error loading ' + context + ' stats : ' + error.message + '. Try restarting the graphite service.'; + }; + $scope.setMemoryApp = function (app, color) { $scope.activeApp = app; @@ -51,7 +53,7 @@ angular.module('Application').controller('GraphsController', ['$scope', '$locati else target = 'summarize(collectd.localhost.table-' + app.id + '-memory.gauge-rss, "' + timeBucketSize + 'min", "avg")'; Client.graphs([target], '-' + timePeriod + 'min', {}, function (error, result) { - if (error) return console.log('Unable to get graphs.', error); + if (error) return $scope.setError('memory', error); // translate the data from bytes to MB var datapoints = result[0].datapoints.map(function (d) { return parseInt((d[0] / 1024 / 1024).toFixed(2)); }); @@ -64,13 +66,13 @@ angular.module('Application').controller('GraphsController', ['$scope', '$locati labels: labels, datasets: [{ label: 'Memory', - backgroundColor: color || "#82C4F8", - borderColor: color || "#2196F3", + backgroundColor: color || '#82C4F8', + borderColor: color || '#2196F3', borderWidth: 2, - pointBackgroundColor: color || "rgba(151,187,205,1)", - pointBorderColor: color || "#2196F3", - pointHoverBackgroundColor: color || "#82C4F8", - pointHoverBorderColor: color || "#82C4F8", + pointBackgroundColor: color || 'rgba(151,187,205,1)', + pointBorderColor: color || '#2196F3', + pointHoverBackgroundColor: color || '#82C4F8', + pointHoverBorderColor: color || '#82C4F8', data: datapoints }] }; @@ -114,7 +116,7 @@ angular.module('Application').controller('GraphsController', ['$scope', '$locati // on scaleway, for some reason docker devices are collected as part of collectd // until we figure why just hardcode popular disk devices - https://www.mjmwired.net/kernel/Documentation/devices.txt Client.disks(function (error, result) { - if (error) return console.log(error); + if (error) return $scope.setError('disk', error); result.disks.forEach(function (disk, index) { disk.id = index; @@ -146,7 +148,7 @@ angular.module('Application').controller('GraphsController', ['$scope', '$locati 'absolute(collectd.localhost.df-' + diskName + '.df_complex-reserved)', 'absolute(collectd.localhost.df-' + diskName + '.df_complex-used)' ], '-1min', {}, function (error, data) { - if (error) return console.error(error); + if (error) return $scope.setError('disk', error); disk.size = data[2].datapoints[0][0] + data[1].datapoints[0][0] + data[0].datapoints[0][0]; disk.free = data[0].datapoints[0][0]; @@ -163,7 +165,7 @@ angular.module('Application').controller('GraphsController', ['$scope', '$locati }); Client.graphs(graphiteQueries, '-1day', { noNullPoints: true }, function (error, data) { - if (error) return console.error(error); + if (error) return $scope.setError('disk', error); var usageOther = disk.occupied; @@ -206,7 +208,7 @@ angular.module('Application').controller('GraphsController', ['$scope', '$locati targetsInfo.push({ label: 'Free', color: '#27CE65' }); Client.graphs(targets, '-1min', {}, function (error, result) { - if (error) return console.log(error); + if (error) return $scope.setError('memory', error); $scope.memoryUsageSystem = result.map(function (data, index) { return { @@ -263,7 +265,7 @@ angular.module('Application').controller('GraphsController', ['$scope', '$locati callback(null); }); }, function (error) { - if (error) return console.log(error); + if (error) return $scope.setError('memory', error); $scope.memoryUsageApps = aggregatedResult.map(function (data, index) { return {