@naturalcycles/nodejs-lib 12.37.0 → 12.38.0
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/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [12.38.0](https://github.com/NaturalCycles/nodejs-lib/compare/v12.37.0...v12.38.0) (2021-10-06)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* TransformLogOptions.peakRSS to log peak rss ([4602565](https://github.com/NaturalCycles/nodejs-lib/commit/4602565c8e52d17d8bd975f73e0f2bd6df03cf8b))
|
|
7
|
+
|
|
1
8
|
# [12.37.0](https://github.com/NaturalCycles/nodejs-lib/compare/v12.36.0...v12.37.0) (2021-10-04)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -24,6 +24,12 @@ export interface TransformLogProgressOptions<IN = any> extends TransformOptions
|
|
|
24
24
|
* @default true
|
|
25
25
|
*/
|
|
26
26
|
rss?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Incude Peak RSS in log.
|
|
29
|
+
*
|
|
30
|
+
* @default false
|
|
31
|
+
*/
|
|
32
|
+
peakRSS?: boolean;
|
|
27
33
|
/**
|
|
28
34
|
* Include `external` in log.
|
|
29
35
|
*
|
|
@@ -50,15 +56,16 @@ export interface TransformLogProgressOptions<IN = any> extends TransformOptions
|
|
|
50
56
|
*/
|
|
51
57
|
logRPS?: boolean;
|
|
52
58
|
/**
|
|
53
|
-
* @default true
|
|
54
59
|
* Set to false to disable logging progress
|
|
60
|
+
*
|
|
61
|
+
* @default true
|
|
55
62
|
*/
|
|
56
63
|
logProgress?: boolean;
|
|
57
64
|
/**
|
|
58
65
|
* Log progress event Nth record that is _processed_ (went through mapper).
|
|
66
|
+
* Set to 0 to disable logging.
|
|
59
67
|
*
|
|
60
68
|
* @default 1000
|
|
61
|
-
* Set to 0 to disable logging.
|
|
62
69
|
*/
|
|
63
70
|
logEvery?: number;
|
|
64
71
|
/**
|
|
@@ -8,13 +8,13 @@ const time_lib_1 = require("@naturalcycles/time-lib");
|
|
|
8
8
|
const colors_1 = require("../../colors");
|
|
9
9
|
const inspectOpt = {
|
|
10
10
|
colors: true,
|
|
11
|
-
breakLength:
|
|
11
|
+
breakLength: 300,
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
14
|
* Pass-through transform that optionally logs progress.
|
|
15
15
|
*/
|
|
16
16
|
function transformLogProgress(opt = {}) {
|
|
17
|
-
const { metric = 'progress', heapTotal: logHeapTotal = false, heapUsed: logHeapUsed = true, rss: logRss = true, logRPS = true, logEvery = 1000, extra, } = opt;
|
|
17
|
+
const { metric = 'progress', heapTotal: logHeapTotal = false, heapUsed: logHeapUsed = true, rss: logRss = true, peakRSS: logPeakRSS = false, logRPS = true, logEvery = 1000, extra, } = opt;
|
|
18
18
|
const logProgress = opt.logProgress !== false && logEvery !== 0; // true by default
|
|
19
19
|
const logEvery10 = logEvery * 10;
|
|
20
20
|
const started = Date.now();
|
|
@@ -22,6 +22,7 @@ function transformLogProgress(opt = {}) {
|
|
|
22
22
|
const sma = new js_lib_1.SimpleMovingAverage(10); // over last 10 seconds
|
|
23
23
|
let processedLastSecond = 0;
|
|
24
24
|
let progress = 0;
|
|
25
|
+
let peakRSS = 0;
|
|
25
26
|
logStats(); // initial
|
|
26
27
|
return new stream_1.Transform({
|
|
27
28
|
objectMode: true,
|
|
@@ -49,12 +50,15 @@ function transformLogProgress(opt = {}) {
|
|
|
49
50
|
lastSecondStarted = now;
|
|
50
51
|
processedLastSecond = 0;
|
|
51
52
|
const rps10 = Math.round(sma.push(lastRPS));
|
|
53
|
+
if (mem.rss > peakRSS)
|
|
54
|
+
peakRSS = mem.rss;
|
|
52
55
|
console.log((0, util_1.inspect)({
|
|
53
56
|
[final ? `${metric}_final` : metric]: progress,
|
|
54
57
|
...(extra ? extra(chunk, progress) : {}),
|
|
55
58
|
...(logHeapUsed ? { heapUsed: (0, js_lib_1._mb)(mem.heapUsed) } : {}),
|
|
56
59
|
...(logHeapTotal ? { heapTotal: (0, js_lib_1._mb)(mem.heapTotal) } : {}),
|
|
57
60
|
...(logRss ? { rss: (0, js_lib_1._mb)(mem.rss) } : {}),
|
|
61
|
+
...(logPeakRSS ? { peakRSS: (0, js_lib_1._mb)(peakRSS) } : {}),
|
|
58
62
|
...(opt.rssMinusHeap ? { rssMinusHeap: (0, js_lib_1._mb)(mem.rss - mem.heapTotal) } : {}),
|
|
59
63
|
...(opt.external ? { external: (0, js_lib_1._mb)(mem.external) } : {}),
|
|
60
64
|
...(opt.arrayBuffers ? { arrayBuffers: (0, js_lib_1._mb)(mem.arrayBuffers || 0) } : {}),
|
package/package.json
CHANGED
|
@@ -34,6 +34,13 @@ export interface TransformLogProgressOptions<IN = any> extends TransformOptions
|
|
|
34
34
|
*/
|
|
35
35
|
rss?: boolean
|
|
36
36
|
|
|
37
|
+
/**
|
|
38
|
+
* Incude Peak RSS in log.
|
|
39
|
+
*
|
|
40
|
+
* @default false
|
|
41
|
+
*/
|
|
42
|
+
peakRSS?: boolean
|
|
43
|
+
|
|
37
44
|
/**
|
|
38
45
|
* Include `external` in log.
|
|
39
46
|
*
|
|
@@ -64,16 +71,17 @@ export interface TransformLogProgressOptions<IN = any> extends TransformOptions
|
|
|
64
71
|
logRPS?: boolean
|
|
65
72
|
|
|
66
73
|
/**
|
|
67
|
-
* @default true
|
|
68
74
|
* Set to false to disable logging progress
|
|
75
|
+
*
|
|
76
|
+
* @default true
|
|
69
77
|
*/
|
|
70
78
|
logProgress?: boolean
|
|
71
79
|
|
|
72
80
|
/**
|
|
73
81
|
* Log progress event Nth record that is _processed_ (went through mapper).
|
|
82
|
+
* Set to 0 to disable logging.
|
|
74
83
|
*
|
|
75
84
|
* @default 1000
|
|
76
|
-
* Set to 0 to disable logging.
|
|
77
85
|
*/
|
|
78
86
|
logEvery?: number
|
|
79
87
|
|
|
@@ -87,7 +95,7 @@ export interface TransformLogProgressOptions<IN = any> extends TransformOptions
|
|
|
87
95
|
|
|
88
96
|
const inspectOpt: InspectOptions = {
|
|
89
97
|
colors: true,
|
|
90
|
-
breakLength:
|
|
98
|
+
breakLength: 300,
|
|
91
99
|
}
|
|
92
100
|
|
|
93
101
|
/**
|
|
@@ -101,6 +109,7 @@ export function transformLogProgress<IN = any>(
|
|
|
101
109
|
heapTotal: logHeapTotal = false,
|
|
102
110
|
heapUsed: logHeapUsed = true,
|
|
103
111
|
rss: logRss = true,
|
|
112
|
+
peakRSS: logPeakRSS = false,
|
|
104
113
|
logRPS = true,
|
|
105
114
|
logEvery = 1000,
|
|
106
115
|
extra,
|
|
@@ -113,6 +122,7 @@ export function transformLogProgress<IN = any>(
|
|
|
113
122
|
const sma = new SimpleMovingAverage(10) // over last 10 seconds
|
|
114
123
|
let processedLastSecond = 0
|
|
115
124
|
let progress = 0
|
|
125
|
+
let peakRSS = 0
|
|
116
126
|
|
|
117
127
|
logStats() // initial
|
|
118
128
|
|
|
@@ -138,6 +148,7 @@ export function transformLogProgress<IN = any>(
|
|
|
138
148
|
|
|
139
149
|
function logStats(chunk?: IN, final = false, tenx = false): void {
|
|
140
150
|
if (!logProgress) return
|
|
151
|
+
|
|
141
152
|
const mem = process.memoryUsage()
|
|
142
153
|
|
|
143
154
|
const now = Date.now()
|
|
@@ -147,6 +158,7 @@ export function transformLogProgress<IN = any>(
|
|
|
147
158
|
processedLastSecond = 0
|
|
148
159
|
|
|
149
160
|
const rps10 = Math.round(sma.push(lastRPS))
|
|
161
|
+
if (mem.rss > peakRSS) peakRSS = mem.rss
|
|
150
162
|
|
|
151
163
|
console.log(
|
|
152
164
|
inspect(
|
|
@@ -156,6 +168,7 @@ export function transformLogProgress<IN = any>(
|
|
|
156
168
|
...(logHeapUsed ? { heapUsed: _mb(mem.heapUsed) } : {}),
|
|
157
169
|
...(logHeapTotal ? { heapTotal: _mb(mem.heapTotal) } : {}),
|
|
158
170
|
...(logRss ? { rss: _mb(mem.rss) } : {}),
|
|
171
|
+
...(logPeakRSS ? { peakRSS: _mb(peakRSS) } : {}),
|
|
159
172
|
...(opt.rssMinusHeap ? { rssMinusHeap: _mb(mem.rss - mem.heapTotal) } : {}),
|
|
160
173
|
...(opt.external ? { external: _mb(mem.external) } : {}),
|
|
161
174
|
...(opt.arrayBuffers ? { arrayBuffers: _mb(mem.arrayBuffers || 0) } : {}),
|