feat(assist): centralized health check
feat(assist): changed build feat(peers): centralized health check feat(peers): changed build feat(sourcemaps-reader): centralized health check feat(sourcemaps-reader): changed build
This commit is contained in:
parent
95369ce8ef
commit
d6bbd76854
13 changed files with 8 additions and 180 deletions
|
|
@ -45,22 +45,7 @@ const respond = function (res, data) {
|
|||
res.setHeader('Content-Type', 'application/json');
|
||||
res.end(JSON.stringify({"data": data}));
|
||||
}
|
||||
const countSessions = async function () {
|
||||
let count = 0;
|
||||
try {
|
||||
const arr = Array.from(io.sockets.adapter.rooms);
|
||||
const filtered = arr.filter(room => !room[1].has(room[0]));
|
||||
for (let i of filtered) {
|
||||
let {projectKey, sessionId} = extractPeerId(i[0]);
|
||||
if (projectKey !== null && sessionId !== null) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
const socketsList = async function (req, res) {
|
||||
debug && console.log("[WS]looking for all available sessions");
|
||||
let filters = extractPayloadFromRequest(req);
|
||||
|
|
@ -375,7 +360,6 @@ module.exports = {
|
|||
|
||||
socketConnexionTimeout(io);
|
||||
},
|
||||
countSessions,
|
||||
handlers: {
|
||||
socketsList,
|
||||
socketsListByProject,
|
||||
|
|
|
|||
|
|
@ -1,5 +1,4 @@
|
|||
const express = require('express');
|
||||
const socket = require("../servers/websocket");
|
||||
const HOST = process.env.LISTEN_HOST || '0.0.0.0';
|
||||
const PORT = process.env.HEALTH_PORT || 8888;
|
||||
|
||||
|
|
@ -17,8 +16,7 @@ const check_health = async function (req, res) {
|
|||
respond(res, {
|
||||
"health": true,
|
||||
"details": {
|
||||
"version": process.env.npm_package_version,
|
||||
"connectedSessions": await socket.countSessions()
|
||||
"version": process.env.npm_package_version
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
1
ee/assist/.gitignore
vendored
1
ee/assist/.gitignore
vendored
|
|
@ -11,6 +11,7 @@ servers/peerjs-server.js
|
|||
servers/sourcemaps-handler.js
|
||||
servers/sourcemaps-server.js
|
||||
/utils/geoIP.js
|
||||
/utils/health.js
|
||||
/utils/HeapSnapshot.js
|
||||
/utils/helper.js
|
||||
/utils/assistHelper.js
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
rm -rf ./utils/geoIP.js
|
||||
rm -rf ./utils/health.js
|
||||
rm -rf ./utils/HeapSnapshot.js
|
||||
rm -rf ./utils/helper.js
|
||||
rm -rf ./utils/assistHelper.js
|
||||
|
|
|
|||
|
|
@ -83,22 +83,6 @@ const respond = function (res, data) {
|
|||
}
|
||||
}
|
||||
|
||||
const countSessions = async function () {
|
||||
let count = 0;
|
||||
try {
|
||||
let rooms = await io.of('/').adapter.allRooms();
|
||||
for (let i of rooms) {
|
||||
let {projectKey, sessionId} = extractPeerId(i);
|
||||
if (projectKey !== undefined && sessionId !== undefined) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
const socketsList = async function (req, res) {
|
||||
debug && console.log("[WS]looking for all available sessions");
|
||||
let filters = await extractPayloadFromRequest(req, res);
|
||||
|
|
@ -433,7 +417,6 @@ module.exports = {
|
|||
process.exit(2);
|
||||
});
|
||||
},
|
||||
countSessions,
|
||||
handlers: {
|
||||
socketsList,
|
||||
socketsListByProject,
|
||||
|
|
|
|||
|
|
@ -66,23 +66,6 @@ const respond = function (res, data) {
|
|||
}
|
||||
}
|
||||
|
||||
const countSessions = async function () {
|
||||
let count = 0;
|
||||
try {
|
||||
const arr = Array.from(io.sockets.adapter.rooms);
|
||||
const filtered = arr.filter(room => !room[1].has(room[0]));
|
||||
for (let i of filtered) {
|
||||
let {projectKey, sessionId} = extractPeerId(i[0]);
|
||||
if (projectKey !== null && sessionId !== null) {
|
||||
count++;
|
||||
}
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
return count;
|
||||
}
|
||||
|
||||
const socketsList = async function (req, res) {
|
||||
debug && console.log("[WS]looking for all available sessions");
|
||||
let filters = await extractPayloadFromRequest(req, res);
|
||||
|
|
@ -396,7 +379,6 @@ module.exports = {
|
|||
|
||||
socketConnexionTimeout(io);
|
||||
},
|
||||
countSessions,
|
||||
handlers: {
|
||||
socketsList,
|
||||
socketsListByProject,
|
||||
|
|
|
|||
|
|
@ -1,61 +0,0 @@
|
|||
const express = require('express');
|
||||
let socket;
|
||||
if (process.env.redis === "true") {
|
||||
socket = require("../servers/websocket-cluster");
|
||||
} else {
|
||||
socket = require("../servers/websocket");
|
||||
}
|
||||
const HOST = process.env.LISTEN_HOST || '0.0.0.0';
|
||||
const PORT = process.env.HEALTH_PORT || 8888;
|
||||
|
||||
|
||||
const {request_logger} = require("./helper");
|
||||
const debug = process.env.debug === "1";
|
||||
const respond = function (res, data) {
|
||||
res.statusCode = 200;
|
||||
res.setHeader('Content-Type', 'application/json');
|
||||
res.end(JSON.stringify({"data": data}));
|
||||
}
|
||||
|
||||
const check_health = async function (req, res) {
|
||||
debug && console.log("[WS]looking for all available sessions");
|
||||
respond(res, {
|
||||
"health": true,
|
||||
"details": {
|
||||
"version": process.env.npm_package_version,
|
||||
"connectedSessions": await socket.countSessions(),
|
||||
"uWebSocket": process.env.uws === "true",
|
||||
"redis": process.env.redis === "true"
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
const healthApp = express();
|
||||
healthApp.use(express.json());
|
||||
healthApp.use(express.urlencoded({extended: true}));
|
||||
healthApp.use(request_logger("[healthApp]"));
|
||||
healthApp.get(['/'], (req, res) => {
|
||||
res.statusCode = 200;
|
||||
res.end("healthApp ok!");
|
||||
}
|
||||
);
|
||||
healthApp.get('/health', check_health);
|
||||
healthApp.get('/shutdown', (req, res) => {
|
||||
console.log("Requested shutdown");
|
||||
res.statusCode = 200;
|
||||
res.end("ok!");
|
||||
process.kill(1, "SIGTERM");
|
||||
}
|
||||
);
|
||||
|
||||
const listen_cb = async function () {
|
||||
console.log(`Health App listening on http://${HOST}:${PORT}`);
|
||||
console.log('Press Ctrl+C to quit.');
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
healthApp,
|
||||
PORT,
|
||||
listen_cb
|
||||
};
|
||||
|
|
@ -23,7 +23,6 @@ function build_api(){
|
|||
cp -R ../peers ../${destination}
|
||||
cd ../${destination}
|
||||
cp -R ../assist/utils .
|
||||
cp ../sourcemap-reader/utils/health.js ./utils/.
|
||||
# Copy enterprise code
|
||||
[[ $1 == "ee" ]] && {
|
||||
cp -rf ../ee/peers/* ./
|
||||
|
|
|
|||
|
|
@ -1,3 +1,2 @@
|
|||
#!/bin/bash
|
||||
rsync -avr --exclude=".*" --ignore-existing ../assist/utils ./
|
||||
cp ../sourcemap-reader/utils/health.js ./utils/.
|
||||
rsync -avr --exclude=".*" --ignore-existing ../assist/utils ./
|
||||
5
sourcemap-reader/.gitignore
vendored
5
sourcemap-reader/.gitignore
vendored
|
|
@ -3,8 +3,5 @@ node_modules
|
|||
npm-debug.log
|
||||
.cache
|
||||
test.html
|
||||
/utils/assistHelper.js
|
||||
/utils/geoIP.js
|
||||
/utils/HeapSnapshot.js
|
||||
/utils/helper.js
|
||||
utils
|
||||
mappings.wasm
|
||||
|
|
|
|||
|
|
@ -30,7 +30,7 @@ function build_api(){
|
|||
}
|
||||
cp -R ../sourcemap-reader ../${destination}
|
||||
cd ../${destination}
|
||||
cp -R ../assist/utils/* ./utils/.
|
||||
cp -R ../assist/utils .
|
||||
tag=""
|
||||
# Copy enterprise code
|
||||
[[ $1 == "ee" ]] && {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,3 @@
|
|||
#!/bin/bash
|
||||
|
||||
rm -rf ./utils/assistHelper.js
|
||||
rm -rf ./utils/geoIP.js
|
||||
rm -rf ./utils/HeapSnapshot.js
|
||||
rm -rf ./utils/helper.js
|
||||
rm -rf ./utils
|
||||
|
|
@ -1,52 +0,0 @@
|
|||
const express = require('express');
|
||||
const HOST = process.env.LISTEN_HOST || '0.0.0.0';
|
||||
const PORT = process.env.HEALTH_PORT || 8888;
|
||||
|
||||
|
||||
const {request_logger} = require("./helper");
|
||||
const debug = process.env.debug === "1";
|
||||
const respond = function (res, data) {
|
||||
res.statusCode = 200;
|
||||
res.setHeader('Content-Type', 'application/json');
|
||||
res.end(JSON.stringify({"data": data}));
|
||||
}
|
||||
|
||||
const check_health = async function (req, res) {
|
||||
debug && console.log("[WS]looking for all available sessions");
|
||||
respond(res, {
|
||||
"health": true,
|
||||
"details": {
|
||||
"version": process.env.npm_package_version
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
const healthApp = express();
|
||||
healthApp.use(express.json());
|
||||
healthApp.use(express.urlencoded({extended: true}));
|
||||
healthApp.use(request_logger("[healthApp]"));
|
||||
healthApp.get(['/'], (req, res) => {
|
||||
res.statusCode = 200;
|
||||
res.end("healthApp ok!");
|
||||
}
|
||||
);
|
||||
healthApp.get('/health', check_health);
|
||||
healthApp.get('/shutdown', (req, res) => {
|
||||
console.log("Requested shutdown");
|
||||
res.statusCode = 200;
|
||||
res.end("ok!");
|
||||
process.kill(1, "SIGTERM");
|
||||
}
|
||||
);
|
||||
|
||||
const listen_cb = async function () {
|
||||
console.log(`Health App listening on http://${HOST}:${PORT}`);
|
||||
console.log('Press Ctrl+C to quit.');
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
healthApp,
|
||||
PORT,
|
||||
listen_cb
|
||||
};
|
||||
Loading…
Add table
Reference in a new issue