CPU Usage
This commit is contained in:
		
							parent
							
								
									97900e0fac
								
							
						
					
					
						commit
						ed0c76f73c
					
				
					 7 changed files with 59 additions and 2 deletions
				
			
		
							
								
								
									
										1
									
								
								data/raw/test/cpuusage.raw
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								data/raw/test/cpuusage.raw
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1 @@
 | 
				
			||||||
 | 
					1.2%
 | 
				
			||||||
							
								
								
									
										7
									
								
								index.js
									
										
									
									
									
								
							
							
						
						
									
										7
									
								
								index.js
									
										
									
									
									
								
							| 
						 | 
					@ -36,3 +36,10 @@ app.route(apiPrefix + '/diskspace').get((req, res) => {
 | 
				
			||||||
  });
 | 
					  });
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					app.route(apiPrefix + '/cpuusage').get((req, res) => {
 | 
				
			||||||
 | 
					  fs.readFile(path.join(__dirname, 'data/json', 'cpuusage.json'), 'utf8', (err, json) => {
 | 
				
			||||||
 | 
					    if (err) { throw new Error(err); }
 | 
				
			||||||
 | 
					    res.json(JSON.parse(json));
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,9 @@
 | 
				
			||||||
let dataFromDate = require('./mkDataFromDate.js');
 | 
					let dataFromDate = require('./mkDataFromDate.js');
 | 
				
			||||||
let dataFromDiskspace = require('./mkDataFromDiskspace.js');
 | 
					let dataFromDiskspace = require('./mkDataFromDiskspace.js');
 | 
				
			||||||
 | 
					let dataFromCPUUsage = require('./mkDataFromCPUUsage.js');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let isTestMode = process.argv[2] === '--test';
 | 
					let isTestMode = process.argv[2] === '--test';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dataFromDate(isTestMode);
 | 
					dataFromDate(isTestMode);
 | 
				
			||||||
dataFromDiskspace(isTestMode);
 | 
					dataFromDiskspace(isTestMode);
 | 
				
			||||||
 | 
					dataFromCPUUsage(isTestMode);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										20
									
								
								mkDataFromCPUUsage.js
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								mkDataFromCPUUsage.js
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,20 @@
 | 
				
			||||||
 | 
					const fs = require('fs');
 | 
				
			||||||
 | 
					const path = require('path');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					module.exports = async function(useTestData = false) {
 | 
				
			||||||
 | 
					  fs.readFile(path.join(__dirname, 'data/raw', useTestData ? 'test' : 'real', 'cpuusage.raw'), 'utf8', (err, usage) => {
 | 
				
			||||||
 | 
					    if (err) {
 | 
				
			||||||
 | 
					      console.error(err);
 | 
				
			||||||
 | 
					      process.exit(1);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    let jsonString = JSON.stringify({
 | 
				
			||||||
 | 
					      str: usage,
 | 
				
			||||||
 | 
					      num: parseFloat(usage.slice(0, usage.length -1)),
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fs.writeFile(path.join(__dirname, 'data/json', 'cpuusage.json'), jsonString, err => {
 | 
				
			||||||
 | 
					      if (err) throw err;
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					  });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										4
									
								
								mkRaw.sh
									
										
									
									
									
								
							
							
						
						
									
										4
									
								
								mkRaw.sh
									
										
									
									
									
								
							| 
						 | 
					@ -8,3 +8,7 @@ echo "date.raw updated"
 | 
				
			||||||
touch data/raw/real/diskspace.raw
 | 
					touch data/raw/real/diskspace.raw
 | 
				
			||||||
df | grep /dev/md0 > data/raw/real/diskspace.raw
 | 
					df | grep /dev/md0 > data/raw/real/diskspace.raw
 | 
				
			||||||
echo "diskspace.raw updated"
 | 
					echo "diskspace.raw updated"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					touch data/raw/real/usage.raw
 | 
				
			||||||
 | 
					top -b -n2 -p 1 | fgrep "Cpu(s)" | tail -1 | awk -F'id,' -v prefix="$prefix" '{ split($1, vs, ","); v=vs[length(vs)]; sub("%", "", v); printf "%s%.1f%%\n", prefix, 100 - v }' > data/raw/real/cpuusage.raw
 | 
				
			||||||
 | 
					echo "usage.raw updated"
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,14 +4,19 @@ new Vue({
 | 
				
			||||||
    fetchingLastBuildDate: true,
 | 
					    fetchingLastBuildDate: true,
 | 
				
			||||||
    lastBuildDate: '',
 | 
					    lastBuildDate: '',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    fetchingDiskSpace: '',
 | 
					    fetchingDiskSpace: true,
 | 
				
			||||||
    diskSize: '',
 | 
					    diskSize: '',
 | 
				
			||||||
    diskUsed: '',
 | 
					    diskUsed: '',
 | 
				
			||||||
    diskCapacity: '',
 | 
					    diskCapacity: '',
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    fetchingCPUUsage: true,
 | 
				
			||||||
 | 
					    cpuUsageNum: 0,
 | 
				
			||||||
 | 
					    cpuUsageStr: '',
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  created() {
 | 
					  created() {
 | 
				
			||||||
    this.fetchLastBuildDate();
 | 
					    this.fetchLastBuildDate();
 | 
				
			||||||
    this.fetchDiskSpace();
 | 
					    this.fetchDiskSpace();
 | 
				
			||||||
 | 
					    this.fetchCPUUsage();
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
  methods: {
 | 
					  methods: {
 | 
				
			||||||
    async fetchLastBuildDate() {
 | 
					    async fetchLastBuildDate() {
 | 
				
			||||||
| 
						 | 
					@ -32,5 +37,14 @@ new Vue({
 | 
				
			||||||
        this.fetchingDiskSpace = false;
 | 
					        this.fetchingDiskSpace = false;
 | 
				
			||||||
      } catch (err) { throw new Error(err); }
 | 
					      } catch (err) { throw new Error(err); }
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 | 
					    async fetchCPUUsage() {
 | 
				
			||||||
 | 
					      this.fetchingCPUUsage = true;
 | 
				
			||||||
 | 
					      try {
 | 
				
			||||||
 | 
					        let { data } = await axios.get('/api/cpuusage');
 | 
				
			||||||
 | 
					        this.cpuUsageNum = data.num;
 | 
				
			||||||
 | 
					        this.cpuUsageStr = data.str;
 | 
				
			||||||
 | 
					        this.fetchingCPUUsage = false;
 | 
				
			||||||
 | 
					      } catch (err) { throw new Error(err); }
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,12 +19,21 @@
 | 
				
			||||||
            <div class="autogrid">
 | 
					            <div class="autogrid">
 | 
				
			||||||
              <div class="col-1-3">
 | 
					              <div class="col-1-3">
 | 
				
			||||||
                <div class="load" v-if="fetchingDiskSpace"></div>
 | 
					                <div class="load" v-if="fetchingDiskSpace"></div>
 | 
				
			||||||
                <h4 v-else>Used: {{diskCapacity}}</h4>
 | 
					                <h4 v-else>Disk Used: {{diskCapacity}}</h4>
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
              <div class="col-2-3">
 | 
					              <div class="col-2-3">
 | 
				
			||||||
                <meter min="0" v-bind:max="diskSize" v-bind:value="diskUsed"></meter>
 | 
					                <meter min="0" v-bind:max="diskSize" v-bind:value="diskUsed"></meter>
 | 
				
			||||||
              </div>
 | 
					              </div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
 | 
					            <div class="autogrid">
 | 
				
			||||||
 | 
					              <div class="col-1-3">
 | 
				
			||||||
 | 
					                <div class="load" v-if="fetchingCPUUsage"></div>
 | 
				
			||||||
 | 
					                <h4 v-else>CPU Used: {{cpuUsageStr}}</h4>
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					              <div class="col-2-3">
 | 
				
			||||||
 | 
					                <meter min="0" max="100" v-bind:value="cpuUsageNum"></meter>
 | 
				
			||||||
 | 
					              </div>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
          </div>
 | 
					          </div>
 | 
				
			||||||
        </section>
 | 
					        </section>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue