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": {
 | 
			
		||||
    "diskusage": "^1.1.3",
 | 
			
		||||
    "axios": "^1.6.5",
 | 
			
		||||
    "diskusage": "^1.2.0",
 | 
			
		||||
    "express": "^4.18.2",
 | 
			
		||||
    "pm2": "^5.2.2",
 | 
			
		||||
    "systeminformation": "^5.17.1"
 | 
			
		||||
    "pm2": "^5.3.0",
 | 
			
		||||
    "systeminformation": "^5.21.22"
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,13 +3,28 @@ const os = require('os');
 | 
			
		|||
const app = express();
 | 
			
		||||
const diskusage = require('diskusage');
 | 
			
		||||
const si = require('systeminformation');
 | 
			
		||||
const axios = require('axios');
 | 
			
		||||
 | 
			
		||||
// Configuration for the server
 | 
			
		||||
const hostname = "localhost";
 | 
			
		||||
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() {
 | 
			
		||||
  try {
 | 
			
		||||
    const data = await si.networkStats("eno1");
 | 
			
		||||
    return data;
 | 
			
		||||
    return await si.networkStats("eno1");
 | 
			
		||||
  } catch (error) {
 | 
			
		||||
    console.error(error);
 | 
			
		||||
    return {};
 | 
			
		||||
| 
						 | 
				
			
			@ -37,6 +52,7 @@ app.get('/server-stats/', (req, res) => {
 | 
			
		|||
        const freeHddSpace = (result.available / 1024 ** 3);
 | 
			
		||||
	const networkStats = await getNetworkStats();
 | 
			
		||||
	const cpuUsage = await getCurrentCPULoad();
 | 
			
		||||
  const nginxConnections = await getNginxConnections();
 | 
			
		||||
        res.json({
 | 
			
		||||
            cpuServer,
 | 
			
		||||
            cpuUsage,
 | 
			
		||||
| 
						 | 
				
			
			@ -44,6 +60,7 @@ app.get('/server-stats/', (req, res) => {
 | 
			
		|||
            totalRam,
 | 
			
		||||
            totalHddSpace,
 | 
			
		||||
            freeHddSpace,
 | 
			
		||||
            nginxConnections,
 | 
			
		||||
	    networkStats
 | 
			
		||||
        });
 | 
			
		||||
    });
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue