openreplay/assist/server.js
Alexander 8c8e132e79
Assist clean up (#1654)
* feat(backend): moved http metrics into assist handlers file

* fix(assist): use correct value for requests_duration metric

* feat(assist): removed unnecessary imports

* fix(assist): fixed typo in repond method

* fix(assist): added metrics.js to clean script

* feat(assist): try to save http method asap in server logic

* feat(assist): final version

* feat(assist): removed prom-client from peers and sourcemap-reader

* feat(sourcemap-reader): added missing package-lock.json
2023-11-14 11:09:35 +01:00

46 lines
1.6 KiB
JavaScript

const dumps = require('./utils/HeapSnapshot');
const express = require('express');
const socket = require("./servers/websocket");
const {request_logger} = require("./utils/helper");
const health = require("./utils/health");
const assert = require('assert').strict
const register = require('./metrics').register;
const debug = process.env.debug === "1";
const heapdump = process.env.heapdump === "1";
const HOST = process.env.LISTEN_HOST || '0.0.0.0';
const PORT = process.env.LISTEN_PORT || 9001;
assert.ok(process.env.ASSIST_KEY, 'The "ASSIST_KEY" environment variable is required');
const P_KEY = process.env.ASSIST_KEY;
const PREFIX = process.env.PREFIX || process.env.prefix || `/assist`;
const wsapp = express();
wsapp.use(express.json());
wsapp.use(express.urlencoded({extended: true}));
wsapp.use(request_logger("[wsapp]"));
wsapp.get(['/', PREFIX, `${PREFIX}/`, `${PREFIX}/${P_KEY}`, `${PREFIX}/${P_KEY}/`], (req, res) => {
res.statusCode = 200;
res.end("ok!");
}
);
wsapp.use(`${PREFIX}/${P_KEY}`, socket.wsRouter);
heapdump && wsapp.use(`${PREFIX}/${P_KEY}/heapdump`, dumps.router);
health.healthApp.get('/metrics', async (req, res) => {
try {
res.set('Content-Type', register.contentType);
res.end(await register.metrics());
} catch (ex) {
res.status(500).end(ex);
}
});
const wsserver = wsapp.listen(PORT, HOST, () => {
console.log(`WS App listening on http://${HOST}:${PORT}`);
health.healthApp.listen(health.PORT, HOST, health.listen_cb);
});
wsapp.enable('trust proxy');
socket.start(wsserver);
module.exports = {wsserver};