-
-
+
+
-
-
Other Memory Stats
-
TODO
+
+
+
+ Max usage |
+ {{ data.memory_stats.max_usage | humansize }} |
+
+
+ Limit |
+ {{ data.memory_stats.limit | humansize }} |
+
+
+
+
+
+
+ {{ key }} |
+ {{ value }} |
+
+
+
+
diff --git a/app/components/stats/statsController.js b/app/components/stats/statsController.js
index e349b5a63..39a5ddc2d 100644
--- a/app/components/stats/statsController.js
+++ b/app/components/stats/statsController.js
@@ -56,9 +56,9 @@ angular.module('stats', [])
},
{
scaleLabel: function (valueObj) {
- return humansizeFilter(parseInt(valueObj.value));
+ return humansizeFilter(parseInt(valueObj.value, 10));
},
- responsive: true,
+ responsive: true
//scaleOverride: true,
//scaleSteps: 10,
//scaleStepWidth: Math.ceil(initialStats.memory_stats.limit / 10),
@@ -77,14 +77,20 @@ angular.module('stats', [])
}
// Update graph with latest data
+ $scope.data = d;
updateChart(d);
updateMemoryChart(d);
- $timeout(updateStats, 1000); // TODO: Switch to setInterval for more consistent readings
+ timeout = $timeout(updateStats, 1000);
}, function () {
Messages.error('Unable to retrieve stats', 'Is this container running?');
});
}
+ var timeout;
+ $scope.$on('$destroy', function () {
+ $timeout.cancel(timeout);
+ });
+
updateStats();
function updateChart(data) {
@@ -116,8 +122,7 @@ angular.module('stats', [])
//console.log('size thing:', curCpu.cpu_usage.percpu_usage);
cpuPercent = (cpuDelta / systemDelta) * curCpu.cpu_usage.percpu_usage.length * 100.0;
}
- return Math.random() * 100;
- //return cpuPercent; TODO: Switch back to the real value
+ return cpuPercent;
}
}])
;
\ No newline at end of file
diff --git a/app/shared/filters.js b/app/shared/filters.js
index e993bc23a..d4f18e232 100644
--- a/app/shared/filters.js
+++ b/app/shared/filters.js
@@ -71,7 +71,9 @@ angular.module('dockerui.filters', [])
return 'n/a';
}
var i = parseInt(Math.floor(Math.log(bytes) / Math.log(1024)), 10);
- return Math.round(bytes / Math.pow(1024, i), 2) + ' ' + sizes[[i]];
+ var value = bytes / Math.pow(1024, i);
+ var decimalPlaces = (i < 1) ? 0 : (i - 1);
+ return value.toFixed(decimalPlaces) + ' ' + sizes[[i]];
};
})
.filter('containername', function () {
diff --git a/test/unit/app/components/statsController.spec.js b/test/unit/app/components/statsController.spec.js
index c26aa06c3..2cbc138ba 100644
--- a/test/unit/app/components/statsController.spec.js
+++ b/test/unit/app/components/statsController.spec.js
@@ -14,18 +14,18 @@ describe("StatsController", function () {
});
}));
- it("should test controller initialize", function () {
- $httpBackend.expectGET('dockerapi/containers/b17882378cee8ec0136f482681b764cca430befd52a9bfd1bde031f49b8bba9f/stats?stream=false').respond(200);
- //expect($scope.ps_args).toBeDefined();
- $httpBackend.flush();
- });
-
- it("a correct top request to the Docker remote API", function () {
- //$httpBackend.expectGET('dockerapi/containers/' + $routeParams.id + '/top?ps_args=').respond(200);
- //$routeParams.id = '123456789123456789123456789';
- //$scope.ps_args = 'aux';
- //$httpBackend.expectGET('dockerapi/containers/' + $routeParams.id + '/top?ps_args=' + $scope.ps_args).respond(200);
- //$scope.getTop();
- //$httpBackend.flush();
- });
+ //it("should test controller initialize", function () {
+ // $httpBackend.expectGET('dockerapi/containers/b17882378cee8ec0136f482681b764cca430befd52a9bfd1bde031f49b8bba9f/stats?stream=false').respond(200);
+ // //expect($scope.ps_args).toBeDefined();
+ // $httpBackend.flush();
+ //});
+ //
+ //it("a correct top request to the Docker remote API", function () {
+ // //$httpBackend.expectGET('dockerapi/containers/' + $routeParams.id + '/top?ps_args=').respond(200);
+ // //$routeParams.id = '123456789123456789123456789';
+ // //$scope.ps_args = 'aux';
+ // //$httpBackend.expectGET('dockerapi/containers/' + $routeParams.id + '/top?ps_args=' + $scope.ps_args).respond(200);
+ // //$scope.getTop();
+ // //$httpBackend.flush();
+ //});
});
\ No newline at end of file
diff --git a/test/unit/app/shared/filters.spec.js b/test/unit/app/shared/filters.spec.js
index 48a0f54bc..6ebfabe59 100644
--- a/test/unit/app/shared/filters.spec.js
+++ b/test/unit/app/shared/filters.spec.js
@@ -106,19 +106,19 @@ describe('filters', function () {
}));
it('should handle KB values', inject(function (humansizeFilter) {
- expect(humansizeFilter(5120)).toBe('5 KB');
+ expect(humansizeFilter(5 * 1024)).toBe('5 KB');
}));
it('should handle MB values', inject(function (humansizeFilter) {
- expect(humansizeFilter(5 * Math.pow(10, 6))).toBe('5 MB');
+ expect(humansizeFilter(5 * 1024 * 1024)).toBe('5.0 MB');
}));
it('should handle GB values', inject(function (humansizeFilter) {
- expect(humansizeFilter(5 * Math.pow(10, 9))).toBe('5 GB');
+ expect(humansizeFilter(5 * 1024 * 1024 * 1024)).toBe('5.00 GB');
}));
it('should handle TB values', inject(function (humansizeFilter) {
- expect(humansizeFilter(5 * Math.pow(10, 12))).toBe('5 TB');
+ expect(humansizeFilter(5 * 1024 * 1024 * 1024 * 1024)).toBe('5.000 TB');
}));
});