@datadog/pprof 6.0.0-pre-fdd7f20 → 6.0.0-pre-83708df

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.
Files changed (69) hide show
  1. package/out/src/heap-profiler-bindings.d.ts +1 -1
  2. package/out/src/heap-profiler.d.ts +1 -1
  3. package/out/src/profile-serializer.d.ts +2 -1
  4. package/out/src/profile-serializer.js +10 -2
  5. package/out/src/profile-serializer.js.map +1 -1
  6. package/out/src/sourcemapper/sourcemapper.d.ts +38 -7
  7. package/out/src/sourcemapper/sourcemapper.js +265 -75
  8. package/out/src/sourcemapper/sourcemapper.js.map +1 -1
  9. package/out/src/time-profiler.d.ts +7 -3
  10. package/out/src/time-profiler.js +31 -21
  11. package/out/src/time-profiler.js.map +1 -1
  12. package/out/src/v8-types.d.ts +2 -0
  13. package/package.json +8 -12
  14. package/prebuilds/darwin-arm64/node-108.node +0 -0
  15. package/prebuilds/darwin-arm64/node-111.node +0 -0
  16. package/prebuilds/darwin-arm64/node-115.node +0 -0
  17. package/prebuilds/darwin-arm64/node-120.node +0 -0
  18. package/prebuilds/darwin-arm64/node-127.node +0 -0
  19. package/prebuilds/darwin-arm64/node-131.node +0 -0
  20. package/prebuilds/darwin-arm64/node-137.node +0 -0
  21. package/prebuilds/darwin-arm64/node-141.node +0 -0
  22. package/prebuilds/darwin-x64/node-108.node +0 -0
  23. package/prebuilds/darwin-x64/node-111.node +0 -0
  24. package/prebuilds/darwin-x64/node-115.node +0 -0
  25. package/prebuilds/darwin-x64/node-120.node +0 -0
  26. package/prebuilds/darwin-x64/node-127.node +0 -0
  27. package/prebuilds/darwin-x64/node-131.node +0 -0
  28. package/prebuilds/darwin-x64/node-137.node +0 -0
  29. package/prebuilds/darwin-x64/node-141.node +0 -0
  30. package/prebuilds/linuxglibc-arm64/node-108.node +0 -0
  31. package/prebuilds/linuxglibc-arm64/node-111.node +0 -0
  32. package/prebuilds/linuxglibc-arm64/node-115.node +0 -0
  33. package/prebuilds/linuxglibc-arm64/node-120.node +0 -0
  34. package/prebuilds/linuxglibc-arm64/node-127.node +0 -0
  35. package/prebuilds/linuxglibc-arm64/node-131.node +0 -0
  36. package/prebuilds/linuxglibc-arm64/node-137.node +0 -0
  37. package/prebuilds/linuxglibc-arm64/node-141.node +0 -0
  38. package/prebuilds/linuxglibc-x64/node-108.node +0 -0
  39. package/prebuilds/linuxglibc-x64/node-111.node +0 -0
  40. package/prebuilds/linuxglibc-x64/node-115.node +0 -0
  41. package/prebuilds/linuxglibc-x64/node-120.node +0 -0
  42. package/prebuilds/linuxglibc-x64/node-127.node +0 -0
  43. package/prebuilds/linuxglibc-x64/node-131.node +0 -0
  44. package/prebuilds/linuxglibc-x64/node-137.node +0 -0
  45. package/prebuilds/linuxglibc-x64/node-141.node +0 -0
  46. package/prebuilds/linuxmusl-arm64/node-108.node +0 -0
  47. package/prebuilds/linuxmusl-arm64/node-111.node +0 -0
  48. package/prebuilds/linuxmusl-arm64/node-115.node +0 -0
  49. package/prebuilds/linuxmusl-arm64/node-120.node +0 -0
  50. package/prebuilds/linuxmusl-arm64/node-127.node +0 -0
  51. package/prebuilds/linuxmusl-arm64/node-131.node +0 -0
  52. package/prebuilds/linuxmusl-arm64/node-137.node +0 -0
  53. package/prebuilds/linuxmusl-arm64/node-141.node +0 -0
  54. package/prebuilds/linuxmusl-x64/node-108.node +0 -0
  55. package/prebuilds/linuxmusl-x64/node-111.node +0 -0
  56. package/prebuilds/linuxmusl-x64/node-115.node +0 -0
  57. package/prebuilds/linuxmusl-x64/node-120.node +0 -0
  58. package/prebuilds/linuxmusl-x64/node-127.node +0 -0
  59. package/prebuilds/linuxmusl-x64/node-131.node +0 -0
  60. package/prebuilds/linuxmusl-x64/node-137.node +0 -0
  61. package/prebuilds/linuxmusl-x64/node-141.node +0 -0
  62. package/prebuilds/win32-x64/node-108.node +0 -0
  63. package/prebuilds/win32-x64/node-111.node +0 -0
  64. package/prebuilds/win32-x64/node-115.node +0 -0
  65. package/prebuilds/win32-x64/node-120.node +0 -0
  66. package/prebuilds/win32-x64/node-127.node +0 -0
  67. package/prebuilds/win32-x64/node-131.node +0 -0
  68. package/prebuilds/win32-x64/node-137.node +0 -0
  69. package/prebuilds/win32-x64/node-141.node +0 -0
@@ -18,4 +18,4 @@ export declare function startSamplingHeapProfiler(heapIntervalBytes: number, hea
18
18
  export declare function stopSamplingHeapProfiler(): void;
19
19
  export declare function mapAllocationProfile<T>(callback: (root: AllocationProfileNode) => T): T;
20
20
  export type NearHeapLimitCallback = (profile: AllocationProfileNode) => void;
21
- export declare function monitorOutOfMemory(heapLimitExtensionSize: number, maxHeapLimitExtensionCount: number, dumpHeapProfileOnSdterr: boolean, exportCommand: Array<String> | undefined, callback: NearHeapLimitCallback | undefined, callbackMode: number, isMainThread: boolean): void;
21
+ export declare function monitorOutOfMemory(heapLimitExtensionSize: number, maxHeapLimitExtensionCount: number, dumpHeapProfileOnSdterr: boolean, exportCommand: Array<string> | undefined, callback: NearHeapLimitCallback | undefined, callbackMode: number, isMainThread: boolean): void;
@@ -81,4 +81,4 @@ export declare const CallbackMode: {
81
81
  * @param callback - callback to call when OOM occurs
82
82
  * @param callbackMode
83
83
  */
84
- export declare function monitorOutOfMemory(heapLimitExtensionSize: number, maxHeapLimitExtensionCount: number, dumpHeapProfileOnSdterr: boolean, exportCommand?: Array<String>, callback?: NearHeapLimitCallback, callbackMode?: number): void;
84
+ export declare function monitorOutOfMemory(heapLimitExtensionSize: number, maxHeapLimitExtensionCount: number, dumpHeapProfileOnSdterr: boolean, exportCommand?: Array<string>, callback?: NearHeapLimitCallback, callbackMode?: number): void;
@@ -15,9 +15,10 @@
15
15
  */
16
16
  import { Profile } from 'pprof-format';
17
17
  import { SourceMapper } from './sourcemapper/sourcemapper';
18
- import { AllocationProfileNode, GenerateAllocationLabelsFunction, GenerateTimeLabelsFunction, TimeProfile } from './v8-types';
18
+ import { AllocationProfileNode, 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
+ export declare function computeTotalHitCount(root: TimeProfileNode): number;
21
22
  /**
22
23
  * Converts v8 time profile into into a profile proto.
23
24
  * (https://github.com/google/pprof/blob/master/proto/profile.proto)
@@ -16,6 +16,7 @@
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.GARBAGE_COLLECTION_FUNCTION_NAME = exports.NON_JS_THREADS_FUNCTION_NAME = void 0;
19
+ exports.computeTotalHitCount = computeTotalHitCount;
19
20
  exports.serializeTimeProfile = serializeTimeProfile;
20
21
  exports.serializeHeapProfile = serializeHeapProfile;
21
22
  const pprof_format_1 = require("pprof-format");
@@ -44,6 +45,7 @@ function serialize(profile, root, appendToSamples, stringTable, ignoreSamplesPat
44
45
  const functions = [];
45
46
  const functionIdMap = new Map();
46
47
  const locationIdMap = new Map();
48
+ let hasMissingMapFiles = false;
47
49
  const entries = root.children.map((n) => ({
48
50
  node: n,
49
51
  stack: [],
@@ -70,6 +72,9 @@ function serialize(profile, root, appendToSamples, stringTable, ignoreSamplesPat
70
72
  profile.location = locations;
71
73
  profile.function = functions;
72
74
  profile.stringTable = stringTable;
75
+ if (hasMissingMapFiles) {
76
+ profile.comment = [stringTable.dedup('dd:has-missing-map-files')];
77
+ }
73
78
  function getLocation(node, scriptName, sourceMapper) {
74
79
  let profLoc = {
75
80
  file: scriptName || '',
@@ -80,6 +85,9 @@ function serialize(profile, root, appendToSamples, stringTable, ignoreSamplesPat
80
85
  if (profLoc.line) {
81
86
  if (sourceMapper && isGeneratedLocation(profLoc)) {
82
87
  profLoc = sourceMapper.mappingInfo(profLoc);
88
+ if (profLoc.missingMapFile) {
89
+ hasMissingMapFiles = true;
90
+ }
83
91
  }
84
92
  }
85
93
  const keyStr = `${node.scriptId}:${profLoc.line}:${profLoc.column}:${profLoc.name}`;
@@ -277,7 +285,7 @@ function serializeTimeProfile(prof, intervalMicros, sourceMapper, recomputeSampl
277
285
  // For very short durations, computation becomes meaningless (eg. if there is only one hit),
278
286
  // therefore keep intervalMicros as a lower bound and 2 * intervalMicros as upper bound.
279
287
  if (recomputeSamplingInterval) {
280
- const totalHitCount = computeTotalHitCount(prof.topDownRoot);
288
+ const totalHitCount = prof.totalHitCount ?? computeTotalHitCount(prof.topDownRoot);
281
289
  if (totalHitCount > 0) {
282
290
  intervalMicros = Math.min(Math.max(Math.floor((prof.endTime - prof.startTime) / totalHitCount), intervalMicros), 2 * intervalMicros);
283
291
  }
@@ -314,7 +322,7 @@ function serializeTimeProfile(prof, intervalMicros, sourceMapper, recomputeSampl
314
322
  for (const context of entry.node.contexts || []) {
315
323
  const labels = generateLabels
316
324
  ? generateLabels({ node: entry.node, context })
317
- : context.context ?? {};
325
+ : (context.context ?? {});
318
326
  const labelsArr = buildLabels(labels, stringTable);
319
327
  if (labelsArr.length > 0) {
320
328
  // Only assign wall time if there are hits, some special nodes such as `(Non-JS threads)`
@@ -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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"}
@@ -14,6 +14,27 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import * as sourceMap from 'source-map';
17
+ export declare const ANNOTATION_TAIL_BYTES: number;
18
+ /**
19
+ * Extracts a sourceMappingURL from JS source per ECMA-426 §11.1.2.1
20
+ * (without-parsing variant).
21
+ *
22
+ * Scans lines from the end, skipping empty/whitespace-only lines.
23
+ * Returns null as soon as the first non-empty line is found that does not
24
+ * carry a valid annotation — the URL must be on the last non-empty line.
25
+ */
26
+ export declare function extractSourceMappingURL(content: string): string | undefined;
27
+ /**
28
+ * Reads the sourceMappingURL from a JS file efficiently by only reading a
29
+ * small tail of the file.
30
+ *
31
+ * The annotation must be on the last non-empty line (ECMA-426), so as long as
32
+ * the tail contains at least one line terminator the last line is fully
33
+ * captured. If no line terminator appears in the tail the entire tail is part
34
+ * of one very long inline data: line; we fall back to a full file read in
35
+ * that case.
36
+ */
37
+ export declare function readSourceMappingURL(filePath: string): Promise<string | undefined>;
17
38
  export interface MapInfoCompiled {
18
39
  mapFileDir: string;
19
40
  mapConsumer: sourceMap.RawSourceMap;
@@ -29,20 +50,30 @@ export interface SourceLocation {
29
50
  name?: string;
30
51
  line?: number;
31
52
  column?: number;
53
+ /** True when the file declares a sourceMappingURL but the map could not be found. */
54
+ missingMapFile?: boolean;
32
55
  }
33
56
  export declare class SourceMapper {
34
57
  infoMap: Map<string, MapInfoCompiled>;
58
+ /** JS files that declared a sourceMappingURL but no map was ultimately found. */
59
+ private declaredMissingMap;
35
60
  debug: boolean;
36
61
  static create(searchDirs: string[], debug?: boolean): Promise<SourceMapper>;
62
+ constructor(debug?: boolean);
37
63
  /**
38
- * @param {Array.<string>} sourceMapPaths An array of paths to .map source map
39
- * files that should be processed. The paths should be relative to the
40
- * current process's current working directory
41
- * @param {Logger} logger A logger that reports errors that occurred while
42
- * processing the given source map files
43
- * @constructor
64
+ * Scans `searchDir` recursively for JS files and source map files, loading
65
+ * source maps for all JS files found.
66
+ *
67
+ * Priority for each JS file:
68
+ * 1. A map pointed to by a `sourceMappingURL` annotation in the JS file
69
+ * (inline `data:` URL or external file path, only if the file exists).
70
+ * 2. A `.map` file found in the directory scan that claims to belong to
71
+ * that JS file (via its `file` property or naming convention).
72
+ *
73
+ * Safe to call multiple times; already-loaded files are skipped.
44
74
  */
45
- constructor(debug?: boolean);
75
+ loadDirectory(searchDir: string): Promise<void>;
76
+ private loadMapContent;
46
77
  /**
47
78
  * Used to get the information about the transpiled file from a given input
48
79
  * source file provided there isn't any ambiguity with associating the input
@@ -47,11 +47,10 @@ var __importStar = (this && this.__importStar) || (function () {
47
47
  return result;
48
48
  };
49
49
  })();
50
- var __importDefault = (this && this.__importDefault) || function (mod) {
51
- return (mod && mod.__esModule) ? mod : { "default": mod };
52
- };
53
50
  Object.defineProperty(exports, "__esModule", { value: true });
54
- exports.SourceMapper = void 0;
51
+ exports.SourceMapper = exports.ANNOTATION_TAIL_BYTES = void 0;
52
+ exports.extractSourceMappingURL = extractSourceMappingURL;
53
+ exports.readSourceMappingURL = readSourceMappingURL;
55
54
  // Originally copied from cloud-debug-nodejs's sourcemapper.ts from
56
55
  // https://github.com/googleapis/cloud-debug-nodejs/blob/7bdc2f1f62a3b45b7b53ea79f9444c8ed50e138b/src/agent/io/sourcemapper.ts
57
56
  // Modified to map from generated code to source code, rather than from source
@@ -60,10 +59,115 @@ const fs = __importStar(require("fs"));
60
59
  const path = __importStar(require("path"));
61
60
  const sourceMap = __importStar(require("source-map"));
62
61
  const logger_1 = require("../logger");
63
- const p_limit_1 = __importDefault(require("p-limit"));
64
62
  const readFile = fs.promises.readFile;
65
63
  const CONCURRENCY = 10;
64
+ function createLimiter(concurrency) {
65
+ let active = 0;
66
+ const queue = [];
67
+ return function limit(fn) {
68
+ return new Promise((resolve, reject) => {
69
+ const run = () => {
70
+ active++;
71
+ fn()
72
+ .then(resolve, reject)
73
+ .finally(() => {
74
+ active--;
75
+ if (queue.length > 0)
76
+ queue.shift()();
77
+ });
78
+ };
79
+ if (active < concurrency)
80
+ run();
81
+ else
82
+ queue.push(run);
83
+ });
84
+ };
85
+ }
66
86
  const MAP_EXT = '.map';
87
+ // Per TC39 ECMA-426 §11.1.2.1 JavaScriptExtractSourceMapURL (without parsing):
88
+ // https://tc39.es/ecma426/#sec-linking-inline
89
+ //
90
+ // Split on these line terminators (ECMA-262 LineTerminatorSequence):
91
+ const LINE_SPLIT_RE = /\r\n|\n|\r|\u2028|\u2029/;
92
+ // Bytes to read from the end of a JS file when scanning for the annotation.
93
+ // The annotation must be on the last non-empty line, which is always short
94
+ // for external URLs. If no line terminator appears in the tail we fall back
95
+ // to a full file read (handles very large inline data: maps).
96
+ exports.ANNOTATION_TAIL_BYTES = 4 * 1024;
97
+ // Quote code points that invalidate the annotation (U+0022, U+0027, U+0060):
98
+ const QUOTE_CHARS_RE = /["'`]/;
99
+ // MatchSourceMapURL pattern applied to the comment text that follows "//":
100
+ const MATCH_SOURCE_MAP_URL_RE = /^[@#]\s*sourceMappingURL=(\S*?)\s*$/;
101
+ /**
102
+ * Extracts a sourceMappingURL from JS source per ECMA-426 §11.1.2.1
103
+ * (without-parsing variant).
104
+ *
105
+ * Scans lines from the end, skipping empty/whitespace-only lines.
106
+ * Returns null as soon as the first non-empty line is found that does not
107
+ * carry a valid annotation — the URL must be on the last non-empty line.
108
+ */
109
+ function extractSourceMappingURL(content) {
110
+ const lines = content.split(LINE_SPLIT_RE);
111
+ for (let i = lines.length - 1; i >= 0; i--) {
112
+ const line = lines[i];
113
+ if (line.trim() === '')
114
+ continue; // skip empty / whitespace-only lines
115
+ // This is the last non-empty line; it must carry the annotation or we stop.
116
+ const commentStart = line.indexOf('//');
117
+ if (commentStart === -1)
118
+ return undefined;
119
+ const comment = line.slice(commentStart + 2);
120
+ if (QUOTE_CHARS_RE.test(comment))
121
+ return undefined;
122
+ const match = MATCH_SOURCE_MAP_URL_RE.exec(comment);
123
+ return match ? match[1] || undefined : undefined;
124
+ }
125
+ return undefined;
126
+ }
127
+ /**
128
+ * Reads the sourceMappingURL from a JS file efficiently by only reading a
129
+ * small tail of the file.
130
+ *
131
+ * The annotation must be on the last non-empty line (ECMA-426), so as long as
132
+ * the tail contains at least one line terminator the last line is fully
133
+ * captured. If no line terminator appears in the tail the entire tail is part
134
+ * of one very long inline data: line; we fall back to a full file read in
135
+ * that case.
136
+ */
137
+ async function readSourceMappingURL(filePath) {
138
+ const fd = await fs.promises.open(filePath, 'r');
139
+ try {
140
+ const { size } = await fd.stat();
141
+ if (size === 0)
142
+ return undefined;
143
+ const tailSize = Math.min(exports.ANNOTATION_TAIL_BYTES, size);
144
+ const buf = Buffer.allocUnsafe(tailSize);
145
+ await fd.read(buf, 0, tailSize, size - tailSize);
146
+ const tail = buf.toString('utf8');
147
+ // The last non-empty line is fully captured in the tail if and only if a
148
+ // line terminator that precedes it also falls within the tail — i.e. the
149
+ // last non-empty segment is not the very first element of the split result.
150
+ //
151
+ // Counter-example: a large inline map followed by trailing empty lines.
152
+ // The tail might be "<end of base64>\n\n", which contains line terminators
153
+ // but whose last non-empty content ("<end of base64>") is the first
154
+ // segment — it extends before the window. Checking LINE_TERM_RE alone
155
+ // would incorrectly accept this tail.
156
+ const lines = tail.split(LINE_SPLIT_RE);
157
+ let lastNonEmptyIdx = lines.length - 1;
158
+ while (lastNonEmptyIdx > 0 && lines[lastNonEmptyIdx].trim() === '') {
159
+ lastNonEmptyIdx--;
160
+ }
161
+ if (tailSize === size || lastNonEmptyIdx > 0) {
162
+ return extractSourceMappingURL(tail);
163
+ }
164
+ const fullContent = await readFile(filePath, 'utf8');
165
+ return extractSourceMappingURL(fullContent);
166
+ }
167
+ finally {
168
+ await fd.close();
169
+ }
170
+ }
67
171
  function error(msg) {
68
172
  logger_1.logger.debug(`Error: ${msg}`);
69
173
  return new Error(msg);
@@ -89,23 +193,6 @@ async function processSourceMap(infoMap, mapPath, debug) {
89
193
  catch (e) {
90
194
  throw error('Could not read source map file ' + mapPath + ': ' + e);
91
195
  }
92
- let consumer;
93
- try {
94
- // TODO: Determine how to reconsile the type conflict where `consumer`
95
- // is constructed as a SourceMapConsumer but is used as a
96
- // RawSourceMap.
97
- // TODO: Resolve the cast of `contents as any` (This is needed because the
98
- // type is expected to be of `RawSourceMap` but the existing
99
- // working code uses a string.)
100
- consumer = (await new sourceMap.SourceMapConsumer(contents));
101
- }
102
- catch (e) {
103
- throw error('An error occurred while reading the ' +
104
- 'sourceMap file ' +
105
- mapPath +
106
- ': ' +
107
- e);
108
- }
109
196
  /* If the source map file defines a "file" attribute, use it as
110
197
  * the output file where the path is relative to the directory
111
198
  * containing the map file. Otherwise, use the name of the output
@@ -123,67 +210,186 @@ async function processSourceMap(infoMap, mapPath, debug) {
123
210
  * source map file.
124
211
  */
125
212
  const dir = path.dirname(mapPath);
213
+ // Parse JSON once: extract the `file` property for early-exit checks and
214
+ // reuse the parsed object when constructing SourceMapConsumer (avoids a
215
+ // second parse inside the library).
216
+ let parsedMap;
217
+ let rawFile;
218
+ try {
219
+ parsedMap = JSON.parse(contents);
220
+ rawFile = parsedMap.file;
221
+ }
222
+ catch {
223
+ // Will fail again below when creating SourceMapConsumer; let that throw.
224
+ }
126
225
  const generatedPathCandidates = [];
127
- if (consumer.file) {
128
- generatedPathCandidates.push(path.resolve(dir, consumer.file));
226
+ if (rawFile) {
227
+ generatedPathCandidates.push(path.resolve(dir, rawFile));
129
228
  }
130
229
  const samePath = path.resolve(dir, path.basename(mapPath, MAP_EXT));
131
230
  if (generatedPathCandidates.length === 0 ||
132
231
  generatedPathCandidates[0] !== samePath) {
133
232
  generatedPathCandidates.push(samePath);
134
233
  }
135
- for (const generatedPath of generatedPathCandidates) {
136
- try {
137
- await fs.promises.access(generatedPath, fs.constants.F_OK);
138
- infoMap.set(generatedPath, { mapFileDir: dir, mapConsumer: consumer });
234
+ // Find the first candidate that exists and hasn't been loaded already.
235
+ let targetPath;
236
+ for (const candidate of generatedPathCandidates) {
237
+ if (infoMap.has(candidate)) {
238
+ // Already loaded via sourceMappingURL annotation; skip this map file.
139
239
  if (debug) {
140
- logger_1.logger.debug(`Loaded source map for ${generatedPath} => ${mapPath}`);
240
+ logger_1.logger.debug(`Skipping ${mapPath}: ${candidate} already loaded via sourceMappingURL`);
141
241
  }
142
242
  return;
143
243
  }
144
- catch (err) {
244
+ try {
245
+ await fs.promises.access(candidate, fs.constants.F_OK);
246
+ targetPath = candidate;
247
+ break;
248
+ }
249
+ catch {
145
250
  if (debug) {
146
- logger_1.logger.debug(`Generated path ${generatedPath} does not exist`);
251
+ logger_1.logger.debug(`Generated path ${candidate} does not exist`);
147
252
  }
148
253
  }
149
254
  }
255
+ if (!targetPath) {
256
+ if (debug) {
257
+ logger_1.logger.debug(`Unable to find generated file for ${mapPath}`);
258
+ }
259
+ return;
260
+ }
261
+ let consumer;
262
+ try {
263
+ // TODO: Determine how to reconsile the type conflict where `consumer`
264
+ // is constructed as a SourceMapConsumer but is used as a
265
+ // RawSourceMap.
266
+ consumer = (await new sourceMap.SourceMapConsumer((parsedMap ?? contents)));
267
+ }
268
+ catch (e) {
269
+ throw error('An error occurred while reading the ' +
270
+ 'sourceMap file ' +
271
+ mapPath +
272
+ ': ' +
273
+ e);
274
+ }
275
+ infoMap.set(targetPath, { mapFileDir: dir, mapConsumer: consumer });
150
276
  if (debug) {
151
- logger_1.logger.debug(`Unable to find generated file for ${mapPath}`);
277
+ logger_1.logger.debug(`Loaded source map for ${targetPath} => ${mapPath}`);
152
278
  }
153
279
  }
154
280
  class SourceMapper {
155
281
  static async create(searchDirs, debug = false) {
156
- if (debug) {
157
- logger_1.logger.debug(`Looking for source map files in dirs: [${searchDirs.join(', ')}]`);
282
+ const mapper = new SourceMapper(debug);
283
+ for (const dir of searchDirs) {
284
+ await mapper.loadDirectory(dir);
158
285
  }
286
+ return mapper;
287
+ }
288
+ constructor(debug = false) {
289
+ /** JS files that declared a sourceMappingURL but no map was ultimately found. */
290
+ this.declaredMissingMap = new Set();
291
+ this.infoMap = new Map();
292
+ this.debug = debug;
293
+ }
294
+ /**
295
+ * Scans `searchDir` recursively for JS files and source map files, loading
296
+ * source maps for all JS files found.
297
+ *
298
+ * Priority for each JS file:
299
+ * 1. A map pointed to by a `sourceMappingURL` annotation in the JS file
300
+ * (inline `data:` URL or external file path, only if the file exists).
301
+ * 2. A `.map` file found in the directory scan that claims to belong to
302
+ * that JS file (via its `file` property or naming convention).
303
+ *
304
+ * Safe to call multiple times; already-loaded files are skipped.
305
+ */
306
+ async loadDirectory(searchDir) {
307
+ // Resolve to absolute so all paths in infoMap are consistent regardless of
308
+ // whether the caller passed a relative or absolute directory.
309
+ searchDir = path.resolve(searchDir);
310
+ if (this.debug) {
311
+ logger_1.logger.debug(`Loading source maps from directory: ${searchDir}`);
312
+ }
313
+ const jsFiles = [];
159
314
  const mapFiles = [];
160
- for (const dir of searchDirs) {
161
- try {
162
- const mf = await getMapFiles(dir);
163
- mf.forEach(mapFile => {
164
- mapFiles.push(path.resolve(dir, mapFile));
165
- });
315
+ for await (const entry of walk(searchDir, filename => /\.[cm]?js$/.test(filename) || /\.[cm]?js\.map$/.test(filename), (root, dirname) => root !== '/proc' && dirname !== '.git' && dirname !== 'node_modules')) {
316
+ if (entry.endsWith(MAP_EXT)) {
317
+ mapFiles.push(entry);
166
318
  }
167
- catch (e) {
168
- throw error(`failed to get source maps from ${dir}: ${e}`);
319
+ else {
320
+ jsFiles.push(entry);
169
321
  }
170
322
  }
171
- if (debug) {
172
- logger_1.logger.debug(`Found source map files: [${mapFiles.join(', ')}]`);
323
+ if (this.debug) {
324
+ logger_1.logger.debug(`Found ${jsFiles.length} JS files and ${mapFiles.length} map files in ${searchDir}`);
325
+ }
326
+ const limit = createLimiter(CONCURRENCY);
327
+ // JS files that declared a sourceMappingURL but Phase 1 couldn't load the map.
328
+ const annotatedNotLoaded = new Set();
329
+ // Phase 1: Check sourceMappingURL annotations in JS files (higher priority).
330
+ await Promise.all(jsFiles.map(jsPath => limit(async () => {
331
+ if (this.infoMap.has(jsPath))
332
+ return;
333
+ let url;
334
+ try {
335
+ url = await readSourceMappingURL(jsPath);
336
+ }
337
+ catch {
338
+ return;
339
+ }
340
+ if (!url)
341
+ return;
342
+ if (url.startsWith('data:')) {
343
+ // Inline source map data URL. Handles both:
344
+ // data:application/json;base64,<b64>
345
+ // data:application/json;charset=utf-8;base64,<b64>
346
+ // data:application/json,<urlencoded> (and other non-base64 forms)
347
+ const commaIdx = url.indexOf(',');
348
+ if (commaIdx !== -1) {
349
+ const meta = url.slice(0, commaIdx);
350
+ const data = url.slice(commaIdx + 1);
351
+ const mapContent = meta.endsWith(';base64')
352
+ ? Buffer.from(data, 'base64').toString()
353
+ : decodeURIComponent(data);
354
+ await this.loadMapContent(jsPath, mapContent, path.dirname(jsPath));
355
+ }
356
+ // If the data URL is malformed (no comma), skip silently — not a
357
+ // missing map file, just an unreadable inline annotation.
358
+ }
359
+ else {
360
+ const mapPath = path.resolve(path.dirname(jsPath), url);
361
+ try {
362
+ const mapContent = await readFile(mapPath, 'utf8');
363
+ await this.loadMapContent(jsPath, mapContent, path.dirname(mapPath));
364
+ }
365
+ catch {
366
+ // Map file doesn't exist or is unreadable; fall through to Phase 2.
367
+ annotatedNotLoaded.add(jsPath);
368
+ }
369
+ }
370
+ })));
371
+ // Phase 2: Process .map files for any JS files not yet resolved.
372
+ await Promise.all(mapFiles.map(mapPath => limit(() => processSourceMap(this.infoMap, mapPath, this.debug))));
373
+ // Any file whose annotation pointed to a missing map and that still has no
374
+ // entry after Phase 2 is tracked as "declared but missing".
375
+ for (const jsPath of annotatedNotLoaded) {
376
+ if (!this.infoMap.has(jsPath)) {
377
+ this.declaredMissingMap.add(jsPath);
378
+ }
173
379
  }
174
- return createFromMapFiles(mapFiles, debug);
175
380
  }
176
- /**
177
- * @param {Array.<string>} sourceMapPaths An array of paths to .map source map
178
- * files that should be processed. The paths should be relative to the
179
- * current process's current working directory
180
- * @param {Logger} logger A logger that reports errors that occurred while
181
- * processing the given source map files
182
- * @constructor
183
- */
184
- constructor(debug = false) {
185
- this.infoMap = new Map();
186
- this.debug = debug;
381
+ async loadMapContent(jsPath, mapContent, mapDir) {
382
+ try {
383
+ const parsedMap = JSON.parse(mapContent);
384
+ const consumer = (await new sourceMap.SourceMapConsumer(parsedMap));
385
+ this.infoMap.set(jsPath, { mapFileDir: mapDir, mapConsumer: consumer });
386
+ if (this.debug) {
387
+ logger_1.logger.debug(`Loaded source map for ${jsPath} via sourceMappingURL`);
388
+ }
389
+ }
390
+ catch (e) {
391
+ logger_1.logger.debug(`Failed to parse source map for ${jsPath}: ${e}`);
392
+ }
187
393
  }
188
394
  /**
189
395
  * Used to get the information about the transpiled file from a given input
@@ -245,6 +451,9 @@ class SourceMapper {
245
451
  if (this.debug) {
246
452
  logger_1.logger.debug(`Source map lookup failed: no map found for ${location.file} (normalized: ${inputPath})`);
247
453
  }
454
+ if (this.declaredMissingMap.has(inputPath)) {
455
+ return { ...location, missingMapFile: true };
456
+ }
248
457
  return location;
249
458
  }
250
459
  const generatedPos = {
@@ -279,18 +488,6 @@ class SourceMapper {
279
488
  }
280
489
  }
281
490
  exports.SourceMapper = SourceMapper;
282
- async function createFromMapFiles(mapFiles, debug) {
283
- const limit = (0, p_limit_1.default)(CONCURRENCY);
284
- const mapper = new SourceMapper(debug);
285
- const promises = mapFiles.map(mapPath => limit(() => processSourceMap(mapper.infoMap, mapPath, debug)));
286
- try {
287
- await Promise.all(promises);
288
- }
289
- catch (err) {
290
- throw error('An error occurred while processing the source map files' + err);
291
- }
292
- return mapper;
293
- }
294
491
  function isErrnoException(e) {
295
492
  return e instanceof Error && 'code' in e;
296
493
  }
@@ -328,11 +525,4 @@ directoryFilter = (root, dirname) => true) {
328
525
  }
329
526
  yield* walkRecursive(dir);
330
527
  }
331
- async function getMapFiles(baseDir) {
332
- const mapFiles = [];
333
- for await (const entry of walk(baseDir, filename => /\.[cm]?js\.map$/.test(filename), (root, dirname) => root !== '/proc' && dirname !== '.git' && dirname !== 'node_modules')) {
334
- mapFiles.push(path.relative(baseDir, entry));
335
- }
336
- return mapFiles;
337
- }
338
528
  //# sourceMappingURL=sourcemapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"sourcemapper.js","sourceRoot":"","sources":["../../../ts/src/sourcemapper/sourcemapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sourcemapper.js","sourceRoot":"","sources":["../../../ts/src/sourcemapper/sourcemapper.ts"],"names":[],"mappings":"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"}
@@ -37,12 +37,16 @@ export interface TimeProfilerOptions {
37
37
  collectAsyncId?: boolean;
38
38
  useCPED?: boolean;
39
39
  }
40
- export declare function profile(options?: TimeProfilerOptions): Promise<import("pprof-format").Profile>;
40
+ export declare function profile(options?: TimeProfilerOptions): Promise<any>;
41
41
  export declare function start(options?: TimeProfilerOptions): void;
42
- export declare function stop(restart?: boolean, generateLabels?: GenerateTimeLabelsFunction, lowCardinalityLabels?: string[]): import("pprof-format").Profile;
42
+ /**
43
+ * Serializes the profile inside a native callback while the V8 profile is
44
+ * still alive. This reduces memory overhead.
45
+ */
46
+ export declare function stop(restart?: boolean, generateLabels?: GenerateTimeLabelsFunction, lowCardinalityLabels?: string[]): any;
43
47
  export declare function getState(): any;
44
48
  export declare function setContext(context?: object): void;
45
- export declare function runWithContext<R, TArgs extends any[]>(context: object, f: (...args: TArgs) => R, ...args: TArgs): R;
49
+ export declare function runWithContext<R, TArgs extends unknown[]>(context: object, f: (...args: TArgs) => R, ...args: TArgs): R;
46
50
  export declare function getContext(): any;
47
51
  export declare function getMetrics(): TimeProfilerMetrics;
48
52
  export declare function isStarted(): boolean;
@@ -40,6 +40,30 @@ let gStore;
40
40
  let gSourceMapper;
41
41
  let gIntervalMicros;
42
42
  let gV8ProfilerStuckEventLoopDetected = 0;
43
+ function handleStopRestart() {
44
+ if (!gProfiler) {
45
+ return;
46
+ }
47
+ gV8ProfilerStuckEventLoopDetected =
48
+ gProfiler.v8ProfilerStuckEventLoopDetected();
49
+ // Workaround for v8 bug, where profiler event processor thread is stuck in
50
+ // a loop eating 100% CPU, leading to empty profiles.
51
+ // Fully stop and restart the profiler to reset the profile to a valid state.
52
+ if (gV8ProfilerStuckEventLoopDetected > 0) {
53
+ gProfiler.stopAndCollect(false, () => undefined);
54
+ gProfiler.start();
55
+ }
56
+ }
57
+ function handleStopNoRestart() {
58
+ gV8ProfilerStuckEventLoopDetected = 0;
59
+ gProfiler?.dispose();
60
+ gProfiler = undefined;
61
+ gSourceMapper = undefined;
62
+ if (gStore !== undefined) {
63
+ gStore.disable();
64
+ gStore = undefined;
65
+ }
66
+ }
43
67
  /** Make sure to stop profiler before node shuts down, otherwise profiling
44
68
  * signal might cause a crash if it occurs during shutdown */
45
69
  process.once('exit', () => {
@@ -80,34 +104,20 @@ function start(options = {}) {
80
104
  setContext({});
81
105
  }
82
106
  }
107
+ /**
108
+ * Serializes the profile inside a native callback while the V8 profile is
109
+ * still alive. This reduces memory overhead.
110
+ */
83
111
  function stop(restart = false, generateLabels, lowCardinalityLabels) {
84
112
  if (!gProfiler) {
85
113
  throw new Error('Wall profiler is not started');
86
114
  }
87
- const profile = gProfiler.stop(restart);
115
+ const serializedProfile = gProfiler.stopAndCollect(restart, (profile) => (0, profile_serializer_1.serializeTimeProfile)(profile, gIntervalMicros, gSourceMapper, true, generateLabels, lowCardinalityLabels));
88
116
  if (restart) {
89
- gV8ProfilerStuckEventLoopDetected =
90
- gProfiler.v8ProfilerStuckEventLoopDetected();
91
- // Workaround for v8 bug, where profiler event processor thread is stuck in
92
- // a loop eating 100% CPU, leading to empty profiles.
93
- // Fully stop and restart the profiler to reset the profile to a valid state.
94
- if (gV8ProfilerStuckEventLoopDetected > 0) {
95
- gProfiler.stop(false);
96
- gProfiler.start();
97
- }
117
+ handleStopRestart();
98
118
  }
99
119
  else {
100
- gV8ProfilerStuckEventLoopDetected = 0;
101
- }
102
- const serializedProfile = (0, profile_serializer_1.serializeTimeProfile)(profile, gIntervalMicros, gSourceMapper, true, generateLabels, lowCardinalityLabels);
103
- if (!restart) {
104
- gProfiler.dispose();
105
- gProfiler = undefined;
106
- gSourceMapper = undefined;
107
- if (gStore !== undefined) {
108
- gStore.disable();
109
- gStore = undefined;
110
- }
120
+ handleStopNoRestart();
111
121
  }
112
122
  return serializedProfile;
113
123
  }
@@ -1 +1 @@
1
- {"version":3,"file":"time-profiler.js","sourceRoot":"","sources":["../../ts/src/time-profiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"time-profiler.js","sourceRoot":"","sources":["../../ts/src/time-profiler.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,8 @@ export interface TimeProfile {
22
22
  hasCpuTime?: boolean;
23
23
  /** CPU time of non-JS threads, only reported for the main worker thread */
24
24
  nonJSThreadsCpuTime?: number;
25
+ /** Computed in C++ to avoid a full JS tree traversal. */
26
+ totalHitCount?: number;
25
27
  }
26
28
  export interface ProfileNode {
27
29
  name?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datadog/pprof",
3
- "version": "6.0.0-pre-fdd7f20",
3
+ "version": "6.0.0-pre-83708df",
4
4
  "description": "pprof support for Node.js",
5
5
  "repository": {
6
6
  "type": "git",
@@ -37,30 +37,26 @@
37
37
  "license": "Apache-2.0",
38
38
  "dependencies": {
39
39
  "node-gyp-build": "<4.0",
40
- "p-limit": "^3.1.0",
41
40
  "pprof-format": "^2.2.1",
42
41
  "source-map": "^0.7.4"
43
42
  },
44
43
  "devDependencies": {
45
44
  "@types/mocha": "^10.0.1",
46
- "@types/node": "24.3.3",
45
+ "@types/node": "25.5.0",
46
+ "@types/semver": "^7.5.8",
47
47
  "@types/sinon": "^21.0.0",
48
48
  "@types/tmp": "^0.2.3",
49
- "@typescript-eslint/eslint-plugin": "^5.60.1",
50
49
  "clang-format": "^1.8.0",
51
50
  "codecov": "^3.8.3",
52
51
  "deep-copy": "^1.4.2",
53
- "eslint-config-standard": "^17.1.0",
54
- "eslint-plugin-import": "^2.26.0",
55
- "eslint-plugin-n": "^16.0.1",
56
- "eslint-plugin-promise": "^6.1.1",
57
- "gts": "^4.0.1",
52
+ "eslint-plugin-n": "^17.24.0",
53
+ "gts": "^7.0.0",
58
54
  "js-green-licenses": "^4.0.0",
59
55
  "mocha": "^11.7.5",
60
- "nan": "^2.23.1",
61
- "nyc": "^15.1.0",
56
+ "nan": "^2.26.2",
57
+ "nyc": "^18.0.0",
62
58
  "semver": "^7.7.4",
63
- "sinon": "^21.0.1",
59
+ "sinon": "^21.0.3",
64
60
  "source-map-support": "^0.5.21",
65
61
  "tmp": "0.2.5",
66
62
  "typescript": "^5.9.3"
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