@nxtedition/logger 2.0.7 → 2.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/logger-worker.js +37 -1
- package/lib/logger-worker.js.map +1 -1
- package/lib/logger.js +1 -1
- package/package.json +3 -3
package/lib/logger-worker.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { workerData } from 'node:worker_threads';
|
|
1
|
+
import { workerData, threadId } from 'node:worker_threads';
|
|
2
2
|
import { Reader } from '@nxtedition/shared';
|
|
3
3
|
import tp from 'node:timers/promises';
|
|
4
4
|
import fs from 'node:fs';
|
|
5
|
+
import v8 from 'node:v8';
|
|
6
|
+
import { performance, monitorEventLoopDelay } from 'node:perf_hooks';
|
|
5
7
|
const readersByToken = new Map();
|
|
6
8
|
let readers = [];
|
|
7
9
|
const backoffBuffer = new Int32Array(new SharedArrayBuffer(4));
|
|
@@ -77,6 +79,37 @@ process.on('exit', () => {
|
|
|
77
79
|
readerDrain(readers[i]);
|
|
78
80
|
}
|
|
79
81
|
});
|
|
82
|
+
// The logger does not use the middleware from the app so we manually post statistics to the main thread.
|
|
83
|
+
const lagResolution = 10;
|
|
84
|
+
const lagHistogram = monitorEventLoopDelay({ resolution: lagResolution });
|
|
85
|
+
lagHistogram.enable();
|
|
86
|
+
const statsBC = new BroadcastChannel('nxt:app:stats').unref();
|
|
87
|
+
let elu = performance.eventLoopUtilization();
|
|
88
|
+
const statsInterval = setInterval(() => {
|
|
89
|
+
const newElu = performance.eventLoopUtilization();
|
|
90
|
+
const mem = process.memoryUsage();
|
|
91
|
+
let lag = Math.max(0, lagHistogram.mean / 1e6 - lagResolution);
|
|
92
|
+
if (Number.isNaN(lag)) {
|
|
93
|
+
lag = Infinity;
|
|
94
|
+
}
|
|
95
|
+
lagHistogram.reset();
|
|
96
|
+
statsBC.postMessage({
|
|
97
|
+
id: threadId,
|
|
98
|
+
data: {
|
|
99
|
+
name: 'logger',
|
|
100
|
+
lag,
|
|
101
|
+
memory: {
|
|
102
|
+
heapTotal: mem.heapTotal,
|
|
103
|
+
heapUsed: mem.heapUsed,
|
|
104
|
+
external: mem.external,
|
|
105
|
+
arrayBuffers: mem.arrayBuffers,
|
|
106
|
+
},
|
|
107
|
+
heap: v8.getHeapStatistics(),
|
|
108
|
+
utilization: performance.eventLoopUtilization(newElu, elu),
|
|
109
|
+
},
|
|
110
|
+
});
|
|
111
|
+
elu = newElu;
|
|
112
|
+
}, 1000).unref();
|
|
80
113
|
// Signal readiness to the parent thread so it can proceed with registration.
|
|
81
114
|
const readyState = new Int32Array(workerData.readyBuffer);
|
|
82
115
|
Atomics.store(readyState, 0, 1);
|
|
@@ -98,6 +131,9 @@ while (true) {
|
|
|
98
131
|
}
|
|
99
132
|
Atomics.store(drainState, 0, 2);
|
|
100
133
|
Atomics.notify(drainState, 0);
|
|
134
|
+
clearInterval(statsInterval);
|
|
135
|
+
statsBC.postMessage({ id: threadId, data: undefined });
|
|
136
|
+
statsBC.close();
|
|
101
137
|
bc.close();
|
|
102
138
|
break;
|
|
103
139
|
}
|
package/lib/logger-worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger-worker.js","sourceRoot":"","sources":["../src/logger-worker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"logger-worker.js","sourceRoot":"","sources":["../src/logger-worker.ts"],"names":[],"mappings":"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"}
|
package/lib/logger.js
CHANGED
|
@@ -93,7 +93,7 @@ export function createLogger({ level = isProduction ? 'debug' : 'trace', ...opti
|
|
|
93
93
|
if (isMainThread) {
|
|
94
94
|
startWorker();
|
|
95
95
|
}
|
|
96
|
-
const sharedBuffer = new SharedArrayBuffer(
|
|
96
|
+
const sharedBuffer = new SharedArrayBuffer(4 * 1024 * 1024); // 4 MiB per thread
|
|
97
97
|
const token = xuid();
|
|
98
98
|
const stream = new SharedWriter(token, sharedBuffer);
|
|
99
99
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nxtedition/logger",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.9",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"exports": {
|
|
@@ -24,12 +24,12 @@
|
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"@nxtedition/nxt-undici": "^7.3.2",
|
|
27
|
-
"@nxtedition/shared": "^4.0.
|
|
27
|
+
"@nxtedition/shared": "^4.0.8",
|
|
28
28
|
"fast-querystring": "^1.1.2",
|
|
29
29
|
"on-exit-leak-free": "^2.1.2",
|
|
30
30
|
"pino": "^10.3.1",
|
|
31
31
|
"request-target": "^1.0.0",
|
|
32
32
|
"xuid": "^4.1.5"
|
|
33
33
|
},
|
|
34
|
-
"gitHead": "
|
|
34
|
+
"gitHead": "9b3f1f96a33c9f66b014d8e37a503311268c84d5"
|
|
35
35
|
}
|