From 9bade9eeeeca0e6e81c77e298d19806b9c88e7be Mon Sep 17 00:00:00 2001 From: glib-lang Date: Tue, 25 Aug 2020 08:46:13 +0300 Subject: [PATCH 1/6] add CPU chart --- html/index.html | 7 ++++++- html/js/script.js | 2 ++ httpd.js | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/html/index.html b/html/index.html index b7cf037..c936931 100644 --- a/html/index.html +++ b/html/index.html @@ -66,12 +66,17 @@
- +

Mem

+

CPU

+
+ +
+

Net In

diff --git a/html/js/script.js b/html/js/script.js index d6c5d56..d2a5b85 100644 --- a/html/js/script.js +++ b/html/js/script.js @@ -78,6 +78,7 @@ var renderContainerStats = function(id) { console.log('Rendering stats for container ' + id); renderLatestStats(id); + renderChart('cpu-chart', id, 'cpu'); renderChart('mem-chart', id, 'mem'); renderChart('net-in-chart', id, 'net_in'); renderChart('net-out-chart', id, 'net_out'); @@ -95,6 +96,7 @@ var renderAllContainerStats = function() { console.log('Rendering all container stats'); + renderChart('cpu-chart', null, 'cpu'); renderChart('mem-chart', null, 'mem'); renderChart('net-in-chart', null, 'net_in'); renderChart('net-out-chart', null, 'net_out'); diff --git a/httpd.js b/httpd.js index ee04a27..def5431 100644 --- a/httpd.js +++ b/httpd.js @@ -9,7 +9,7 @@ var app = express(); var db = new sqlite3.Database(DB_FILE, sqlite3.OPEN_READONLY); var isValidChart = function(s) { - return /^(net_in|net_out|block_in|block_out|mem)$/.test(s); + return /^(net_in|net_out|block_in|block_out|mem|cpu)$/.test(s); }; var isValidZoom = function(s) { From c164cfa01ead0d66caec90cc4d1f558fed8d6052 Mon Sep 17 00:00:00 2001 From: glib-lang Date: Tue, 25 Aug 2020 08:47:00 +0300 Subject: [PATCH 2/6] control stats update interval with env.variable --- stats.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/stats.js b/stats.js index 4d97a4a..738e12e 100644 --- a/stats.js +++ b/stats.js @@ -1,6 +1,6 @@ var DB_FILE = 'db/stats.db'; var DOCKER = '/usr/bin/docker'; -var INTERVAL = 60; +var INTERVAL = process.env.STATS_UPDATE_INTERVAL || 60; var TEST = false; var sqlite3 = require('sqlite3').verbose(); From e580c6952a1ba14adea73f5dff7a3ee18f12c6e5 Mon Sep 17 00:00:00 2001 From: glib-lang Date: Tue, 25 Aug 2020 08:47:15 +0300 Subject: [PATCH 3/6] wider charts --- html/css/style.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/html/css/style.css b/html/css/style.css index 3907558..6235112 100644 --- a/html/css/style.css +++ b/html/css/style.css @@ -37,6 +37,6 @@ footer { @media (min-width: 768px) { .container { - max-width: 730px; + max-width: 100%; } -} \ No newline at end of file +} From efe85abb12e5db805a95a15e7b166703d7588f3e Mon Sep 17 00:00:00 2001 From: glib-lang Date: Tue, 25 Aug 2020 08:47:41 +0300 Subject: [PATCH 4/6] automatic chart refresh every 3s. without need to refresh page --- html/js/script.js | 1 + 1 file changed, 1 insertion(+) diff --git a/html/js/script.js b/html/js/script.js index d2a5b85..58bb3e7 100644 --- a/html/js/script.js +++ b/html/js/script.js @@ -163,4 +163,5 @@ }; $(document).ready(init); + setInterval(reRenderCharts, 3000); }()); From 080a16711d27cce1bddcb004347e486925d1585f Mon Sep 17 00:00:00 2001 From: glib-lang Date: Tue, 25 Aug 2020 08:49:57 +0300 Subject: [PATCH 5/6] usage of STATS_UPDATE_INTERVAL in examples --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 336522f..a9da551 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,7 @@ docker run \ --volume=/var/run/docker.sock:/var/run/docker.sock:ro \ --volume=/home/docker/storage/stats/db:/opt/docker-stats/db \ --name stats \ + -e STATS_UPDATE_INTERVAL=10 \ virtualzone/docker-container-stats ``` @@ -24,6 +25,8 @@ services: container_name: 'stats' ports: - '8080:8080' + environment: + STATS_UPDATE_INTERVAL: 10 volumes: - '/var/lib/docker/:/var/lib/docker:ro' - '/var/run/docker.sock:/var/run/docker.sock:ro' From 5f5371a103baebbd45fe458b6c000da5e3cc3abd Mon Sep 17 00:00:00 2001 From: glib-lang Date: Tue, 25 Aug 2020 09:11:44 +0300 Subject: [PATCH 6/6] fix CPU chart axis name --- httpd.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/httpd.js b/httpd.js index def5431..8af10fe 100644 --- a/httpd.js +++ b/httpd.js @@ -83,7 +83,7 @@ app.get("/rs/container/:id/:chart/:zoom", function(req, res) { } var minDate = getMinDate(zoom); db.all("SELECT ts, "+chart+" FROM stats WHERE id = ? AND ts >= ? ORDER BY ts ASC", req.params.id, minDate, function(err, rows) { - var json = [['Time', 'Bytes']]; + var json = [['Time', chart == 'cpu' ? 'CPU %' : 'Bytes']]; var prev = 0; for (var i=0; i