@datadog/pprof 5.0.0-pre-39c03d4 → 5.0.0-pre-d624748

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 (80) hide show
  1. package/out/src/heap-profiler-bindings.d.ts +1 -1
  2. package/out/src/heap-profiler-bindings.js +2 -2
  3. package/out/src/heap-profiler-bindings.js.map +1 -1
  4. package/out/src/heap-profiler.d.ts +3 -3
  5. package/out/src/heap-profiler.js +6 -5
  6. package/out/src/heap-profiler.js.map +1 -1
  7. package/out/src/index.d.ts +3 -0
  8. package/out/src/index.js +4 -1
  9. package/out/src/index.js.map +1 -1
  10. package/out/src/profile-serializer.d.ts +4 -3
  11. package/out/src/profile-serializer.js +62 -7
  12. package/out/src/profile-serializer.js.map +1 -1
  13. package/out/src/time-profiler-bindings.d.ts +1 -0
  14. package/out/src/time-profiler-bindings.js +2 -1
  15. package/out/src/time-profiler-bindings.js.map +1 -1
  16. package/out/src/time-profiler.d.ts +9 -5
  17. package/out/src/time-profiler.js +32 -16
  18. package/out/src/time-profiler.js.map +1 -1
  19. package/out/src/v8-types.d.ts +16 -0
  20. package/package.json +1 -1
  21. package/prebuilds/darwin-arm64/node-102.node +0 -0
  22. package/prebuilds/darwin-arm64/node-108.node +0 -0
  23. package/prebuilds/darwin-arm64/node-111.node +0 -0
  24. package/prebuilds/darwin-arm64/node-115.node +0 -0
  25. package/prebuilds/darwin-arm64/node-120.node +0 -0
  26. package/prebuilds/darwin-arm64/node-83.node +0 -0
  27. package/prebuilds/darwin-arm64/node-88.node +0 -0
  28. package/prebuilds/darwin-arm64/node-93.node +0 -0
  29. package/prebuilds/darwin-x64/node-102.node +0 -0
  30. package/prebuilds/darwin-x64/node-108.node +0 -0
  31. package/prebuilds/darwin-x64/node-111.node +0 -0
  32. package/prebuilds/darwin-x64/node-115.node +0 -0
  33. package/prebuilds/darwin-x64/node-120.node +0 -0
  34. package/prebuilds/darwin-x64/node-83.node +0 -0
  35. package/prebuilds/darwin-x64/node-88.node +0 -0
  36. package/prebuilds/darwin-x64/node-93.node +0 -0
  37. package/prebuilds/linux-arm/node-102.node +0 -0
  38. package/prebuilds/linux-arm/node-108.node +0 -0
  39. package/prebuilds/linux-arm/node-111.node +0 -0
  40. package/prebuilds/linux-arm/node-115.node +0 -0
  41. package/prebuilds/linux-arm/node-120.node +0 -0
  42. package/prebuilds/linux-arm/node-83.node +0 -0
  43. package/prebuilds/linux-arm/node-88.node +0 -0
  44. package/prebuilds/linux-arm/node-93.node +0 -0
  45. package/prebuilds/linux-arm64/node-102.node +0 -0
  46. package/prebuilds/linux-arm64/node-108.node +0 -0
  47. package/prebuilds/linux-arm64/node-111.node +0 -0
  48. package/prebuilds/linux-arm64/node-115.node +0 -0
  49. package/prebuilds/linux-arm64/node-120.node +0 -0
  50. package/prebuilds/linux-arm64/node-83.node +0 -0
  51. package/prebuilds/linux-arm64/node-88.node +0 -0
  52. package/prebuilds/linux-arm64/node-93.node +0 -0
  53. package/prebuilds/linux-x64/node-102.node +0 -0
  54. package/prebuilds/linux-x64/node-108.node +0 -0
  55. package/prebuilds/linux-x64/node-111.node +0 -0
  56. package/prebuilds/linux-x64/node-115.node +0 -0
  57. package/prebuilds/linux-x64/node-120.node +0 -0
  58. package/prebuilds/linux-x64/node-83.node +0 -0
  59. package/prebuilds/linux-x64/node-88.node +0 -0
  60. package/prebuilds/linux-x64/node-93.node +0 -0
  61. package/prebuilds/linuxmusl-x64/node-102.node +0 -0
  62. package/prebuilds/linuxmusl-x64/node-108.node +0 -0
  63. package/prebuilds/linuxmusl-x64/node-111.node +0 -0
  64. package/prebuilds/linuxmusl-x64/node-115.node +0 -0
  65. package/prebuilds/linuxmusl-x64/node-120.node +0 -0
  66. package/prebuilds/linuxmusl-x64/node-83.node +0 -0
  67. package/prebuilds/linuxmusl-x64/node-88.node +0 -0
  68. package/prebuilds/linuxmusl-x64/node-93.node +0 -0
  69. package/prebuilds/win32-ia32/node-102.node +0 -0
  70. package/prebuilds/win32-ia32/node-83.node +0 -0
  71. package/prebuilds/win32-ia32/node-88.node +0 -0
  72. package/prebuilds/win32-ia32/node-93.node +0 -0
  73. package/prebuilds/win32-x64/node-102.node +0 -0
  74. package/prebuilds/win32-x64/node-108.node +0 -0
  75. package/prebuilds/win32-x64/node-111.node +0 -0
  76. package/prebuilds/win32-x64/node-115.node +0 -0
  77. package/prebuilds/win32-x64/node-120.node +0 -0
  78. package/prebuilds/win32-x64/node-83.node +0 -0
  79. package/prebuilds/win32-x64/node-88.node +0 -0
  80. package/prebuilds/win32-x64/node-93.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 getAllocationProfile(): AllocationProfileNode;
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): void;
21
+ export declare function monitorOutOfMemory(heapLimitExtensionSize: number, maxHeapLimitExtensionCount: number, dumpHeapProfileOnSdterr: boolean, exportCommand: Array<String> | undefined, callback: NearHeapLimitCallback | undefined, callbackMode: number, isMainThread: boolean): void;
@@ -55,8 +55,8 @@ function getAllocationProfile() {
55
55
  return profiler.heapProfiler.getAllocationProfile();
56
56
  }
57
57
  exports.getAllocationProfile = getAllocationProfile;
58
- function monitorOutOfMemory(heapLimitExtensionSize, maxHeapLimitExtensionCount, dumpHeapProfileOnSdterr, exportCommand, callback, callbackMode) {
59
- profiler.heapProfiler.monitorOutOfMemory(heapLimitExtensionSize, maxHeapLimitExtensionCount, dumpHeapProfileOnSdterr, exportCommand, callback, callbackMode);
58
+ function monitorOutOfMemory(heapLimitExtensionSize, maxHeapLimitExtensionCount, dumpHeapProfileOnSdterr, exportCommand, callback, callbackMode, isMainThread) {
59
+ profiler.heapProfiler.monitorOutOfMemory(heapLimitExtensionSize, maxHeapLimitExtensionCount, dumpHeapProfileOnSdterr, exportCommand, callback, callbackMode, isMainThread);
60
60
  }
61
61
  exports.monitorOutOfMemory = monitorOutOfMemory;
62
62
  //# sourceMappingURL=heap-profiler-bindings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heap-profiler-bindings.js","sourceRoot":"","sources":["../../ts/src/heap-profiler-bindings.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;AAI7B,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;IAEtB,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAC7C,iBAAiB,EACjB,cAAc,CACf,CAAC;AACJ,CAAC;AARD,8DAQC;AAED,SAAgB,wBAAwB;IACtC,QAAQ,CAAC,YAAY,CAAC,wBAAwB,EAAE,CAAC;AACnD,CAAC;AAFD,4DAEC;AAED,SAAgB,oBAAoB;IAClC,OAAO,QAAQ,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;AACtD,CAAC;AAFD,oDAEC;AAID,SAAgB,kBAAkB,CAChC,sBAA8B,EAC9B,0BAAkC,EAClC,uBAAgC,EAChC,aAAwC,EACxC,QAA2C,EAC3C,YAAoB;IAEpB,QAAQ,CAAC,YAAY,CAAC,kBAAkB,CACtC,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,aAAa,EACb,QAAQ,EACR,YAAY,CACb,CAAC;AACJ,CAAC;AAhBD,gDAgBC"}
1
+ {"version":3,"file":"heap-profiler-bindings.js","sourceRoot":"","sources":["../../ts/src/heap-profiler-bindings.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;AAI7B,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;IAEtB,QAAQ,CAAC,YAAY,CAAC,yBAAyB,CAC7C,iBAAiB,EACjB,cAAc,CACf,CAAC;AACJ,CAAC;AARD,8DAQC;AAED,SAAgB,wBAAwB;IACtC,QAAQ,CAAC,YAAY,CAAC,wBAAwB,EAAE,CAAC;AACnD,CAAC;AAFD,4DAEC;AAED,SAAgB,oBAAoB;IAClC,OAAO,QAAQ,CAAC,YAAY,CAAC,oBAAoB,EAAE,CAAC;AACtD,CAAC;AAFD,oDAEC;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;AAlBD,gDAkBC"}
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import { Profile } from 'pprof-format';
17
17
  import { SourceMapper } from './sourcemapper/sourcemapper';
18
- import { AllocationProfileNode } from './v8-types';
18
+ import { AllocationProfileNode, GenerateAllocationLabelsFunction } from './v8-types';
19
19
  export declare function v8Profile(): AllocationProfileNode;
20
20
  /**
21
21
  * Collects a profile and returns it serialized in pprof format.
@@ -24,8 +24,8 @@ export declare function v8Profile(): AllocationProfileNode;
24
24
  * @param ignoreSamplePath
25
25
  * @param sourceMapper
26
26
  */
27
- export declare function profile(ignoreSamplePath?: string, sourceMapper?: SourceMapper): Profile;
28
- export declare function convertProfile(rootNode: AllocationProfileNode, ignoreSamplePath?: string, sourceMapper?: SourceMapper): Profile;
27
+ export declare function profile(ignoreSamplePath?: string, sourceMapper?: SourceMapper, generateLabels?: GenerateAllocationLabelsFunction): Profile;
28
+ export declare function convertProfile(rootNode: AllocationProfileNode, ignoreSamplePath?: string, sourceMapper?: SourceMapper, generateLabels?: GenerateAllocationLabelsFunction): Profile;
29
29
  /**
30
30
  * Starts heap profiling. If heap profiling has already been started with
31
31
  * the same parameters, this is a noop. If heap profiler has already been
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.monitorOutOfMemory = exports.CallbackMode = exports.stop = exports.start = exports.convertProfile = exports.profile = exports.v8Profile = void 0;
19
19
  const heap_profiler_bindings_1 = require("./heap-profiler-bindings");
20
20
  const profile_serializer_1 = require("./profile-serializer");
21
+ const node_worker_threads_1 = require("node:worker_threads");
21
22
  let enabled = false;
22
23
  let heapIntervalBytes = 0;
23
24
  let heapStackDepth = 0;
@@ -41,11 +42,11 @@ exports.v8Profile = v8Profile;
41
42
  * @param ignoreSamplePath
42
43
  * @param sourceMapper
43
44
  */
44
- function profile(ignoreSamplePath, sourceMapper) {
45
- return convertProfile(v8Profile(), ignoreSamplePath, sourceMapper);
45
+ function profile(ignoreSamplePath, sourceMapper, generateLabels) {
46
+ return convertProfile(v8Profile(), ignoreSamplePath, sourceMapper, generateLabels);
46
47
  }
47
48
  exports.profile = profile;
48
- function convertProfile(rootNode, ignoreSamplePath, sourceMapper) {
49
+ function convertProfile(rootNode, ignoreSamplePath, sourceMapper, generateLabels) {
49
50
  const startTimeNanos = Date.now() * 1000 * 1000;
50
51
  // Add node for external memory usage.
51
52
  // Current type definitions do not have external.
@@ -61,7 +62,7 @@ function convertProfile(rootNode, ignoreSamplePath, sourceMapper) {
61
62
  };
62
63
  rootNode.children.push(externalNode);
63
64
  }
64
- return (0, profile_serializer_1.serializeHeapProfile)(rootNode, startTimeNanos, heapIntervalBytes, ignoreSamplePath, sourceMapper);
65
+ return (0, profile_serializer_1.serializeHeapProfile)(rootNode, startTimeNanos, heapIntervalBytes, ignoreSamplePath, sourceMapper, generateLabels);
65
66
  }
66
67
  exports.convertProfile = convertProfile;
67
68
  /**
@@ -132,7 +133,7 @@ function monitorOutOfMemory(heapLimitExtensionSize, maxHeapLimitExtensionCount,
132
133
  callback(convertProfile(profile));
133
134
  };
134
135
  }
135
- (0, heap_profiler_bindings_1.monitorOutOfMemory)(heapLimitExtensionSize, maxHeapLimitExtensionCount, dumpHeapProfileOnSdterr, exportCommand || [], newCallback, typeof callbackMode !== 'undefined' ? callbackMode : exports.CallbackMode.Async);
136
+ (0, heap_profiler_bindings_1.monitorOutOfMemory)(heapLimitExtensionSize, maxHeapLimitExtensionCount, dumpHeapProfileOnSdterr, exportCommand || [], newCallback, typeof callbackMode !== 'undefined' ? callbackMode : exports.CallbackMode.Async, node_worker_threads_1.isMainThread);
136
137
  }
137
138
  exports.monitorOutOfMemory = monitorOutOfMemory;
138
139
  //# sourceMappingURL=heap-profiler.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"heap-profiler.js","sourceRoot":"","sources":["../../ts/src/heap-profiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heap-profiler.js","sourceRoot":"","sources":["../../ts/src/heap-profiler.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAIH,qEAKkC;AAClC,6DAA0D;AAM1D,6DAAiD;AAEjD,IAAI,OAAO,GAAG,KAAK,CAAC;AACpB,IAAI,iBAAiB,GAAG,CAAC,CAAC;AAC1B,IAAI,cAAc,GAAG,CAAC,CAAC;AAEvB;;;;;GAKG;AACH,SAAgB,SAAS;IACvB,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;KAClD;IACD,OAAO,IAAA,6CAAoB,GAAE,CAAC;AAChC,CAAC;AALD,8BAKC;AAED;;;;;;GAMG;AACH,SAAgB,OAAO,CACrB,gBAAyB,EACzB,YAA2B,EAC3B,cAAiD;IAEjD,OAAO,cAAc,CACnB,SAAS,EAAE,EACX,gBAAgB,EAChB,YAAY,EACZ,cAAc,CACf,CAAC;AACJ,CAAC;AAXD,0BAWC;AAED,SAAgB,cAAc,CAC5B,QAA+B,EAC/B,gBAAyB,EACzB,YAA2B,EAC3B,cAAiD;IAEjD,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;IAChD,sCAAsC;IACtC,iDAAiD;IACjD,wEAAwE;IACxE,8DAA8D;IAC9D,MAAM,EAAC,QAAQ,EAAC,GAAuB,OAAO,CAAC,WAAW,EAAS,CAAC;IACpE,IAAI,QAAQ,GAAG,CAAC,EAAE;QAChB,MAAM,YAAY,GAA0B;YAC1C,IAAI,EAAE,YAAY;YAClB,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;YACZ,WAAW,EAAE,CAAC,EAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC;SAC/C,CAAC;QACF,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACtC;IACD,OAAO,IAAA,yCAAoB,EACzB,QAAQ,EACR,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,YAAY,EACZ,cAAc,CACf,CAAC;AACJ,CAAC;AA7BD,wCA6BC;AAED;;;;;;;GAOG;AACH,SAAgB,KAAK,CAAC,aAAqB,EAAE,UAAkB;IAC7D,IAAI,OAAO,EAAE;QACX,MAAM,IAAI,KAAK,CACb,wDAAwD,iBAAiB,mBAAmB,UAAU,EAAE,CACzG,CAAC;KACH;IACD,iBAAiB,GAAG,aAAa,CAAC;IAClC,cAAc,GAAG,UAAU,CAAC;IAC5B,IAAA,kDAAyB,EAAC,iBAAiB,EAAE,cAAc,CAAC,CAAC;IAC7D,OAAO,GAAG,IAAI,CAAC;AACjB,CAAC;AAVD,sBAUC;AAED,8EAA8E;AAC9E,SAAgB,IAAI;IAClB,IAAI,OAAO,EAAE;QACX,OAAO,GAAG,KAAK,CAAC;QAChB,IAAA,iDAAwB,GAAE,CAAC;KAC5B;AACH,CAAC;AALD,oBAKC;AAIY,QAAA,YAAY,GAAG;IAC1B,KAAK,EAAE,CAAC;IACR,SAAS,EAAE,CAAC;IACZ,IAAI,EAAE,CAAC;CACR,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,SAAgB,kBAAkB,CAChC,sBAA8B,EAC9B,0BAAkC,EAClC,uBAAgC,EAChC,aAA6B,EAC7B,QAAgC,EAChC,YAAqB;IAErB,IAAI,CAAC,OAAO,EAAE;QACZ,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;KACH;IACD,IAAI,WAAW,CAAC;IAChB,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;QACnC,WAAW,GAAG,CAAC,OAA8B,EAAE,EAAE;YAC/C,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC;KACH;IACD,IAAA,2CAA0B,EACxB,sBAAsB,EACtB,0BAA0B,EAC1B,uBAAuB,EACvB,aAAa,IAAI,EAAE,EACnB,WAAW,EACX,OAAO,YAAY,KAAK,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,oBAAY,CAAC,KAAK,EACvE,kCAAY,CACb,CAAC;AACJ,CAAC;AA5BD,gDA4BC"}
@@ -4,16 +4,19 @@ export { AllocationProfileNode, TimeProfileNode, ProfileNode, LabelSet, } from '
4
4
  export { encode, encodeSync } from './profile-encoder';
5
5
  export { SourceMapper } from './sourcemapper/sourcemapper';
6
6
  export { setLogger } from './logger';
7
+ export { getNativeThreadId } from './time-profiler';
7
8
  export declare const time: {
8
9
  profile: typeof timeProfiler.profile;
9
10
  start: typeof timeProfiler.start;
10
11
  stop: typeof timeProfiler.stop;
12
+ getContext: typeof timeProfiler.getContext;
11
13
  setContext: typeof timeProfiler.setContext;
12
14
  isStarted: typeof timeProfiler.isStarted;
13
15
  v8ProfilerStuckEventLoopDetected: typeof timeProfiler.v8ProfilerStuckEventLoopDetected;
14
16
  getState: typeof timeProfiler.getState;
15
17
  constants: {
16
18
  kSampleCount: any;
19
+ NON_JS_THREADS_FUNCTION_NAME: string;
17
20
  };
18
21
  };
19
22
  export declare const heap: {
package/out/src/index.js CHANGED
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
23
23
  return result;
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.heap = exports.time = exports.setLogger = exports.SourceMapper = exports.encodeSync = exports.encode = void 0;
26
+ exports.heap = exports.time = exports.getNativeThreadId = exports.setLogger = exports.SourceMapper = exports.encodeSync = exports.encode = void 0;
27
27
  /**
28
28
  * Copyright 2019 Google Inc. All Rights Reserved.
29
29
  *
@@ -50,10 +50,13 @@ var sourcemapper_1 = require("./sourcemapper/sourcemapper");
50
50
  Object.defineProperty(exports, "SourceMapper", { enumerable: true, get: function () { return sourcemapper_1.SourceMapper; } });
51
51
  var logger_1 = require("./logger");
52
52
  Object.defineProperty(exports, "setLogger", { enumerable: true, get: function () { return logger_1.setLogger; } });
53
+ var time_profiler_1 = require("./time-profiler");
54
+ Object.defineProperty(exports, "getNativeThreadId", { enumerable: true, get: function () { return time_profiler_1.getNativeThreadId; } });
53
55
  exports.time = {
54
56
  profile: timeProfiler.profile,
55
57
  start: timeProfiler.start,
56
58
  stop: timeProfiler.stop,
59
+ getContext: timeProfiler.getContext,
57
60
  setContext: timeProfiler.setContext,
58
61
  isStarted: timeProfiler.isStarted,
59
62
  v8ProfilerStuckEventLoopDetected: timeProfiler.v8ProfilerStuckEventLoopDetected,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,2BAAiC;AAEjC,8DAAgD;AAChD,uDAA6C;AAC7C,8DAAgD;AAQhD,qDAAqD;AAA7C,yGAAA,MAAM,OAAA;AAAE,6GAAA,UAAU,OAAA;AAC1B,4DAAyD;AAAjD,4GAAA,YAAY,OAAA;AACpB,mCAAmC;AAA3B,mGAAA,SAAS,OAAA;AAEJ,QAAA,IAAI,GAAG;IAClB,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,KAAK,EAAE,YAAY,CAAC,KAAK;IACzB,IAAI,EAAE,YAAY,CAAC,IAAI;IACvB,UAAU,EAAE,YAAY,CAAC,UAAU;IACnC,SAAS,EAAE,YAAY,CAAC,SAAS;IACjC,gCAAgC,EAC9B,YAAY,CAAC,gCAAgC;IAC/C,QAAQ,EAAE,YAAY,CAAC,QAAQ;IAC/B,SAAS,EAAE,YAAY,CAAC,SAAS;CAClC,CAAC;AAEW,QAAA,IAAI,GAAG;IAClB,KAAK,EAAE,YAAY,CAAC,KAAK;IACzB,IAAI,EAAE,YAAY,CAAC,IAAI;IACvB,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,cAAc,EAAE,YAAY,CAAC,cAAc;IAC3C,SAAS,EAAE,YAAY,CAAC,SAAS;IACjC,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;IACnD,YAAY,EAAE,YAAY,CAAC,YAAY;CACxC,CAAC;AAEF,6CAA6C;AAC7C,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,kBAAkB,EAAE;IAC5D,YAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,uEAAuE;QACvE,kBAAkB;QAClB,MAAM,OAAO,GAAG,YAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAA,4BAAU,EAAC,OAAO,CAAC,CAAC;QACnC,IAAA,kBAAa,EAAC,iBAAiB,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;CACJ"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../ts/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;GAcG;AACH,2BAAiC;AAEjC,8DAAgD;AAChD,uDAA6C;AAC7C,8DAAgD;AAQhD,qDAAqD;AAA7C,yGAAA,MAAM,OAAA;AAAE,6GAAA,UAAU,OAAA;AAC1B,4DAAyD;AAAjD,4GAAA,YAAY,OAAA;AACpB,mCAAmC;AAA3B,mGAAA,SAAS,OAAA;AACjB,iDAAkD;AAA1C,kHAAA,iBAAiB,OAAA;AAEZ,QAAA,IAAI,GAAG;IAClB,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,KAAK,EAAE,YAAY,CAAC,KAAK;IACzB,IAAI,EAAE,YAAY,CAAC,IAAI;IACvB,UAAU,EAAE,YAAY,CAAC,UAAU;IACnC,UAAU,EAAE,YAAY,CAAC,UAAU;IACnC,SAAS,EAAE,YAAY,CAAC,SAAS;IACjC,gCAAgC,EAC9B,YAAY,CAAC,gCAAgC;IAC/C,QAAQ,EAAE,YAAY,CAAC,QAAQ;IAC/B,SAAS,EAAE,YAAY,CAAC,SAAS;CAClC,CAAC;AAEW,QAAA,IAAI,GAAG;IAClB,KAAK,EAAE,YAAY,CAAC,KAAK;IACzB,IAAI,EAAE,YAAY,CAAC,IAAI;IACvB,OAAO,EAAE,YAAY,CAAC,OAAO;IAC7B,cAAc,EAAE,YAAY,CAAC,cAAc;IAC3C,SAAS,EAAE,YAAY,CAAC,SAAS;IACjC,kBAAkB,EAAE,YAAY,CAAC,kBAAkB;IACnD,YAAY,EAAE,YAAY,CAAC,YAAY;CACxC,CAAC;AAEF,6CAA6C;AAC7C,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,kBAAkB,EAAE;IAC5D,YAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACf,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE;QACtB,uEAAuE;QACvE,kBAAkB;QAClB,MAAM,OAAO,GAAG,YAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,IAAA,4BAAU,EAAC,OAAO,CAAC,CAAC;QACnC,IAAA,kBAAa,EAAC,iBAAiB,OAAO,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;CACJ"}
@@ -15,7 +15,8 @@
15
15
  */
16
16
  import { Profile } from 'pprof-format';
17
17
  import { SourceMapper } from './sourcemapper/sourcemapper';
18
- import { AllocationProfileNode, LabelSet, TimeProfile, TimeProfileNodeContext } from './v8-types';
18
+ import { AllocationProfileNode, GenerateAllocationLabelsFunction, GenerateTimeLabelsFunction, TimeProfile } from './v8-types';
19
+ export declare const NON_JS_THREADS_FUNCTION_NAME = "(non-JS threads)";
19
20
  /**
20
21
  * Converts v8 time profile into into a profile proto.
21
22
  * (https://github.com/google/pprof/blob/master/proto/profile.proto)
@@ -23,7 +24,7 @@ import { AllocationProfileNode, LabelSet, TimeProfile, TimeProfileNodeContext }
23
24
  * @param prof - profile to be converted.
24
25
  * @param intervalMicros - average time (microseconds) between samples.
25
26
  */
26
- export declare function serializeTimeProfile(prof: TimeProfile, intervalMicros: number, sourceMapper?: SourceMapper, recomputeSamplingInterval?: boolean, generateLabels?: (context: TimeProfileNodeContext) => LabelSet): Profile;
27
+ export declare function serializeTimeProfile(prof: TimeProfile, intervalMicros: number, sourceMapper?: SourceMapper, recomputeSamplingInterval?: boolean, generateLabels?: GenerateTimeLabelsFunction): Profile;
27
28
  /**
28
29
  * Converts v8 heap profile into into a profile proto.
29
30
  * (https://github.com/google/pprof/blob/master/proto/profile.proto)
@@ -34,4 +35,4 @@ export declare function serializeTimeProfile(prof: TimeProfile, intervalMicros:
34
35
  * nanoseconds.
35
36
  * @param intervalBytes - bytes allocated between samples.
36
37
  */
37
- export declare function serializeHeapProfile(prof: AllocationProfileNode, startTimeNanos: number, intervalBytes: number, ignoreSamplesPath?: string, sourceMapper?: SourceMapper): Profile;
38
+ export declare function serializeHeapProfile(prof: AllocationProfileNode, startTimeNanos: number, intervalBytes: number, ignoreSamplesPath?: string, sourceMapper?: SourceMapper, generateLabels?: GenerateAllocationLabelsFunction): Profile;
@@ -15,8 +15,9 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
- exports.serializeHeapProfile = exports.serializeTimeProfile = void 0;
18
+ exports.serializeHeapProfile = exports.serializeTimeProfile = exports.NON_JS_THREADS_FUNCTION_NAME = void 0;
19
19
  const pprof_format_1 = require("pprof-format");
20
+ exports.NON_JS_THREADS_FUNCTION_NAME = '(non-JS threads)';
20
21
  function isGeneratedLocation(location) {
21
22
  return (location.column !== undefined &&
22
23
  location.line !== undefined &&
@@ -151,6 +152,16 @@ function createTimeValueType(table) {
151
152
  unit: table.dedup('nanoseconds'),
152
153
  });
153
154
  }
155
+ /**
156
+ * @return value type for cpu samples (type:cpu, units:nanoseconds), and
157
+ * adds strings used in this value type to the table.
158
+ */
159
+ function createCpuValueType(table) {
160
+ return new pprof_format_1.ValueType({
161
+ type: table.dedup('cpu'),
162
+ unit: table.dedup('nanoseconds'),
163
+ });
164
+ }
154
165
  /**
155
166
  * @return value type for object counts (type:objects, units:count), and
156
167
  * adds strings used in this value type to the table.
@@ -198,22 +209,38 @@ function serializeTimeProfile(prof, intervalMicros, sourceMapper, recomputeSampl
198
209
  const intervalNanos = intervalMicros * 1000;
199
210
  const appendTimeEntryToSamples = (entry, samples) => {
200
211
  let unlabelledHits = entry.node.hitCount;
212
+ let unlabelledCpuTime = 0;
201
213
  for (const context of entry.node.contexts || []) {
202
- const labels = generateLabels ? generateLabels(context) : context.context;
214
+ const labels = generateLabels
215
+ ? generateLabels({ node: entry.node, context })
216
+ : context.context;
203
217
  if (Object.keys(labels).length > 0) {
218
+ const values = [1, intervalNanos];
219
+ if (prof.hasCpuTime) {
220
+ values.push(context.cpuTime);
221
+ }
204
222
  const sample = new pprof_format_1.Sample({
205
223
  locationId: entry.stack,
206
- value: [1, intervalNanos],
224
+ value: values,
207
225
  label: buildLabels(labels, stringTable),
208
226
  });
209
227
  samples.push(sample);
210
228
  unlabelledHits--;
211
229
  }
230
+ else if (prof.hasCpuTime) {
231
+ unlabelledCpuTime += context.cpuTime;
232
+ }
212
233
  }
213
- if (unlabelledHits > 0) {
234
+ if (unlabelledHits > 0 || unlabelledCpuTime > 0) {
235
+ const labels = generateLabels ? generateLabels({ node: entry.node }) : {};
236
+ const values = [unlabelledHits, unlabelledHits * intervalNanos];
237
+ if (prof.hasCpuTime) {
238
+ values.push(unlabelledCpuTime);
239
+ }
214
240
  const sample = new pprof_format_1.Sample({
215
241
  locationId: entry.stack,
216
- value: [unlabelledHits, unlabelledHits * intervalNanos],
242
+ value: values,
243
+ label: buildLabels(labels, stringTable),
217
244
  });
218
245
  samples.push(sample);
219
246
  }
@@ -221,13 +248,37 @@ function serializeTimeProfile(prof, intervalMicros, sourceMapper, recomputeSampl
221
248
  const stringTable = new pprof_format_1.StringTable();
222
249
  const sampleValueType = createSampleCountValueType(stringTable);
223
250
  const timeValueType = createTimeValueType(stringTable);
251
+ const sampleTypes = [sampleValueType, timeValueType];
252
+ if (prof.hasCpuTime) {
253
+ const cpuValueType = createCpuValueType(stringTable);
254
+ sampleTypes.push(cpuValueType);
255
+ }
224
256
  const profile = {
225
- sampleType: [sampleValueType, timeValueType],
257
+ sampleType: sampleTypes,
226
258
  timeNanos: Date.now() * 1000 * 1000,
227
259
  durationNanos: (prof.endTime - prof.startTime) * 1000,
228
260
  periodType: timeValueType,
229
261
  period: intervalNanos,
230
262
  };
263
+ if (prof.nonJSThreadsCpuTime) {
264
+ const node = {
265
+ name: exports.NON_JS_THREADS_FUNCTION_NAME,
266
+ scriptName: '',
267
+ scriptId: 0,
268
+ lineNumber: 0,
269
+ columnNumber: 0,
270
+ children: [],
271
+ hitCount: 0,
272
+ contexts: [
273
+ {
274
+ context: {},
275
+ timestamp: BigInt(0),
276
+ cpuTime: prof.nonJSThreadsCpuTime,
277
+ },
278
+ ],
279
+ };
280
+ prof.topDownRoot.children.push(node);
281
+ }
231
282
  serialize(profile, prof.topDownRoot, appendTimeEntryToSamples, stringTable, undefined, sourceMapper);
232
283
  return new pprof_format_1.Profile(profile);
233
284
  }
@@ -263,13 +314,17 @@ function buildLabels(labelSet, stringTable) {
263
314
  * nanoseconds.
264
315
  * @param intervalBytes - bytes allocated between samples.
265
316
  */
266
- function serializeHeapProfile(prof, startTimeNanos, intervalBytes, ignoreSamplesPath, sourceMapper) {
317
+ function serializeHeapProfile(prof, startTimeNanos, intervalBytes, ignoreSamplesPath, sourceMapper, generateLabels) {
267
318
  const appendHeapEntryToSamples = (entry, samples) => {
268
319
  if (entry.node.allocations.length > 0) {
320
+ const labels = generateLabels
321
+ ? buildLabels(generateLabels({ node: entry.node }), stringTable)
322
+ : [];
269
323
  for (const alloc of entry.node.allocations) {
270
324
  const sample = new pprof_format_1.Sample({
271
325
  locationId: entry.stack,
272
326
  value: [alloc.count, alloc.sizeBytes * alloc.count],
327
+ label: labels,
273
328
  // TODO: add tag for allocation size
274
329
  });
275
330
  samples.push(sample);
@@ -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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"}
@@ -1,2 +1,3 @@
1
1
  export declare const TimeProfiler: any;
2
2
  export declare const constants: any;
3
+ export declare const getNativeThreadId: any;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.constants = exports.TimeProfiler = void 0;
3
+ exports.getNativeThreadId = exports.constants = exports.TimeProfiler = void 0;
4
4
  /**
5
5
  * Copyright 2018 Google Inc. All Rights Reserved.
6
6
  *
@@ -21,4 +21,5 @@ const findBinding = require('node-gyp-build');
21
21
  const profiler = findBinding((0, path_1.join)(__dirname, '..', '..'));
22
22
  exports.TimeProfiler = profiler.TimeProfiler;
23
23
  exports.constants = profiler.constants;
24
+ exports.getNativeThreadId = profiler.getNativeThreadId;
24
25
  //# sourceMappingURL=time-profiler-bindings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"time-profiler-bindings.js","sourceRoot":"","sources":["../../ts/src/time-profiler-bindings.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,+BAA0B;AAE1B,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE7C,QAAA,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;AACrC,QAAA,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC"}
1
+ {"version":3,"file":"time-profiler-bindings.js","sourceRoot":"","sources":["../../ts/src/time-profiler-bindings.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;GAcG;AACH,+BAA0B;AAE1B,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;AAC9C,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAE7C,QAAA,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;AACrC,QAAA,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC/B,QAAA,iBAAiB,GAAG,QAAQ,CAAC,iBAAiB,CAAC"}
@@ -14,7 +14,8 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { SourceMapper } from './sourcemapper/sourcemapper';
17
- import { LabelSet, TimeProfileNodeContext } from './v8-types';
17
+ import { getNativeThreadId } from './time-profiler-bindings';
18
+ import { GenerateTimeLabelsFunction } from './v8-types';
18
19
  type Microseconds = number;
19
20
  type Milliseconds = number;
20
21
  export interface TimeProfilerOptions {
@@ -32,15 +33,18 @@ export interface TimeProfilerOptions {
32
33
  lineNumbers?: boolean;
33
34
  withContexts?: boolean;
34
35
  workaroundV8Bug?: boolean;
36
+ collectCpuTime?: boolean;
35
37
  }
36
- export declare function profile({ intervalMicros, durationMillis, sourceMapper, lineNumbers, withContexts, workaroundV8Bug, }: TimeProfilerOptions): Promise<import("pprof-format").Profile>;
37
- export declare function start({ intervalMicros, durationMillis, sourceMapper, lineNumbers, withContexts, workaroundV8Bug, }: TimeProfilerOptions): void;
38
- export declare function stop(restart?: boolean, generateLabels?: (context: TimeProfileNodeContext) => LabelSet): import("pprof-format").Profile;
38
+ export declare function profile(options?: TimeProfilerOptions): Promise<import("pprof-format").Profile>;
39
+ export declare function start(options?: TimeProfilerOptions): void;
40
+ export declare function stop(restart?: boolean, generateLabels?: GenerateTimeLabelsFunction): import("pprof-format").Profile;
39
41
  export declare function getState(): any;
40
42
  export declare function setContext(context?: object): void;
43
+ export declare function getContext(): any;
41
44
  export declare function isStarted(): boolean;
42
45
  export declare function v8ProfilerStuckEventLoopDetected(): number;
43
46
  export declare const constants: {
44
47
  kSampleCount: any;
48
+ NON_JS_THREADS_FUNCTION_NAME: string;
45
49
  };
46
- export { LabelSet };
50
+ export { getNativeThreadId };
@@ -18,10 +18,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
18
18
  return (mod && mod.__esModule) ? mod : { "default": mod };
19
19
  };
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.constants = exports.v8ProfilerStuckEventLoopDetected = exports.isStarted = exports.setContext = exports.getState = exports.stop = exports.start = exports.profile = void 0;
21
+ exports.getNativeThreadId = exports.constants = exports.v8ProfilerStuckEventLoopDetected = exports.isStarted = exports.getContext = exports.setContext = exports.getState = exports.stop = exports.start = exports.profile = void 0;
22
22
  const delay_1 = __importDefault(require("delay"));
23
23
  const profile_serializer_1 = require("./profile-serializer");
24
24
  const time_profiler_bindings_1 = require("./time-profiler-bindings");
25
+ Object.defineProperty(exports, "getNativeThreadId", { enumerable: true, get: function () { return time_profiler_bindings_1.getNativeThreadId; } });
26
+ const node_worker_threads_1 = require("node:worker_threads");
25
27
  const { kSampleCount } = time_profiler_bindings_1.constants;
26
28
  const DEFAULT_INTERVAL_MICROS = 1000;
27
29
  const DEFAULT_DURATION_MILLIS = 60000;
@@ -35,29 +37,36 @@ process.once('exit', () => {
35
37
  if (isStarted())
36
38
  stop();
37
39
  });
38
- async function profile({ intervalMicros = DEFAULT_INTERVAL_MICROS, durationMillis = DEFAULT_DURATION_MILLIS, sourceMapper, lineNumbers = false, withContexts = false, workaroundV8Bug = true, }) {
39
- start({
40
- intervalMicros,
41
- durationMillis,
42
- sourceMapper,
43
- lineNumbers,
44
- withContexts,
45
- workaroundV8Bug,
46
- });
47
- await (0, delay_1.default)(durationMillis);
40
+ const DEFAULT_OPTIONS = {
41
+ durationMillis: DEFAULT_DURATION_MILLIS,
42
+ intervalMicros: DEFAULT_INTERVAL_MICROS,
43
+ lineNumbers: false,
44
+ withContexts: false,
45
+ workaroundV8Bug: true,
46
+ collectCpuTime: false,
47
+ };
48
+ async function profile(options = {}) {
49
+ options = { ...DEFAULT_OPTIONS, ...options };
50
+ start(options);
51
+ await (0, delay_1.default)(options.durationMillis);
48
52
  return stop();
49
53
  }
50
54
  exports.profile = profile;
51
55
  // Temporarily retained for backwards compatibility with older tracer
52
- function start({ intervalMicros = DEFAULT_INTERVAL_MICROS, durationMillis = DEFAULT_DURATION_MILLIS, sourceMapper, lineNumbers = false, withContexts = false, workaroundV8Bug = true, }) {
56
+ function start(options = {}) {
57
+ options = { ...DEFAULT_OPTIONS, ...options };
53
58
  if (gProfiler) {
54
59
  throw new Error('Wall profiler is already started');
55
60
  }
56
- gProfiler = new time_profiler_bindings_1.TimeProfiler(intervalMicros, durationMillis * 1000, lineNumbers, withContexts, workaroundV8Bug);
57
- gSourceMapper = sourceMapper;
58
- gIntervalMicros = intervalMicros;
61
+ gProfiler = new time_profiler_bindings_1.TimeProfiler({ ...options, isMainThread: node_worker_threads_1.isMainThread });
62
+ gSourceMapper = options.sourceMapper;
63
+ gIntervalMicros = options.intervalMicros;
59
64
  gV8ProfilerStuckEventLoopDetected = 0;
60
65
  gProfiler.start();
66
+ // If contexts are enabled, set an initial empty context
67
+ if (options.withContexts) {
68
+ setContext({});
69
+ }
61
70
  }
62
71
  exports.start = start;
63
72
  function stop(restart = false, generateLabels) {
@@ -101,6 +110,13 @@ function setContext(context) {
101
110
  gProfiler.context = context;
102
111
  }
103
112
  exports.setContext = setContext;
113
+ function getContext() {
114
+ if (!gProfiler) {
115
+ throw new Error('Wall profiler is not started');
116
+ }
117
+ return gProfiler.context;
118
+ }
119
+ exports.getContext = getContext;
104
120
  function isStarted() {
105
121
  return !!gProfiler;
106
122
  }
@@ -110,5 +126,5 @@ function v8ProfilerStuckEventLoopDetected() {
110
126
  return gV8ProfilerStuckEventLoopDetected;
111
127
  }
112
128
  exports.v8ProfilerStuckEventLoopDetected = v8ProfilerStuckEventLoopDetected;
113
- exports.constants = { kSampleCount };
129
+ exports.constants = { kSampleCount, NON_JS_THREADS_FUNCTION_NAME: profile_serializer_1.NON_JS_THREADS_FUNCTION_NAME };
114
130
  //# sourceMappingURL=time-profiler.js.map
@@ -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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"}
@@ -19,6 +19,9 @@ export interface TimeProfile {
19
19
  topDownRoot: TimeProfileNode;
20
20
  /** Time in nanoseconds at which profile was started. */
21
21
  startTime: number;
22
+ hasCpuTime?: boolean;
23
+ /** CPU time of non-JS threads, only reported for the main worker thread */
24
+ nonJSThreadsCpuTime?: number;
22
25
  }
23
26
  export interface ProfileNode {
24
27
  name?: string;
@@ -31,6 +34,7 @@ export interface ProfileNode {
31
34
  export interface TimeProfileNodeContext {
32
35
  context: object;
33
36
  timestamp: bigint;
37
+ cpuTime: number;
34
38
  }
35
39
  export interface TimeProfileNode extends ProfileNode {
36
40
  hitCount: number;
@@ -46,3 +50,15 @@ export interface Allocation {
46
50
  export interface LabelSet {
47
51
  [key: string]: string | number;
48
52
  }
53
+ export interface GenerateAllocationLabelsFunction {
54
+ ({ node }: {
55
+ node: AllocationProfileNode;
56
+ }): LabelSet;
57
+ }
58
+ export interface GenerateTimeLabelsArgs {
59
+ node: TimeProfileNode;
60
+ context?: TimeProfileNodeContext;
61
+ }
62
+ export interface GenerateTimeLabelsFunction {
63
+ (args: GenerateTimeLabelsArgs): LabelSet;
64
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datadog/pprof",
3
- "version": "5.0.0-pre-39c03d4",
3
+ "version": "5.0.0-pre-d624748",
4
4
  "description": "pprof support for Node.js",
5
5
  "repository": "datadog/pprof-nodejs",
6
6
  "main": "out/src/index.js",
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