Version 1.0.0 - Ajout de metrics

This commit is contained in:
CICD - Pipeline 2023-11-28 20:03:02 +01:00
parent 33bd37aacd
commit c0ce8b9338
4 changed files with 102 additions and 0 deletions

3
config.json Normal file
View File

@ -0,0 +1,3 @@
{
"AUTH_KEY": "0"
}

60
main.js Normal file
View File

@ -0,0 +1,60 @@
const http = require('http');
const url = require('url');
const fs = require('fs');
const os = require('os');
const osutils = require('os-utils');
const {statfs} = require('fs');
const server = http.createServer(async (req, res) => {
const parsedUrl = url.parse(req.url, true);
const query = parsedUrl.query;
if (parsedUrl.pathname === '/metrics' && query.key) {
const config = JSON.parse(fs.readFileSync('config.json'));
if (query.key === config.AUTH_KEY) {
var metrics = await getMetrics()
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(metrics));
} else {
res.statusCode = 401;
res.end('Unauthorized');
}
} else {
res.statusCode = 404;
res.end('Not Found');
}
});
server.listen(4000, () => {
console.log('Server is running on port 4000');
});
function getMetrics() {
return new Promise((resolve, reject) => {
const space = statfs("/", (err, stats) => {
if (err) {
throw err
}
var resp = null
osutils.cpuUsage(function(cpuUsage) {
resp = {
cpu: Math.round(cpuUsage * 1000),
usedram: osutils.totalmem() - osutils.freemem(),
totalram: osutils.totalmem(),
usedisk: stats.blocks - stats.bfree,
totaldisk: stats.blocks
}
resolve(resp)
})
})
})
}

24
package-lock.json generated Normal file
View File

@ -0,0 +1,24 @@
{
"name": "neutral-link",
"version": "1.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "neutral-link",
"version": "1.0.0",
"license": "ISC",
"dependencies": {
"os-utils": "^0.0.14"
}
},
"node_modules/os-utils": {
"version": "0.0.14",
"resolved": "https://registry.npmjs.org/os-utils/-/os-utils-0.0.14.tgz",
"integrity": "sha512-ajB8csaHLBvJOYsHJkp8YdO2FvlBbf/ZxaYQwXXRDyQ84UoE+uTuLXxqd0shekXMX6Qr/pt/DDyLMRAMsgfWzg==",
"engines": {
"node": "*"
}
}
}
}

15
package.json Normal file
View File

@ -0,0 +1,15 @@
{
"name": "neutral-link",
"version": "1.0.0",
"description": "Lien vers Neutral",
"main": "index.js",
"scripts": {
"start": "node main.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"os-utils": "^0.0.14"
}
}