u
This commit is contained in:
62
server.js
62
server.js
@@ -36,33 +36,14 @@ function truncateUrl(url) {
|
||||
return `${url.slice(0, CONSOLE_URL_MAX_LENGTH)}...`;
|
||||
}
|
||||
|
||||
const lastInitState = { url: '', result: '', timestamp: 0 };
|
||||
let suppressedCount = 0;
|
||||
let lastLoggedInitUrl = null;
|
||||
let suppressedInitCount = 0;
|
||||
|
||||
setInterval(() => {
|
||||
if (suppressedCount > 0) {
|
||||
logger.info(`Suppressed ${suppressedCount} init log(s) in the last hour`);
|
||||
suppressedCount = 0;
|
||||
function flushSuppressedInitLogs() {
|
||||
if (suppressedInitCount > 0) {
|
||||
logger.info(`Suppressed ${suppressedInitCount} duplicate init log(s)`);
|
||||
suppressedInitCount = 0;
|
||||
}
|
||||
}, 60 * 60 * 1000);
|
||||
|
||||
function shouldLogInit(url, statusCode, durationMs, responseBody) {
|
||||
if (statusCode !== 200) return true;
|
||||
if (durationMs > 400) return true;
|
||||
|
||||
const now = Date.now();
|
||||
const timeSinceLast = now - lastInitState.timestamp;
|
||||
|
||||
if (timeSinceLast < 30_000 && url === lastInitState.url && responseBody === lastInitState.result) {
|
||||
lastInitState.timestamp = now;
|
||||
suppressedCount++;
|
||||
return false;
|
||||
}
|
||||
|
||||
lastInitState.url = url;
|
||||
lastInitState.result = responseBody;
|
||||
lastInitState.timestamp = now;
|
||||
return true;
|
||||
}
|
||||
|
||||
function formatBody(buffer) {
|
||||
@@ -100,18 +81,27 @@ const loggedJtlHandler = async (req, res) => {
|
||||
const durationMs = Date.now() - started;
|
||||
const isInit = req.url.startsWith('/api/v1/init');
|
||||
|
||||
if (!isInit || shouldLogInit(req.url, res.statusCode, durationMs, responseBody)) {
|
||||
logger.info(`${req.socket.remoteAddress} ${req.method} ${truncateUrl(req.url)} ${res.statusCode} ${durationMs}ms`);
|
||||
|
||||
logRequest({
|
||||
remoteAddress: req.socket.remoteAddress,
|
||||
method: req.method,
|
||||
url: req.url,
|
||||
statusCode: res.statusCode,
|
||||
durationMs,
|
||||
response: responseBody,
|
||||
});
|
||||
if (isInit) {
|
||||
if (lastLoggedInitUrl === req.url) {
|
||||
suppressedInitCount++;
|
||||
return;
|
||||
}
|
||||
lastLoggedInitUrl = req.url;
|
||||
} else {
|
||||
flushSuppressedInitLogs();
|
||||
lastLoggedInitUrl = null;
|
||||
}
|
||||
|
||||
logger.info(`${req.socket.remoteAddress} ${req.method} ${truncateUrl(req.url)} ${res.statusCode} ${durationMs}ms`);
|
||||
|
||||
logRequest({
|
||||
remoteAddress: req.socket.remoteAddress,
|
||||
method: req.method,
|
||||
url: req.url,
|
||||
statusCode: res.statusCode,
|
||||
durationMs,
|
||||
response: responseBody,
|
||||
});
|
||||
};
|
||||
|
||||
const httpsServer = https.createServer(
|
||||
|
||||
Reference in New Issue
Block a user