diff --git a/assist/server.js b/assist/server.js index 5f3cc068e..8046c9b17 100644 --- a/assist/server.js +++ b/assist/server.js @@ -3,7 +3,8 @@ 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 assert = require('assert').strict +const register = require('./metrics').register; const debug = process.env.debug === "1"; const heapdump = process.env.heapdump === "1"; @@ -26,6 +27,15 @@ wsapp.get(['/', PREFIX, `${PREFIX}/`, `${PREFIX}/${P_KEY}`, `${PREFIX}/${P_KEY}/ 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); diff --git a/assist/servers/websocket.js b/assist/servers/websocket.js index d11907a01..350e79953 100644 --- a/assist/servers/websocket.js +++ b/assist/servers/websocket.js @@ -34,6 +34,7 @@ const wsRouter = express.Router(); const debug_log = process.env.debug === "1"; const socketsLive = async function (req, res) { + res.handlerName = 'socketsLive'; debug_log && console.log("[WS]looking for all available LIVE sessions"); let filters = await extractPayloadFromRequest(req, res); let withFilters = hasFilters(filters); @@ -61,7 +62,7 @@ const socketsLive = async function (req, res) { liveSessionsPerProject.forEach((sessions, projectId) => { liveSessions[projectId] = Array.from(sessions); }); - respond(res, sortPaginate(liveSessions, filters)); + respond(req, res, sortPaginate(liveSessions, filters)); } wsRouter.get(`/sockets-list`, socketsList); diff --git a/assist/utils/health.js b/assist/utils/health.js index cbc7cab57..1f46b36ad 100644 --- a/assist/utils/health.js +++ b/assist/utils/health.js @@ -1,7 +1,6 @@ const express = require('express'); const HOST = process.env.LISTEN_HOST || '0.0.0.0'; const PORT = process.env.HEALTH_PORT || 8888; -const register = require('./metrics').register; const {request_logger} = require("./helper"); const debug = process.env.debug === "1"; @@ -39,15 +38,6 @@ healthApp.get('/shutdown', (req, res) => { } ); -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 listen_cb = async function () { console.log(`Health App listening on http://${HOST}:${PORT}`); console.log('Press Ctrl+C to quit.'); diff --git a/assist/utils/helper.js b/assist/utils/helper.js index e8f87560f..7a92e3909 100644 --- a/assist/utils/helper.js +++ b/assist/utils/helper.js @@ -1,8 +1,3 @@ -const { - RecordRequestDuration, - IncreaseTotalRequests -} = require('../utils/metrics'); - let PROJECT_KEY_LENGTH = parseInt(process.env.PROJECT_KEY_LENGTH) || 20; let debug = process.env.debug === "1" || false; @@ -41,14 +36,8 @@ const extractPeerId = (peerId) => { const request_logger = (identity) => { return (req, res, next) => { debug && console.log(identity, new Date().toTimeString(), 'REQUEST', req.method, req.originalUrl); - const startTs = performance.now(); // millis + req.startTs = performance.now(); // track request's start timestamp res.on('finish', function () { - const duration = performance.now() - startTs; - let route = req.originalUrl.split('/')[3]; - if (route !== undefined) { - IncreaseTotalRequests(); - RecordRequestDuration(req.method, route, this.statusCode, duration); - } if (this.statusCode !== 200 || debug) { console.log(new Date().toTimeString(), 'RESPONSE', req.method, req.originalUrl, this.statusCode); } diff --git a/assist/utils/httpHandlers.js b/assist/utils/httpHandlers.js index b3dd51d80..d1a21e995 100644 --- a/assist/utils/httpHandlers.js +++ b/assist/utils/httpHandlers.js @@ -18,10 +18,14 @@ const { const { getServer } = require('../utils/wsServer'); +const { + RecordRequestDuration, + IncreaseTotalRequests +} = require('../utils/metrics'); const debug_log = process.env.debug === "1"; -const respond = function (res, data) { +const respond = function (req, res, data) { let result = {data} if (process.env.uws !== "true") { res.statusCode = 200; @@ -30,9 +34,13 @@ const respond = function (res, data) { } else { res.writeStatus('200 OK').writeHeader('Content-Type', 'application/json').end(JSON.stringify(result)); } + const duration = performance.now() - req.startTs; + IncreaseTotalRequests(); + RecordRequestDuration(req.method.toLowerCase(), res.handlerName, 200, duration/1000.0); } const socketsList = async function (req, res) { + res.handlerName = 'socketsList'; let io = getServer(); debug_log && console.log("[WS]looking for all available sessions"); let filters = await extractPayloadFromRequest(req, res); @@ -60,10 +68,11 @@ const socketsList = async function (req, res) { liveSessionsPerProject.forEach((sessions, projectId) => { liveSessions[projectId] = Array.from(sessions); }); - respond(res, liveSessions); + respond(req, res, liveSessions); } const socketsListByProject = async function (req, res) { + res.handlerName = 'socketsListByProject'; let io = getServer(); debug_log && console.log("[WS]looking for available sessions"); let _projectKey = extractProjectKeyFromRequest(req); @@ -89,12 +98,13 @@ const socketsListByProject = async function (req, res) { } } let sessions = Array.from(liveSessions); - respond(res, _sessionId === undefined ? sortPaginate(sessions, filters) + respond(req, res, _sessionId === undefined ? sortPaginate(sessions, filters) : sessions.length > 0 ? sessions[0] : null); } const socketsLiveByProject = async function (req, res) { + res.handlerName = 'socketsLiveByProject'; let io = getServer(); debug_log && console.log("[WS]looking for available LIVE sessions"); let _projectKey = extractProjectKeyFromRequest(req); @@ -129,16 +139,17 @@ const socketsLiveByProject = async function (req, res) { } } let sessions = Array.from(liveSessions); - respond(res, _sessionId === undefined ? sortPaginate(sessions, filters) : sessions.length > 0 ? sessions[0] : null); + respond(req, res, _sessionId === undefined ? sortPaginate(sessions, filters) : sessions.length > 0 ? sessions[0] : null); } const socketsLiveBySession = async function (req, res) { + res.handlerName = 'socketsLiveBySession'; let io = getServer(); debug_log && console.log("[WS]looking for LIVE session"); let _projectKey = extractProjectKeyFromRequest(req); let _sessionId = extractSessionIdFromRequest(req); if (_sessionId === undefined) { - return respond(res, null); + return respond(req, res, null); } let filters = await extractPayloadFromRequest(req, res); let withFilters = hasFilters(filters); @@ -166,10 +177,11 @@ const socketsLiveBySession = async function (req, res) { } let sessions = Array.from(liveSessions); - respond(res, sessions.length > 0 ? sessions[0] : null); + respond(req, res, sessions.length > 0 ? sessions[0] : null); } const autocomplete = async function (req, res) { + res.handlerName = 'autocomplete'; let io = getServer(); debug_log && console.log("[WS]autocomplete"); let _projectKey = extractProjectKeyFromRequest(req); @@ -189,7 +201,7 @@ const autocomplete = async function (req, res) { } } } - respond(res, uniqueAutocomplete(results)); + respond(req, res, uniqueAutocomplete(results)); } module.exports = { diff --git a/ee/assist/clean-dev.sh b/ee/assist/clean-dev.sh index 621391595..187908506 100755 --- a/ee/assist/clean-dev.sh +++ b/ee/assist/clean-dev.sh @@ -5,6 +5,7 @@ rm -rf ./utils/helper.js rm -rf ./utils/assistHelper.js rm -rf ./utils/httpHandlers.js rm -rf ./utils/socketHandlers.js +rm -rf ./utils/metrics.js rm -rf servers/peerjs-server.js rm -rf servers/sourcemaps-handler.js diff --git a/ee/assist/server.js b/ee/assist/server.js index 6193313ac..095b7e1ea 100644 --- a/ee/assist/server.js +++ b/ee/assist/server.js @@ -59,14 +59,12 @@ if (process.env.uws !== "true") { /* Either onAborted or simply finished request */ - const onAbortedOrFinishedResponse = function (res, readStream) { + const onAbortedOrFinishedResponse = function (res) { if (res.id === -1) { debug && console.log("ERROR! onAbortedOrFinishedResponse called twice for the same res!"); } else { debug && console.log('Stream was closed'); - console.timeEnd(res.id); - readStream.destroy(); } /* Mark this response already accounted for */ @@ -76,8 +74,10 @@ if (process.env.uws !== "true") { const uWrapper = function (fn) { return (res, req) => { res.id = 1; + req.startTs = performance.now(); // track request's start timestamp + req.method = req.getMethod(); res.onAborted(() => { - onAbortedOrFinishedResponse(res, readStream); + onAbortedOrFinishedResponse(res); }); return fn(req, res); } diff --git a/ee/assist/servers/websocket-cluster.js b/ee/assist/servers/websocket-cluster.js index 368c2c28e..6cb2d9613 100644 --- a/ee/assist/servers/websocket-cluster.js +++ b/ee/assist/servers/websocket-cluster.js @@ -40,6 +40,7 @@ let io; const debug_log = process.env.debug === "1"; const socketsLive = async function (req, res) { + res.handlerName = 'socketsLive'; debug_log && console.log("[WS]looking for all available LIVE sessions"); let filters = await extractPayloadFromRequest(req, res); let withFilters = hasFilters(filters); @@ -75,7 +76,7 @@ const socketsLive = async function (req, res) { liveSessionsPerProject.forEach((sessions, projectId) => { liveSessions[projectId] = Array.from(sessions); }); - respond(res, sortPaginate(liveSessions, filters)); + respond(req, res, sortPaginate(liveSessions, filters)); } wsRouter.get(`/sockets-list`, socketsList); diff --git a/ee/assist/servers/websocket.js b/ee/assist/servers/websocket.js index 76cddfcf0..855894272 100644 --- a/ee/assist/servers/websocket.js +++ b/ee/assist/servers/websocket.js @@ -35,6 +35,7 @@ let io; const debug_log = process.env.debug === "1"; const socketsLive = async function (req, res) { + res.handlerName = 'socketsLive'; debug_log && console.log("[WS]looking for all available LIVE sessions"); let filters = await extractPayloadFromRequest(req, res); let withFilters = hasFilters(filters); @@ -62,7 +63,7 @@ const socketsLive = async function (req, res) { liveSessionsPerProject.forEach((sessions, projectId) => { liveSessions[projectId] = Array.from(sessions); }); - respond(res, sortPaginate(liveSessions, filters)); + respond(req, res, sortPaginate(liveSessions, filters)); } wsRouter.get(`/sockets-list`, socketsList); diff --git a/peers/package-lock.json b/peers/package-lock.json index 89abf82d3..efa894060 100644 --- a/peers/package-lock.json +++ b/peers/package-lock.json @@ -10,39 +10,30 @@ "license": "Elastic License 2.0 (ELv2)", "dependencies": { "express": "^4.18.2", - "peer": "^v1.0.1", - "prom-client": "^15.0.0" - } - }, - "node_modules/@opentelemetry/api": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz", - "integrity": "sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==", - "engines": { - "node": ">=8.0.0" + "peer": "^v1.0.1" } }, "node_modules/@types/body-parser": { - "version": "1.19.2", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", - "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "version": "1.19.5", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz", + "integrity": "sha512-fB3Zu92ucau0iQ0JMCFQE7b/dv8Ot07NI3KaZIkIUNXq82k4eBAqUaneXfleGY9JWskeS9y+u0nXMyspcuQrCg==", "dependencies": { "@types/connect": "*", "@types/node": "*" } }, "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "version": "3.4.38", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.38.tgz", + "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dependencies": { "@types/node": "*" } }, "node_modules/@types/express": { - "version": "4.17.17", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.17.tgz", - "integrity": "sha512-Q4FmmuLGBG58btUnfS1c1r/NQdlp3DMfGDGig8WhfpA2YRUtEkxAjkZb0yvplJGYdF1fsQ81iMDcH24sSCNC/Q==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.21.tgz", + "integrity": "sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==", "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -51,9 +42,9 @@ } }, "node_modules/@types/express-serve-static-core": { - "version": "4.17.35", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.35.tgz", - "integrity": "sha512-wALWQwrgiB2AWTT91CB62b6Yt0sNHpznUXeZEcnPU3DRdlDIz74x8Qg1UUYKSVFi+va5vKOLYRBI1bRKiLLKIg==", + "version": "4.17.41", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz", + "integrity": "sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA==", "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -61,48 +52,57 @@ "@types/send": "*" } }, + "node_modules/@types/http-errors": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.4.tgz", + "integrity": "sha512-D0CFMMtydbJAegzOyHjtiKPLlvnm3iTZyZRSZoLq2mRhDdmLfIWOCYPfQJ4cu2erKghU++QvjcUjp/5h7hESpA==" + }, "node_modules/@types/mime": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", - "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", + "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==" }, "node_modules/@types/node": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.2.4.tgz", - "integrity": "sha512-ni5f8Xlf4PwnT/Z3f0HURc3ZSw8UyrqMqmM3L5ysa7VjHu8c3FOmIo1nKCcLrV/OAmtf3N4kFna/aJqxsfEtnA==" + "version": "20.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.9.0.tgz", + "integrity": "sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw==", + "dependencies": { + "undici-types": "~5.26.4" + } }, "node_modules/@types/qs": { - "version": "6.9.7", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", - "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==" + "version": "6.9.10", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.10.tgz", + "integrity": "sha512-3Gnx08Ns1sEoCrWssEgTSJs/rsT2vhGP+Ja9cnnk9k4ALxinORlQneLXFeFKOTJMOeZUFD1s7w+w2AphTpvzZw==" }, "node_modules/@types/range-parser": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", - "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==" + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", + "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==" }, "node_modules/@types/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.1.tgz", - "integrity": "sha512-Cwo8LE/0rnvX7kIIa3QHCkcuF21c05Ayb0ZfxPiv0W8VRiZiNW/WuRupHKpqqGVGf7SUA44QSOUKaEd9lIrd/Q==", + "version": "0.17.4", + "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", + "integrity": "sha512-x2EM6TJOybec7c52BX0ZspPodMsQUd5L6PRwOunVyVUhXiBSKf3AezDL8Dgvgt5o0UfKNfuA0eMLr2wLT4AiBA==", "dependencies": { "@types/mime": "^1", "@types/node": "*" } }, "node_modules/@types/serve-static": { - "version": "1.15.1", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.1.tgz", - "integrity": "sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==", + "version": "1.15.5", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.5.tgz", + "integrity": "sha512-PDRk21MnK70hja/YF8AHfC7yIsiQHn1rcXx7ijCFBX/k+XQJhQT/gw3xekXKJvx+5SXaMMS8oqQy09Mzvz2TuQ==", "dependencies": { + "@types/http-errors": "*", "@types/mime": "*", "@types/node": "*" } }, "node_modules/@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "version": "8.5.9", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.9.tgz", + "integrity": "sha512-jbdrY0a8lxfdTp/+r7Z4CkycbOFN8WX+IOchLJr3juT/xzbJ8URyTVSJ/hvNdadTgM1mnedb47n+Y31GsFnQlg==", "dependencies": { "@types/node": "*" } @@ -146,11 +146,6 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==" }, - "node_modules/bintrees": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", - "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" - }, "node_modules/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -183,12 +178,13 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -283,6 +279,19 @@ "ms": "2.0.0" } }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/depd": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", @@ -447,9 +456,12 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/get-caller-file": { "version": "2.0.5", @@ -460,28 +472,39 @@ } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", "dependencies": { - "function-bind": "^1.1.1" + "get-intrinsic": "^1.1.3" }, - "engines": { - "node": ">= 0.4.0" + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { @@ -506,6 +529,17 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/http-errors": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", @@ -636,9 +670,9 @@ } }, "node_modules/node-fetch": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.1.tgz", - "integrity": "sha512-cRVc/kyto/7E5shrWca1Wsea4y6tL9iYJE5FBCius3JQfb/4P4I295PfhgbJQBLTx6lATE4z+wK0rPM4VS2uow==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", "dependencies": { "data-uri-to-buffer": "^4.0.0", "fetch-blob": "^3.1.4", @@ -661,9 +695,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -716,18 +750,6 @@ "url": "https://opencollective.com/peer" } }, - "node_modules/prom-client": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-15.0.0.tgz", - "integrity": "sha512-UocpgIrKyA2TKLVZDSfm8rGkL13C19YrQBAiG3xo3aDFWcHedxRxI3z+cIcucoxpSO0h5lff5iv/SXoxyeopeA==", - "dependencies": { - "@opentelemetry/api": "^1.4.0", - "tdigest": "^0.1.1" - }, - "engines": { - "node": "^16 || ^18 || >=20" - } - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -850,6 +872,20 @@ "node": ">= 0.8.0" } }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", @@ -900,14 +936,6 @@ "node": ">=8" } }, - "node_modules/tdigest": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", - "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", - "dependencies": { - "bintrees": "1.0.2" - } - }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -928,6 +956,11 @@ "node": ">= 0.6" } }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==" + }, "node_modules/unpipe": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", @@ -977,9 +1010,9 @@ } }, "node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "version": "8.14.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", + "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "engines": { "node": ">=10.0.0" }, diff --git a/peers/package.json b/peers/package.json index 5c31466b8..9f8a11f4b 100644 --- a/peers/package.json +++ b/peers/package.json @@ -19,7 +19,6 @@ "homepage": "https://github.com/openreplay/openreplay#readme", "dependencies": { "express": "^4.18.2", - "peer": "^v1.0.1", - "prom-client": "^15.0.0" + "peer": "^v1.0.1" } } diff --git a/sourcemap-reader/package-lock.json b/sourcemap-reader/package-lock.json index 17b05606c..90088d9e1 100644 --- a/sourcemap-reader/package-lock.json +++ b/sourcemap-reader/package-lock.json @@ -12,7 +12,6 @@ "@azure/storage-blob": "^12.17.0", "aws-sdk": "^2.1493.0", "express": "^4.18.2", - "prom-client": "^15.0.0", "source-map": "^0.7.4" } }, @@ -234,9 +233,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1493.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1493.0.tgz", - "integrity": "sha512-fnOoakH7HUHWDPjnXuCoy3KR+4Fn+Z76ZZjLUbsljzOdy1aBiN5C+cnrEnV8wWKI1dUjU6C1nwEystzi50HHyA==", + "version": "2.1495.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1495.0.tgz", + "integrity": "sha512-JbefhY9G3WooJJjTtSUegyuNiYhY0vFd0q1KtpY8W+z1U6aKovkIyLJsR2de6u8KXZQkcwT+7N46BYT1SbZ5sQ==", "dependencies": { "buffer": "4.9.2", "events": "1.1.1", @@ -272,11 +271,6 @@ } ] }, - "node_modules/bintrees": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bintrees/-/bintrees-1.0.2.tgz", - "integrity": "sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==" - }, "node_modules/body-parser": { "version": "1.20.1", "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.1.tgz", @@ -541,13 +535,12 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-proto": "^1.0.1", "has-symbols": "^1.0.3" }, "funding": { @@ -576,17 +569,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-symbols": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", @@ -850,18 +832,6 @@ "node": ">= 0.6.0" } }, - "node_modules/prom-client": { - "version": "15.0.0", - "resolved": "https://registry.npmjs.org/prom-client/-/prom-client-15.0.0.tgz", - "integrity": "sha512-UocpgIrKyA2TKLVZDSfm8rGkL13C19YrQBAiG3xo3aDFWcHedxRxI3z+cIcucoxpSO0h5lff5iv/SXoxyeopeA==", - "dependencies": { - "@opentelemetry/api": "^1.4.0", - "tdigest": "^0.1.1" - }, - "engines": { - "node": "^16 || ^18 || >=20" - } - }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -1029,14 +999,6 @@ "node": ">= 0.8" } }, - "node_modules/tdigest": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/tdigest/-/tdigest-0.1.2.tgz", - "integrity": "sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==", - "dependencies": { - "bintrees": "1.0.2" - } - }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", diff --git a/sourcemap-reader/package.json b/sourcemap-reader/package.json index 0efcd5947..3fc482a63 100644 --- a/sourcemap-reader/package.json +++ b/sourcemap-reader/package.json @@ -21,7 +21,6 @@ "@azure/storage-blob": "^12.17.0", "aws-sdk": "^2.1493.0", "express": "^4.18.2", - "prom-client": "^15.0.0", "source-map": "^0.7.4" } }