@datadog/pprof 5.14.4 → 5.15.1
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/out/src/heap-profiler-bindings.d.ts +3 -3
- package/out/src/heap-profiler-bindings.js +2 -2
- package/out/src/heap-profiler-bindings.js.map +1 -1
- package/out/src/heap-profiler.d.ts +12 -8
- package/out/src/heap-profiler.js +59 -15
- package/out/src/heap-profiler.js.map +1 -1
- package/out/src/profile-serializer.d.ts +2 -2
- package/out/src/profile-serializer.js +57 -18
- package/out/src/profile-serializer.js.map +1 -1
- package/out/src/time-profiler.js +9 -2
- package/out/src/time-profiler.js.map +1 -1
- package/out/src/v8-types.d.ts +10 -0
- package/package.json +29 -5
- package/prebuilds/darwin-arm64/dd_pprof.node.abi108.node +0 -0
- package/prebuilds/darwin-arm64/dd_pprof.node.abi111.node +0 -0
- package/prebuilds/darwin-arm64/dd_pprof.node.abi115.node +0 -0
- package/prebuilds/darwin-arm64/dd_pprof.node.abi120.node +0 -0
- package/prebuilds/darwin-arm64/dd_pprof.node.abi127.node +0 -0
- package/prebuilds/darwin-arm64/dd_pprof.node.abi131.node +0 -0
- package/prebuilds/darwin-arm64/dd_pprof.node.abi137.node +0 -0
- package/prebuilds/darwin-arm64/dd_pprof.node.abi141.node +0 -0
- package/prebuilds/darwin-arm64/dd_pprof.node.abi147.node +0 -0
- package/prebuilds/darwin-x64/dd_pprof.node.abi108.node +0 -0
- package/prebuilds/darwin-x64/dd_pprof.node.abi111.node +0 -0
- package/prebuilds/darwin-x64/dd_pprof.node.abi115.node +0 -0
- package/prebuilds/darwin-x64/dd_pprof.node.abi120.node +0 -0
- package/prebuilds/darwin-x64/dd_pprof.node.abi127.node +0 -0
- package/prebuilds/darwin-x64/dd_pprof.node.abi131.node +0 -0
- package/prebuilds/darwin-x64/dd_pprof.node.abi137.node +0 -0
- package/prebuilds/darwin-x64/dd_pprof.node.abi141.node +0 -0
- package/prebuilds/darwin-x64/dd_pprof.node.abi147.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.musl.node.abi108.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.musl.node.abi111.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.musl.node.abi115.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.musl.node.abi120.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.musl.node.abi127.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.musl.node.abi131.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.musl.node.abi137.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.musl.node.abi141.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.musl.node.abi147.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.node.abi108.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.node.abi111.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.node.abi115.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.node.abi120.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.node.abi127.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.node.abi131.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.node.abi137.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.node.abi141.node +0 -0
- package/prebuilds/linux-arm64/dd_pprof.node.abi147.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.musl.node.abi108.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.musl.node.abi111.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.musl.node.abi115.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.musl.node.abi120.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.musl.node.abi127.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.musl.node.abi131.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.musl.node.abi137.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.musl.node.abi141.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.musl.node.abi147.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.node.abi108.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.node.abi111.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.node.abi115.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.node.abi120.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.node.abi127.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.node.abi131.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.node.abi137.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.node.abi141.node +0 -0
- package/prebuilds/linux-x64/dd_pprof.node.abi147.node +0 -0
- package/prebuilds/win32-x64/dd_pprof.node.abi108.node +0 -0
- package/prebuilds/win32-x64/dd_pprof.node.abi111.node +0 -0
- package/prebuilds/win32-x64/dd_pprof.node.abi115.node +0 -0
- package/prebuilds/win32-x64/dd_pprof.node.abi120.node +0 -0
- package/prebuilds/win32-x64/dd_pprof.node.abi127.node +0 -0
- package/prebuilds/win32-x64/dd_pprof.node.abi131.node +0 -0
- package/prebuilds/win32-x64/dd_pprof.node.abi137.node +0 -0
- package/prebuilds/win32-x64/dd_pprof.node.abi141.node +0 -0
- package/prebuilds/win32-x64/dd_pprof.node.abi147.node +0 -0
|
@@ -13,10 +13,10 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { AllocationProfileNode } from './v8-types';
|
|
17
|
-
export declare function startSamplingHeapProfiler(heapIntervalBytes: number, heapStackDepth: number): void;
|
|
16
|
+
import { AllocationProfileNode, AllocationProfileNodeWithStats } from './v8-types';
|
|
17
|
+
export declare function startSamplingHeapProfiler(heapIntervalBytes: number, heapStackDepth: number, allocations?: boolean): void;
|
|
18
18
|
export declare function stopSamplingHeapProfiler(): void;
|
|
19
|
-
export declare function getAllocationProfile(): AllocationProfileNode;
|
|
19
|
+
export declare function getAllocationProfile(): AllocationProfileNode | AllocationProfileNodeWithStats;
|
|
20
20
|
export declare function mapAllocationProfile<T>(callback: (root: AllocationProfileNode) => T): T;
|
|
21
21
|
export type NearHeapLimitCallback = (profile: AllocationProfileNode) => void;
|
|
22
22
|
export declare function monitorOutOfMemory(heapLimitExtensionSize: number, maxHeapLimitExtensionCount: number, dumpHeapProfileOnSdterr: boolean, exportCommand: Array<string> | undefined, callback: NearHeapLimitCallback | undefined, callbackMode: number, isMainThread: boolean): void;
|
|
@@ -57,8 +57,8 @@ const path = __importStar(require("path"));
|
|
|
57
57
|
const findBinding = require('node-gyp-build');
|
|
58
58
|
const profiler = findBinding(path.join(__dirname, '..', '..'));
|
|
59
59
|
// Wrappers around native heap profiler functions.
|
|
60
|
-
function startSamplingHeapProfiler(heapIntervalBytes, heapStackDepth) {
|
|
61
|
-
profiler.heapProfiler.startSamplingHeapProfiler(heapIntervalBytes, heapStackDepth);
|
|
60
|
+
function startSamplingHeapProfiler(heapIntervalBytes, heapStackDepth, allocations = false) {
|
|
61
|
+
profiler.heapProfiler.startSamplingHeapProfiler(heapIntervalBytes, heapStackDepth, allocations);
|
|
62
62
|
}
|
|
63
63
|
function stopSamplingHeapProfiler() {
|
|
64
64
|
profiler.heapProfiler.stopSamplingHeapProfiler();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heap-profiler-bindings.js","sourceRoot":"","sources":["../../ts/src/heap-profiler-bindings.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"heap-profiler-bindings.js","sourceRoot":"","sources":["../../ts/src/heap-profiler-bindings.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcH,8DAUC;AAED,4DAEC;AAED,oDAIC;AAED,oDAIC;AAID,gDAkBC;AA5DD,2CAA6B;AAO7B,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE/D,kDAAkD;AAElD,SAAgB,yBAAyB,CACvC,iBAAyB,EACzB,cAAsB,EACtB,WAAW,GAAG,KAAK;IAEnB,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAC7C,iBAAiB,EACjB,cAAc,EACd,WAAW,CACZ,CAAC;AACJ,CAAC;AAED,SAAgB,wBAAwB;IACtC,QAAQ,CAAC,YAAY,CAAC,wBAAwB,EAAE,CAAC;AACnD,CAAC;AAED,SAAgB,oBAAoB;IAGlC,OAAO,QAAQ,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;AACtD,CAAC;AAED,SAAgB,oBAAoB,CAClC,QAA4C;IAE5C,OAAO,QAAQ,CAAC,YAAY,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;AAC9D,CAAC;AAID,SAAgB,kBAAkB,CAChC,sBAA8B,EAC9B,0BAAkC,EAClC,uBAAgC,EAChC,aAAwC,EACxC,QAA2C,EAC3C,YAAoB,EACpB,YAAqB;IAErB,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CACtC,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,aAAa,EACb,QAAQ,EACR,YAAY,EACZ,YAAY,CACb,CAAC;AACJ,CAAC"}
|
|
@@ -15,17 +15,17 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Profile } from 'pprof-format';
|
|
17
17
|
import { SourceMapper } from './sourcemapper/sourcemapper';
|
|
18
|
-
import { AllocationProfileNode, GenerateAllocationLabelsFunction } from './v8-types';
|
|
19
|
-
export declare function v8Profile(): AllocationProfileNode;
|
|
18
|
+
import { AllocationProfileNode, AllocationProfileNodeWithStats, GenerateAllocationLabelsFunction } from './v8-types';
|
|
19
|
+
export declare function v8Profile(): AllocationProfileNode | AllocationProfileNodeWithStats;
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
* an error.
|
|
23
|
-
* Map the heap profiler to a converted profile using callback function.
|
|
21
|
+
* Map the heap profile to a converted profile using callback function when
|
|
22
|
+
* heapProfiler is enabled. Otherwise throws an error.
|
|
24
23
|
*
|
|
25
24
|
* WARNING: Nodes in the tree are only valid during the callback. Do not store
|
|
26
25
|
* references to them. The memory is freed when the callback returns.
|
|
27
26
|
*
|
|
28
|
-
* @param callback - function to convert the heap
|
|
27
|
+
* @param callback - function to convert the heap profile to a converted
|
|
28
|
+
|file
|
|
29
29
|
* @returns <T> converted profile
|
|
30
30
|
*/
|
|
31
31
|
export declare function v8ProfileV2<T>(callback: (root: AllocationProfileNode) => T): T;
|
|
@@ -37,7 +37,7 @@ export declare function v8ProfileV2<T>(callback: (root: AllocationProfileNode) =
|
|
|
37
37
|
* @param sourceMapper
|
|
38
38
|
*/
|
|
39
39
|
export declare function profile(ignoreSamplePath?: string, sourceMapper?: SourceMapper, generateLabels?: GenerateAllocationLabelsFunction): Profile;
|
|
40
|
-
export declare function convertProfile(rootNode: AllocationProfileNode, ignoreSamplePath?: string, sourceMapper?: SourceMapper, generateLabels?: GenerateAllocationLabelsFunction): Profile;
|
|
40
|
+
export declare function convertProfile(rootNode: AllocationProfileNode | AllocationProfileNodeWithStats, ignoreSamplePath?: string, sourceMapper?: SourceMapper, generateLabels?: GenerateAllocationLabelsFunction): Profile;
|
|
41
41
|
/**
|
|
42
42
|
* Collects a profile and returns it serialized in pprof format using lazy V2 API.
|
|
43
43
|
* Throws if heap profiler is not enabled.
|
|
@@ -54,8 +54,12 @@ export declare function profileV2(ignoreSamplePath?: string, sourceMapper?: Sour
|
|
|
54
54
|
*
|
|
55
55
|
* @param intervalBytes - average number of bytes between samples.
|
|
56
56
|
* @param stackDepth - maximum stack depth for samples collected.
|
|
57
|
+
* @param allocations - include total allocation samples in the profile.
|
|
58
|
+
* When true, each call to `profile()` forces a full GC (via
|
|
59
|
+
* v8::HeapProfiler::kSamplingForceGC) to classify sampled objects as
|
|
60
|
+
* live/dead, which adds a measurable pause. Requires Node.js >= 26.
|
|
57
61
|
*/
|
|
58
|
-
export declare function start(intervalBytes: number, stackDepth: number): void;
|
|
62
|
+
export declare function start(intervalBytes: number, stackDepth: number, allocations?: boolean): void;
|
|
59
63
|
export declare function stop(): void;
|
|
60
64
|
export type NearHeapLimitCallback = (profile: Profile) => void;
|
|
61
65
|
export declare const CallbackMode: {
|
package/out/src/heap-profiler.js
CHANGED
|
@@ -30,6 +30,7 @@ const worker_threads_1 = require("worker_threads");
|
|
|
30
30
|
let enabled = false;
|
|
31
31
|
let heapIntervalBytes = 0;
|
|
32
32
|
let heapStackDepth = 0;
|
|
33
|
+
let startedWithAllocations = false;
|
|
33
34
|
/*
|
|
34
35
|
* Collects a heap profile when heapProfiler is enabled. Otherwise throws
|
|
35
36
|
* an error.
|
|
@@ -43,20 +44,23 @@ function v8Profile() {
|
|
|
43
44
|
return (0, heap_profiler_bindings_1.getAllocationProfile)();
|
|
44
45
|
}
|
|
45
46
|
/**
|
|
46
|
-
*
|
|
47
|
-
* an error.
|
|
48
|
-
* Map the heap profiler to a converted profile using callback function.
|
|
47
|
+
* Map the heap profile to a converted profile using callback function when
|
|
48
|
+
* heapProfiler is enabled. Otherwise throws an error.
|
|
49
49
|
*
|
|
50
50
|
* WARNING: Nodes in the tree are only valid during the callback. Do not store
|
|
51
51
|
* references to them. The memory is freed when the callback returns.
|
|
52
52
|
*
|
|
53
|
-
* @param callback - function to convert the heap
|
|
53
|
+
* @param callback - function to convert the heap profile to a converted
|
|
54
|
+
|file
|
|
54
55
|
* @returns <T> converted profile
|
|
55
56
|
*/
|
|
56
57
|
function v8ProfileV2(callback) {
|
|
57
58
|
if (!enabled) {
|
|
58
59
|
throw new Error('Heap profiler is not enabled.');
|
|
59
60
|
}
|
|
61
|
+
if (startedWithAllocations) {
|
|
62
|
+
throw new Error('profileV2 does not support allocation mode.');
|
|
63
|
+
}
|
|
60
64
|
return (0, heap_profiler_bindings_1.mapAllocationProfile)(callback);
|
|
61
65
|
}
|
|
62
66
|
/**
|
|
@@ -67,9 +71,20 @@ function v8ProfileV2(callback) {
|
|
|
67
71
|
* @param sourceMapper
|
|
68
72
|
*/
|
|
69
73
|
function profile(ignoreSamplePath, sourceMapper, generateLabels) {
|
|
70
|
-
|
|
74
|
+
const result = convertProfile(v8Profile(), ignoreSamplePath, sourceMapper, generateLabels);
|
|
75
|
+
// In allocation mode V8 keeps every sampled object (live + collected-by-GC)
|
|
76
|
+
// in an append-only buffer that's only freed by stopSamplingHeapProfiler.
|
|
77
|
+
// Without this reset, each call to getAllocationProfile re-reads the entire
|
|
78
|
+
// history, so alloc_* totals grow linearly with wall-clock time and V8's
|
|
79
|
+
// internal sample buffer leaks for the lifetime of the process.
|
|
80
|
+
if (startedWithAllocations) {
|
|
81
|
+
(0, heap_profiler_bindings_1.stopSamplingHeapProfiler)();
|
|
82
|
+
(0, heap_profiler_bindings_1.startSamplingHeapProfiler)(heapIntervalBytes, heapStackDepth, true);
|
|
83
|
+
}
|
|
84
|
+
return result;
|
|
71
85
|
}
|
|
72
86
|
function convertProfile(rootNode, ignoreSamplePath, sourceMapper, generateLabels) {
|
|
87
|
+
const allocations = startedWithAllocations;
|
|
73
88
|
const startTimeNanos = Date.now() * 1000 * 1000;
|
|
74
89
|
// Add node for external memory usage.
|
|
75
90
|
// Current type definitions do not have external.
|
|
@@ -78,18 +93,41 @@ function convertProfile(rootNode, ignoreSamplePath, sourceMapper, generateLabels
|
|
|
78
93
|
const { external } = process.memoryUsage();
|
|
79
94
|
let root;
|
|
80
95
|
if (external > 0) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
96
|
+
if (allocations) {
|
|
97
|
+
const externalNode = {
|
|
98
|
+
name: '(external)',
|
|
99
|
+
scriptName: '',
|
|
100
|
+
children: [],
|
|
101
|
+
allocations: [
|
|
102
|
+
{
|
|
103
|
+
inuseObjects: 1,
|
|
104
|
+
inuseSpaceBytes: external,
|
|
105
|
+
allocObjects: 1,
|
|
106
|
+
allocSpaceBytes: external,
|
|
107
|
+
},
|
|
108
|
+
],
|
|
109
|
+
};
|
|
110
|
+
const allocationRoot = rootNode;
|
|
111
|
+
root = {
|
|
112
|
+
...allocationRoot,
|
|
113
|
+
children: [...allocationRoot.children, externalNode],
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
const externalNode = {
|
|
118
|
+
name: '(external)',
|
|
119
|
+
scriptName: '',
|
|
120
|
+
children: [],
|
|
121
|
+
allocations: [{ sizeBytes: external, count: 1 }],
|
|
122
|
+
};
|
|
123
|
+
const heapRoot = rootNode;
|
|
124
|
+
root = { ...heapRoot, children: [...heapRoot.children, externalNode] };
|
|
125
|
+
}
|
|
88
126
|
}
|
|
89
127
|
else {
|
|
90
128
|
root = rootNode;
|
|
91
129
|
}
|
|
92
|
-
return (0, profile_serializer_1.serializeHeapProfile)(root, startTimeNanos, heapIntervalBytes, ignoreSamplePath, sourceMapper, generateLabels);
|
|
130
|
+
return (0, profile_serializer_1.serializeHeapProfile)(root, startTimeNanos, heapIntervalBytes, ignoreSamplePath, sourceMapper, generateLabels, allocations);
|
|
93
131
|
}
|
|
94
132
|
/**
|
|
95
133
|
* Collects a profile and returns it serialized in pprof format using lazy V2 API.
|
|
@@ -111,20 +149,26 @@ function profileV2(ignoreSamplePath, sourceMapper, generateLabels) {
|
|
|
111
149
|
*
|
|
112
150
|
* @param intervalBytes - average number of bytes between samples.
|
|
113
151
|
* @param stackDepth - maximum stack depth for samples collected.
|
|
152
|
+
* @param allocations - include total allocation samples in the profile.
|
|
153
|
+
* When true, each call to `profile()` forces a full GC (via
|
|
154
|
+
* v8::HeapProfiler::kSamplingForceGC) to classify sampled objects as
|
|
155
|
+
* live/dead, which adds a measurable pause. Requires Node.js >= 26.
|
|
114
156
|
*/
|
|
115
|
-
function start(intervalBytes, stackDepth) {
|
|
157
|
+
function start(intervalBytes, stackDepth, allocations = false) {
|
|
116
158
|
if (enabled) {
|
|
117
159
|
throw new Error(`Heap profiler is already started with intervalBytes ${heapIntervalBytes} and stackDepth ${stackDepth}`);
|
|
118
160
|
}
|
|
119
161
|
heapIntervalBytes = intervalBytes;
|
|
120
162
|
heapStackDepth = stackDepth;
|
|
121
|
-
|
|
163
|
+
startedWithAllocations = allocations;
|
|
164
|
+
(0, heap_profiler_bindings_1.startSamplingHeapProfiler)(intervalBytes, stackDepth, allocations);
|
|
122
165
|
enabled = true;
|
|
123
166
|
}
|
|
124
167
|
// Stops heap profiling. If heap profiling has not been started, does nothing.
|
|
125
168
|
function stop() {
|
|
126
169
|
if (enabled) {
|
|
127
170
|
enabled = false;
|
|
171
|
+
startedWithAllocations = false;
|
|
128
172
|
(0, heap_profiler_bindings_1.stopSamplingHeapProfiler)();
|
|
129
173
|
}
|
|
130
174
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heap-profiler.js","sourceRoot":"","sources":["../../ts/src/heap-profiler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;
|
|
1
|
+
{"version":3,"file":"heap-profiler.js","sourceRoot":"","sources":["../../ts/src/heap-profiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Profile } from 'pprof-format';
|
|
17
17
|
import { SourceMapper } from './sourcemapper/sourcemapper';
|
|
18
|
-
import { AllocationProfileNode, GenerateAllocationLabelsFunction, GenerateTimeLabelsFunction, TimeProfile, TimeProfileNode } from './v8-types';
|
|
18
|
+
import { AllocationProfileNode, AllocationProfileNodeWithStats, GenerateAllocationLabelsFunction, GenerateTimeLabelsFunction, TimeProfile, TimeProfileNode } from './v8-types';
|
|
19
19
|
export declare const NON_JS_THREADS_FUNCTION_NAME = "Non JS threads activity";
|
|
20
20
|
export declare const GARBAGE_COLLECTION_FUNCTION_NAME = "Garbage Collection";
|
|
21
21
|
export declare function computeTotalHitCount(root: TimeProfileNode): number;
|
|
@@ -37,4 +37,4 @@ export declare function serializeTimeProfile(prof: TimeProfile, intervalMicros:
|
|
|
37
37
|
* nanoseconds.
|
|
38
38
|
* @param intervalBytes - bytes allocated between samples.
|
|
39
39
|
*/
|
|
40
|
-
export declare function serializeHeapProfile(prof: AllocationProfileNode, startTimeNanos: number, intervalBytes: number, ignoreSamplesPath?: string, sourceMapper?: SourceMapper, generateLabels?: GenerateAllocationLabelsFunction): Profile;
|
|
40
|
+
export declare function serializeHeapProfile(prof: AllocationProfileNode | AllocationProfileNodeWithStats, startTimeNanos: number, intervalBytes: number, ignoreSamplesPath?: string, sourceMapper?: SourceMapper, generateLabels?: GenerateAllocationLabelsFunction, allocations?: boolean): Profile;
|
|
@@ -27,6 +27,12 @@ function isGeneratedLocation(location) {
|
|
|
27
27
|
location.line !== undefined &&
|
|
28
28
|
location.line > 0);
|
|
29
29
|
}
|
|
30
|
+
function requireAllocationStat(value, field) {
|
|
31
|
+
if (value === undefined) {
|
|
32
|
+
throw new Error(`Allocation profile is missing ${field}.`);
|
|
33
|
+
}
|
|
34
|
+
return value;
|
|
35
|
+
}
|
|
30
36
|
/**
|
|
31
37
|
* Takes v8 profile and populates sample, location, and function fields of
|
|
32
38
|
* profile.proto.
|
|
@@ -175,23 +181,27 @@ function createCpuValueType(table) {
|
|
|
175
181
|
unit: table.dedup('nanoseconds'),
|
|
176
182
|
});
|
|
177
183
|
}
|
|
178
|
-
|
|
179
|
-
* @return value type for object counts (type:objects, units:count), and
|
|
180
|
-
* adds strings used in this value type to the table.
|
|
181
|
-
*/
|
|
182
|
-
function createObjectCountValueType(table) {
|
|
184
|
+
function createInUseObjectCountValueType(table) {
|
|
183
185
|
return new pprof_format_1.ValueType({
|
|
184
|
-
type: table.dedup('
|
|
186
|
+
type: table.dedup('inuse_objects'),
|
|
185
187
|
unit: table.dedup('count'),
|
|
186
188
|
});
|
|
187
189
|
}
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
190
|
+
function createAllocatedObjectCountValueType(table) {
|
|
191
|
+
return new pprof_format_1.ValueType({
|
|
192
|
+
type: table.dedup('alloc_objects'),
|
|
193
|
+
unit: table.dedup('count'),
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
function createInUseSpaceValueType(table) {
|
|
193
197
|
return new pprof_format_1.ValueType({
|
|
194
|
-
type: table.dedup('
|
|
198
|
+
type: table.dedup('inuse_space'),
|
|
199
|
+
unit: table.dedup('bytes'),
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
function createAllocatedSpaceValueType(table) {
|
|
203
|
+
return new pprof_format_1.ValueType({
|
|
204
|
+
type: table.dedup('alloc_space'),
|
|
195
205
|
unit: table.dedup('bytes'),
|
|
196
206
|
});
|
|
197
207
|
}
|
|
@@ -409,16 +419,36 @@ function buildLabels(labelSet, stringTable) {
|
|
|
409
419
|
* nanoseconds.
|
|
410
420
|
* @param intervalBytes - bytes allocated between samples.
|
|
411
421
|
*/
|
|
412
|
-
function serializeHeapProfile(prof, startTimeNanos, intervalBytes, ignoreSamplesPath, sourceMapper, generateLabels) {
|
|
422
|
+
function serializeHeapProfile(prof, startTimeNanos, intervalBytes, ignoreSamplesPath, sourceMapper, generateLabels, allocations = false) {
|
|
413
423
|
const appendHeapEntryToSamples = (entry, samples) => {
|
|
414
424
|
if (entry.node.allocations.length > 0) {
|
|
415
425
|
const labels = generateLabels
|
|
416
426
|
? buildLabels(generateLabels({ node: entry.node }), stringTable)
|
|
417
427
|
: [];
|
|
418
428
|
for (const alloc of entry.node.allocations) {
|
|
429
|
+
// Live heap only
|
|
430
|
+
if (!allocations) {
|
|
431
|
+
const heapAllocation = alloc;
|
|
432
|
+
const sample = new pprof_format_1.Sample({
|
|
433
|
+
locationId: entry.stack,
|
|
434
|
+
value: [
|
|
435
|
+
heapAllocation.count,
|
|
436
|
+
heapAllocation.sizeBytes * heapAllocation.count,
|
|
437
|
+
],
|
|
438
|
+
label: labels,
|
|
439
|
+
// TODO: add tag for allocation size
|
|
440
|
+
});
|
|
441
|
+
samples.push(sample);
|
|
442
|
+
continue;
|
|
443
|
+
}
|
|
444
|
+
const stats = alloc;
|
|
445
|
+
const inuseObjects = requireAllocationStat(stats.inuseObjects, 'inuseObjects');
|
|
446
|
+
const inuseSpaceBytes = requireAllocationStat(stats.inuseSpaceBytes, 'inuseSpaceBytes');
|
|
447
|
+
const allocObjects = requireAllocationStat(stats.allocObjects, 'allocObjects');
|
|
448
|
+
const allocSpaceBytes = requireAllocationStat(stats.allocSpaceBytes, 'allocSpaceBytes');
|
|
419
449
|
const sample = new pprof_format_1.Sample({
|
|
420
450
|
locationId: entry.stack,
|
|
421
|
-
value: [
|
|
451
|
+
value: [inuseObjects, allocObjects, inuseSpaceBytes, allocSpaceBytes],
|
|
422
452
|
label: labels,
|
|
423
453
|
// TODO: add tag for allocation size
|
|
424
454
|
});
|
|
@@ -427,12 +457,21 @@ function serializeHeapProfile(prof, startTimeNanos, intervalBytes, ignoreSamples
|
|
|
427
457
|
}
|
|
428
458
|
};
|
|
429
459
|
const stringTable = new pprof_format_1.StringTable();
|
|
430
|
-
const
|
|
431
|
-
|
|
460
|
+
const sampleTypes = allocations
|
|
461
|
+
? [
|
|
462
|
+
createInUseObjectCountValueType(stringTable),
|
|
463
|
+
createAllocatedObjectCountValueType(stringTable),
|
|
464
|
+
createInUseSpaceValueType(stringTable),
|
|
465
|
+
createAllocatedSpaceValueType(stringTable),
|
|
466
|
+
]
|
|
467
|
+
: [
|
|
468
|
+
createInUseObjectCountValueType(stringTable),
|
|
469
|
+
createInUseSpaceValueType(stringTable),
|
|
470
|
+
];
|
|
432
471
|
const profile = {
|
|
433
|
-
sampleType:
|
|
472
|
+
sampleType: sampleTypes,
|
|
434
473
|
timeNanos: startTimeNanos,
|
|
435
|
-
periodType:
|
|
474
|
+
periodType: sampleTypes[sampleTypes.length - 1],
|
|
436
475
|
period: intervalBytes,
|
|
437
476
|
};
|
|
438
477
|
serialize(profile, prof, appendHeapEntryToSamples, stringTable, ignoreSamplesPath, sourceMapper);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profile-serializer.js","sourceRoot":"","sources":["../../ts/src/profile-serializer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"profile-serializer.js","sourceRoot":"","sources":["../../ts/src/profile-serializer.ts"],"names":[],"mappings":"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"}
|
package/out/src/time-profiler.js
CHANGED
|
@@ -118,12 +118,19 @@ function stop(restart = false, generateLabels, lowCardinalityLabels) {
|
|
|
118
118
|
}
|
|
119
119
|
const profile = gProfiler.stop(restart);
|
|
120
120
|
if (restart) {
|
|
121
|
+
// Restart the profiler *before* serializing so the cost of serialization is
|
|
122
|
+
// captured in the next profile. handleStopRestart() does not dispose of the
|
|
123
|
+
// source mapper, so the source-map resolution below is unaffected.
|
|
121
124
|
handleStopRestart();
|
|
122
125
|
}
|
|
123
|
-
|
|
126
|
+
const serializedProfile = (0, profile_serializer_1.serializeTimeProfile)(profile, gIntervalMicros, gSourceMapper, true, generateLabels, lowCardinalityLabels);
|
|
127
|
+
if (!restart) {
|
|
128
|
+
// Tear down *after* serializing: handleStopNoRestart() clears gSourceMapper
|
|
129
|
+
// (and disposes gProfiler), so serializing afterwards would drop source-map
|
|
130
|
+
// resolution and leave transpiled frames pointing at the generated files
|
|
131
|
+
// instead of the original sources.
|
|
124
132
|
handleStopNoRestart();
|
|
125
133
|
}
|
|
126
|
-
const serializedProfile = (0, profile_serializer_1.serializeTimeProfile)(profile, gIntervalMicros, gSourceMapper, true, generateLabels, lowCardinalityLabels);
|
|
127
134
|
return serializedProfile;
|
|
128
135
|
}
|
|
129
136
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-profiler.js","sourceRoot":"","sources":["../../ts/src/time-profiler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AA4GH,0BAOC;AAED,8BAKC;AAGD,sBAmBC;AAED,
|
|
1
|
+
{"version":3,"file":"time-profiler.js","sourceRoot":"","sources":["../../ts/src/time-profiler.ts"],"names":[],"mappings":"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"}
|
package/out/src/v8-types.d.ts
CHANGED
|
@@ -51,6 +51,16 @@ export interface Allocation {
|
|
|
51
51
|
sizeBytes: number;
|
|
52
52
|
count: number;
|
|
53
53
|
}
|
|
54
|
+
export interface AllocationWithStats {
|
|
55
|
+
inuseObjects: number;
|
|
56
|
+
inuseSpaceBytes: number;
|
|
57
|
+
allocObjects: number;
|
|
58
|
+
allocSpaceBytes: number;
|
|
59
|
+
}
|
|
60
|
+
export interface AllocationProfileNodeWithStats extends ProfileNode {
|
|
61
|
+
allocations: AllocationWithStats[];
|
|
62
|
+
children: AllocationProfileNodeWithStats[];
|
|
63
|
+
}
|
|
54
64
|
export interface LabelSet {
|
|
55
65
|
[key: string]: string | number;
|
|
56
66
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datadog/pprof",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.15.1",
|
|
4
4
|
"description": "pprof support for Node.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -52,13 +52,13 @@
|
|
|
52
52
|
"eslint-plugin-n": "^18.0.1",
|
|
53
53
|
"gts": "^7.0.0",
|
|
54
54
|
"js-green-licenses": "^4.0.0",
|
|
55
|
-
"mocha": "^11.7.
|
|
55
|
+
"mocha": "^11.7.6",
|
|
56
56
|
"nan": "^2.27.0",
|
|
57
57
|
"nyc": "^18.0.0",
|
|
58
|
-
"semver": "^7.8.
|
|
58
|
+
"semver": "^7.8.1",
|
|
59
59
|
"sinon": "^22.0.0",
|
|
60
60
|
"source-map-support": "^0.5.21",
|
|
61
|
-
"tmp": "0.2.
|
|
61
|
+
"tmp": "0.2.6",
|
|
62
62
|
"typescript": "^6.0.3"
|
|
63
63
|
},
|
|
64
64
|
"files": [
|
|
@@ -84,5 +84,29 @@
|
|
|
84
84
|
"node": ">=16"
|
|
85
85
|
},
|
|
86
86
|
"//": "Temporary fix to make nan@2.22.2 work with Node 24",
|
|
87
|
-
"postinstall": "sed -i '' 's/^.* Holder() const.*//' ./node_modules/nan/nan_callbacks_12_inl.h"
|
|
87
|
+
"postinstall": "sed -i '' 's/^.* Holder() const.*//' ./node_modules/nan/nan_callbacks_12_inl.h",
|
|
88
|
+
"overrides": {
|
|
89
|
+
"nyc": {
|
|
90
|
+
"brace-expansion": "^5.0.6",
|
|
91
|
+
"js-yaml": "^3.14.2"
|
|
92
|
+
},
|
|
93
|
+
"@typescript-eslint/typescript-estree": {
|
|
94
|
+
"brace-expansion": "^5.0.6"
|
|
95
|
+
},
|
|
96
|
+
"istanbul-lib-processinfo": {
|
|
97
|
+
"brace-expansion": "^5.0.6"
|
|
98
|
+
},
|
|
99
|
+
"spawn-wrap": {
|
|
100
|
+
"brace-expansion": "^5.0.6"
|
|
101
|
+
},
|
|
102
|
+
"test-exclude": {
|
|
103
|
+
"brace-expansion": "^5.0.6"
|
|
104
|
+
},
|
|
105
|
+
"codecov": {
|
|
106
|
+
"js-yaml": "^3.14.2"
|
|
107
|
+
},
|
|
108
|
+
"mocha": {
|
|
109
|
+
"minimatch": "^9.0.9"
|
|
110
|
+
}
|
|
111
|
+
}
|
|
88
112
|
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|