Added Nginx Stats
							parent
							
								
									d97f2ae7b4
								
							
						
					
					
						commit
						03897ea03f
					
				| 
						 | 
					@ -0,0 +1,144 @@
 | 
				
			||||||
 | 
					# Created by https://www.toptal.com/developers/gitignore/api/node
 | 
				
			||||||
 | 
					# Edit at https://www.toptal.com/developers/gitignore?templates=node
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Node ###
 | 
				
			||||||
 | 
					# Logs
 | 
				
			||||||
 | 
					logs
 | 
				
			||||||
 | 
					*.log
 | 
				
			||||||
 | 
					npm-debug.log*
 | 
				
			||||||
 | 
					yarn-debug.log*
 | 
				
			||||||
 | 
					yarn-error.log*
 | 
				
			||||||
 | 
					lerna-debug.log*
 | 
				
			||||||
 | 
					.pnpm-debug.log*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Diagnostic reports (https://nodejs.org/api/report.html)
 | 
				
			||||||
 | 
					report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Runtime data
 | 
				
			||||||
 | 
					pids
 | 
				
			||||||
 | 
					*.pid
 | 
				
			||||||
 | 
					*.seed
 | 
				
			||||||
 | 
					*.pid.lock
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Directory for instrumented libs generated by jscoverage/JSCover
 | 
				
			||||||
 | 
					lib-cov
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Coverage directory used by tools like istanbul
 | 
				
			||||||
 | 
					coverage
 | 
				
			||||||
 | 
					*.lcov
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# nyc test coverage
 | 
				
			||||||
 | 
					.nyc_output
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
 | 
				
			||||||
 | 
					.grunt
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Bower dependency directory (https://bower.io/)
 | 
				
			||||||
 | 
					bower_components
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# node-waf configuration
 | 
				
			||||||
 | 
					.lock-wscript
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Compiled binary addons (https://nodejs.org/api/addons.html)
 | 
				
			||||||
 | 
					build/Release
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Dependency directories
 | 
				
			||||||
 | 
					node_modules/
 | 
				
			||||||
 | 
					jspm_packages/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Snowpack dependency directory (https://snowpack.dev/)
 | 
				
			||||||
 | 
					web_modules/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TypeScript cache
 | 
				
			||||||
 | 
					*.tsbuildinfo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Optional npm cache directory
 | 
				
			||||||
 | 
					.npm
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Optional eslint cache
 | 
				
			||||||
 | 
					.eslintcache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Optional stylelint cache
 | 
				
			||||||
 | 
					.stylelintcache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Microbundle cache
 | 
				
			||||||
 | 
					.rpt2_cache/
 | 
				
			||||||
 | 
					.rts2_cache_cjs/
 | 
				
			||||||
 | 
					.rts2_cache_es/
 | 
				
			||||||
 | 
					.rts2_cache_umd/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Optional REPL history
 | 
				
			||||||
 | 
					.node_repl_history
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Output of 'npm pack'
 | 
				
			||||||
 | 
					*.tgz
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Yarn Integrity file
 | 
				
			||||||
 | 
					.yarn-integrity
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# dotenv environment variable files
 | 
				
			||||||
 | 
					.env
 | 
				
			||||||
 | 
					.env.development.local
 | 
				
			||||||
 | 
					.env.test.local
 | 
				
			||||||
 | 
					.env.production.local
 | 
				
			||||||
 | 
					.env.local
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# parcel-bundler cache (https://parceljs.org/)
 | 
				
			||||||
 | 
					.cache
 | 
				
			||||||
 | 
					.parcel-cache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Next.js build output
 | 
				
			||||||
 | 
					.next
 | 
				
			||||||
 | 
					out
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Nuxt.js build / generate output
 | 
				
			||||||
 | 
					.nuxt
 | 
				
			||||||
 | 
					dist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Gatsby files
 | 
				
			||||||
 | 
					.cache/
 | 
				
			||||||
 | 
					# Comment in the public line in if your project uses Gatsby and not Next.js
 | 
				
			||||||
 | 
					# https://nextjs.org/blog/next-9-1#public-directory-support
 | 
				
			||||||
 | 
					# public
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vuepress build output
 | 
				
			||||||
 | 
					.vuepress/dist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# vuepress v2.x temp and cache directory
 | 
				
			||||||
 | 
					.temp
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Docusaurus cache and generated files
 | 
				
			||||||
 | 
					.docusaurus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Serverless directories
 | 
				
			||||||
 | 
					.serverless/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# FuseBox cache
 | 
				
			||||||
 | 
					.fusebox/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# DynamoDB Local files
 | 
				
			||||||
 | 
					.dynamodb/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# TernJS port file
 | 
				
			||||||
 | 
					.tern-port
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Stores VSCode versions used for testing VSCode extensions
 | 
				
			||||||
 | 
					.vscode-test
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# yarn v2
 | 
				
			||||||
 | 
					.yarn/cache
 | 
				
			||||||
 | 
					.yarn/unplugged
 | 
				
			||||||
 | 
					.yarn/build-state.yml
 | 
				
			||||||
 | 
					.yarn/install-state.gz
 | 
				
			||||||
 | 
					.pnp.*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					### Node Patch ###
 | 
				
			||||||
 | 
					# Serverless Webpack directories
 | 
				
			||||||
 | 
					.webpack/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# Optional stylelint cache
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# SvelteKit build / generate output
 | 
				
			||||||
 | 
					.svelte-kit
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# End of https://www.toptal.com/developers/gitignore/api/node
 | 
				
			||||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| 
						 | 
					@ -1,8 +1,9 @@
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  "dependencies": {
 | 
					  "dependencies": {
 | 
				
			||||||
    "diskusage": "^1.1.3",
 | 
					    "axios": "^1.6.5",
 | 
				
			||||||
 | 
					    "diskusage": "^1.2.0",
 | 
				
			||||||
    "express": "^4.18.2",
 | 
					    "express": "^4.18.2",
 | 
				
			||||||
    "pm2": "^5.2.2",
 | 
					    "pm2": "^5.3.0",
 | 
				
			||||||
    "systeminformation": "^5.17.1"
 | 
					    "systeminformation": "^5.21.22"
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3,13 +3,28 @@ const os = require('os');
 | 
				
			||||||
const app = express();
 | 
					const app = express();
 | 
				
			||||||
const diskusage = require('diskusage');
 | 
					const diskusage = require('diskusage');
 | 
				
			||||||
const si = require('systeminformation');
 | 
					const si = require('systeminformation');
 | 
				
			||||||
 | 
					const axios = require('axios');
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Configuration for the server
 | 
				
			||||||
const hostname = "localhost";
 | 
					const hostname = "localhost";
 | 
				
			||||||
const port = "3001";
 | 
					const port = "3001";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Get the number of active connections to Nginx
 | 
				
			||||||
 | 
					async function getNginxConnections() {
 | 
				
			||||||
 | 
					  try {
 | 
				
			||||||
 | 
					    const response = await axios.get('https://cdn00.lordchannel.com/nginx_stats');
 | 
				
			||||||
 | 
					    const { data } = response;
 | 
				
			||||||
 | 
					    const activeConnectionsLine = data.substring(0, data.indexOf('\n'));
 | 
				
			||||||
 | 
					    return activeConnectionsLine.substring(activeConnectionsLine.indexOf(':') + 1).trim();
 | 
				
			||||||
 | 
					  } catch (error) {
 | 
				
			||||||
 | 
					    console.error(error);
 | 
				
			||||||
 | 
					    return {};
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
async function getNetworkStats() {
 | 
					async function getNetworkStats() {
 | 
				
			||||||
  try {
 | 
					  try {
 | 
				
			||||||
    const data = await si.networkStats("eno1");
 | 
					    return await si.networkStats("eno1");
 | 
				
			||||||
    return data;
 | 
					 | 
				
			||||||
  } catch (error) {
 | 
					  } catch (error) {
 | 
				
			||||||
    console.error(error);
 | 
					    console.error(error);
 | 
				
			||||||
    return {};
 | 
					    return {};
 | 
				
			||||||
| 
						 | 
					@ -37,6 +52,7 @@ app.get('/server-stats/', (req, res) => {
 | 
				
			||||||
        const freeHddSpace = (result.available / 1024 ** 3);
 | 
					        const freeHddSpace = (result.available / 1024 ** 3);
 | 
				
			||||||
	const networkStats = await getNetworkStats();
 | 
						const networkStats = await getNetworkStats();
 | 
				
			||||||
	const cpuUsage = await getCurrentCPULoad();
 | 
						const cpuUsage = await getCurrentCPULoad();
 | 
				
			||||||
 | 
					  const nginxConnections = await getNginxConnections();
 | 
				
			||||||
        res.json({
 | 
					        res.json({
 | 
				
			||||||
            cpuServer,
 | 
					            cpuServer,
 | 
				
			||||||
            cpuUsage,
 | 
					            cpuUsage,
 | 
				
			||||||
| 
						 | 
					@ -44,6 +60,7 @@ app.get('/server-stats/', (req, res) => {
 | 
				
			||||||
            totalRam,
 | 
					            totalRam,
 | 
				
			||||||
            totalHddSpace,
 | 
					            totalHddSpace,
 | 
				
			||||||
            freeHddSpace,
 | 
					            freeHddSpace,
 | 
				
			||||||
 | 
					            nginxConnections,
 | 
				
			||||||
	    networkStats
 | 
						    networkStats
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue