UNPKG

1.84 kBJavaScriptView Raw
1var CLI = require('clui'),
2 clc = require('cli-color'),
3 os = require('os');
4
5var Line = CLI.Line,
6 Gauge = CLI.Gauge;
7 Sparkline = CLI.Sparkline;
8
9var drawTimeout;
10var requestSeries = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
11var errorSeries = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];
12
13function draw() {
14 console.log(clc.reset);
15
16 var blankLine = new Line().fill().output();
17
18 var total = os.totalmem();
19 var free = os.freemem();
20 var used = total-free;
21 var human = Math.ceil(used / 1000000) + ' MB';
22
23 var memoryLine = new Line()
24 .padding(2)
25 .column('Memory In Use', 20, [clc.cyan])
26 .column(Gauge(used, total, 20, total * 0.8, human), 40)
27 .fill()
28 .output();
29
30 var load = os.loadavg()[0];
31 var maxLoad = os.cpus().length * 2;
32 var danger = os.cpus().length;
33
34 var loadLine = new Line()
35 .padding(2)
36 .column('System Load', 20, [clc.cyan])
37 .column(Gauge(load, maxLoad, 20, danger, load.toString()), 40)
38 .fill()
39 .output();
40
41 var uptimeLine = new Line()
42 .padding(2)
43 .column('Uptime', 20, [clc.cyan])
44 .column(os.uptime().toString() + ' seconds', 40)
45 .fill()
46 .output();
47
48 blankLine.output();
49
50 requestSeries.push(Math.ceil((Math.random()*100)));
51 requestSeries.shift();
52
53 var requestLine = new Line()
54 .padding(2)
55 .column('Requests/Sec', 20, [clc.cyan])
56 .column(Sparkline(requestSeries, ' reqs/sec'), 80)
57 .fill()
58 .output();
59
60 errorSeries.push(Math.ceil((Math.random()*10)));
61 errorSeries.shift();
62
63 var errorLine = new Line()
64 .padding(2)
65 .column('Errors/Sec', 20, [clc.cyan])
66 .column(Sparkline(errorSeries, ' errs/sec'), 80)
67 .fill()
68 .output();
69
70 blankLine.output();
71
72 drawTimeout = setTimeout(draw, 1000);
73}
74
75draw();
76
77process.stdout.on('resize', function() {
78 clearTimeout(drawTimeout);
79 draw();
80});
\No newline at end of file