@code-pushup/utils 0.113.0 → 0.113.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/package.json +2 -2
- package/src/index.d.ts +2 -1
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/lib/file-system.d.ts +0 -2
- package/src/lib/file-system.js +0 -16
- package/src/lib/file-system.js.map +1 -1
- package/src/lib/import-module.d.ts +2 -0
- package/src/lib/import-module.js +21 -0
- package/src/lib/import-module.js.map +1 -0
- package/src/lib/process-id.d.ts +83 -0
- package/src/lib/process-id.js +93 -0
- package/src/lib/process-id.js.map +1 -0
- package/src/lib/profiler/constants.d.ts +5 -0
- package/src/lib/profiler/constants.js +5 -0
- package/src/lib/profiler/constants.js.map +1 -1
- package/src/lib/profiler/profiler-node.js +11 -3
- package/src/lib/profiler/profiler-node.js.map +1 -1
- package/src/lib/profiler/trace-file-utils.d.ts +65 -116
- package/src/lib/profiler/trace-file-utils.js +127 -185
- package/src/lib/profiler/trace-file-utils.js.map +1 -1
- package/src/lib/profiler/trace-file.type.d.ts +24 -157
- package/src/lib/profiler/wal-json-trace.d.ts +11 -10
- package/src/lib/profiler/wal-json-trace.js +36 -53
- package/src/lib/profiler/wal-json-trace.js.map +1 -1
- package/src/lib/wal.d.ts +0 -28
- package/src/lib/wal.js +12 -52
- package/src/lib/wal.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@code-pushup/utils",
|
|
3
|
-
"version": "0.113.
|
|
3
|
+
"version": "0.113.1",
|
|
4
4
|
"description": "Low-level utilities (helper functions, etc.) used by Code PushUp CLI",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://github.com/code-pushup/cli/tree/main/packages/utils#readme",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"node": ">=18.2.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@code-pushup/models": "0.113.
|
|
30
|
+
"@code-pushup/models": "0.113.1",
|
|
31
31
|
"ansis": "^3.3.0",
|
|
32
32
|
"build-md": "^0.4.2",
|
|
33
33
|
"bundle-require": "^5.1.0",
|
package/src/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { comparePairs, matchArrayItemsByKey, type Diff } from './lib/diff.js';
|
|
|
8
8
|
export { coerceBooleanValue, isCI, isEnvVarEnabled, runnerArgsFromEnv, runnerArgsToEnv, } from './lib/env.js';
|
|
9
9
|
export { stringifyError } from './lib/errors.js';
|
|
10
10
|
export { executeProcess, ProcessError, type ProcessConfig, type ProcessObserver, type ProcessResult, } from './lib/execute-process.js';
|
|
11
|
-
export { crawlFileSystem, createReportPath, directoryExists, ensureDirectoryExists, fileExists, filePathToCliArg, findLineNumberInText, findNearestFile,
|
|
11
|
+
export { crawlFileSystem, createReportPath, directoryExists, ensureDirectoryExists, fileExists, filePathToCliArg, findLineNumberInText, findNearestFile, pluginWorkDir, projectToFilename, readJsonFile, readTextFile, removeDirectoryIfExists, truncatePaths, type CrawlFileSystemOptions, } from './lib/file-system.js';
|
|
12
12
|
export { filterItemRefsBy } from './lib/filter.js';
|
|
13
13
|
export { formatBytes, formatCoveragePercentage, formatDuration, indentLines, pluginMetaLogFormatter, pluralize, pluralizeToken, roundDecimals, serializeCommandWithArgs, slugify, transformLines, truncateDescription, truncateIssueMessage, truncateMultilineText, truncateText, truncateTitle, UNICODE_ELLIPSIS, } from './lib/formatting.js';
|
|
14
14
|
export { getCurrentBranchOrTag, getHashes, getHashFromTag, getLatestCommit, getSemverTags, type LogResult, } from './lib/git/git.commits-and-tags.js';
|
|
@@ -42,3 +42,4 @@ export { formatAsciiTree } from './lib/text-formats/ascii/tree.js';
|
|
|
42
42
|
export * from './lib/text-formats/index.js';
|
|
43
43
|
export { countOccurrences, distinct, factorOf, fromJsonLines, objectFromEntries, objectToCliArgs, objectToEntries, objectToKeys, removeUndefinedAndEmptyProps, toArray, toJsonLines, toNumberPrecision, toOrdinal, toUnixNewlines, toUnixPath, type CliArgsObject, } from './lib/transform.js';
|
|
44
44
|
export type { CamelCaseToKebabCase, ExcludeNullableProps, ExtractArray, ExtractArrays, ItemOrArray, LooseAutocomplete, Prettify, WithRequired, } from './lib/types.js';
|
|
45
|
+
export * from './lib/import-module.js';
|
package/src/index.js
CHANGED
|
@@ -8,7 +8,7 @@ export { comparePairs, matchArrayItemsByKey } from './lib/diff.js';
|
|
|
8
8
|
export { coerceBooleanValue, isCI, isEnvVarEnabled, runnerArgsFromEnv, runnerArgsToEnv, } from './lib/env.js';
|
|
9
9
|
export { stringifyError } from './lib/errors.js';
|
|
10
10
|
export { executeProcess, ProcessError, } from './lib/execute-process.js';
|
|
11
|
-
export { crawlFileSystem, createReportPath, directoryExists, ensureDirectoryExists, fileExists, filePathToCliArg, findLineNumberInText, findNearestFile,
|
|
11
|
+
export { crawlFileSystem, createReportPath, directoryExists, ensureDirectoryExists, fileExists, filePathToCliArg, findLineNumberInText, findNearestFile, pluginWorkDir, projectToFilename, readJsonFile, readTextFile, removeDirectoryIfExists, truncatePaths, } from './lib/file-system.js';
|
|
12
12
|
export { filterItemRefsBy } from './lib/filter.js';
|
|
13
13
|
export { formatBytes, formatCoveragePercentage, formatDuration, indentLines, pluginMetaLogFormatter, pluralize, pluralizeToken, roundDecimals, serializeCommandWithArgs, slugify, transformLines, truncateDescription, truncateIssueMessage, truncateMultilineText, truncateText, truncateTitle, UNICODE_ELLIPSIS, } from './lib/formatting.js';
|
|
14
14
|
export { getCurrentBranchOrTag, getHashes, getHashFromTag, getLatestCommit, getSemverTags, } from './lib/git/git.commits-and-tags.js';
|
|
@@ -40,4 +40,5 @@ export { formatAsciiTable } from './lib/text-formats/ascii/table.js';
|
|
|
40
40
|
export { formatAsciiTree } from './lib/text-formats/ascii/tree.js';
|
|
41
41
|
export * from './lib/text-formats/index.js';
|
|
42
42
|
export { countOccurrences, distinct, factorOf, fromJsonLines, objectFromEntries, objectToCliArgs, objectToEntries, objectToKeys, removeUndefinedAndEmptyProps, toArray, toJsonLines, toNumberPrecision, toOrdinal, toUnixNewlines, toUnixPath, } from './lib/transform.js';
|
|
43
|
+
export * from './lib/import-module.js';
|
|
43
44
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EACL,oBAAoB,EACpB,UAAU,EACV,oBAAoB,EACpB,SAAS,EACT,cAAc,EACd,WAAW,EACX,SAAS,GACV,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,mBAAmB,EAEnB,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAa,MAAM,eAAe,CAAC;AAC9E,OAAO,EACL,kBAAkB,EAClB,IAAI,EACJ,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,cAAc,EACd,YAAY,GAIb,MAAM,0BAA0B,CAAC;AAClC,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/src/lib/file-system.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { type Options } from 'bundle-require';
|
|
2
1
|
import type { Format, PersistConfig } from '@code-pushup/models';
|
|
3
2
|
export declare function readTextFile(filePath: string): Promise<string>;
|
|
4
3
|
export declare function readJsonFile<T = unknown>(filePath: string): Promise<T>;
|
|
@@ -6,7 +5,6 @@ export declare function fileExists(filePath: string): Promise<boolean>;
|
|
|
6
5
|
export declare function directoryExists(filePath: string): Promise<boolean>;
|
|
7
6
|
export declare function ensureDirectoryExists(baseDir: string): Promise<void>;
|
|
8
7
|
export declare function removeDirectoryIfExists(dir: string): Promise<void>;
|
|
9
|
-
export declare function importModule<T = unknown>(options: Options): Promise<T>;
|
|
10
8
|
export declare function createReportPath({ outputDir, filename, format, suffix, }: Pick<Required<PersistConfig>, 'filename' | 'outputDir'> & {
|
|
11
9
|
format: Format;
|
|
12
10
|
suffix?: string;
|
package/src/lib/file-system.js
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { bundleRequire } from 'bundle-require';
|
|
2
1
|
import { mkdir, readFile, readdir, rm, stat } from 'node:fs/promises';
|
|
3
2
|
import path from 'node:path';
|
|
4
3
|
import { logger } from './logger.js';
|
|
5
|
-
import { settlePromise } from './promises.js';
|
|
6
4
|
export async function readTextFile(filePath) {
|
|
7
5
|
const buffer = await readFile(filePath);
|
|
8
6
|
return buffer.toString();
|
|
@@ -47,20 +45,6 @@ export async function removeDirectoryIfExists(dir) {
|
|
|
47
45
|
await rm(dir, { recursive: true, force: true });
|
|
48
46
|
}
|
|
49
47
|
}
|
|
50
|
-
export async function importModule(options) {
|
|
51
|
-
const resolvedStats = await settlePromise(stat(options.filepath));
|
|
52
|
-
if (resolvedStats.status === 'rejected') {
|
|
53
|
-
throw new Error(`File '${options.filepath}' does not exist`);
|
|
54
|
-
}
|
|
55
|
-
if (!resolvedStats.value.isFile()) {
|
|
56
|
-
throw new Error(`Expected '${options.filepath}' to be a file`);
|
|
57
|
-
}
|
|
58
|
-
const { mod } = await bundleRequire(options);
|
|
59
|
-
if (typeof mod === 'object' && 'default' in mod) {
|
|
60
|
-
return mod.default;
|
|
61
|
-
}
|
|
62
|
-
return mod;
|
|
63
|
-
}
|
|
64
48
|
export function createReportPath({ outputDir, filename, format, suffix, }) {
|
|
65
49
|
return path.join(outputDir, suffix ? `${filename}-${suffix}.${format}` : `${filename}.${format}`);
|
|
66
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../../src/lib/file-system.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../../src/lib/file-system.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { bundleRequire } from 'bundle-require';
|
|
2
|
+
import { stat } from 'node:fs/promises';
|
|
3
|
+
import { settlePromise } from './promises.js';
|
|
4
|
+
export async function importModule(options) {
|
|
5
|
+
const resolvedStats = await settlePromise(stat(options.filepath));
|
|
6
|
+
if (resolvedStats.status === 'rejected') {
|
|
7
|
+
throw new Error(`File '${options.filepath}' does not exist`);
|
|
8
|
+
}
|
|
9
|
+
if (!resolvedStats.value.isFile()) {
|
|
10
|
+
throw new Error(`Expected '${options.filepath}' to be a file`);
|
|
11
|
+
}
|
|
12
|
+
const { mod } = await bundleRequire({
|
|
13
|
+
format: 'esm',
|
|
14
|
+
...options,
|
|
15
|
+
});
|
|
16
|
+
if (typeof mod === 'object' && 'default' in mod) {
|
|
17
|
+
return mod.default;
|
|
18
|
+
}
|
|
19
|
+
return mod;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=import-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import-module.js","sourceRoot":"","sources":["../../../src/lib/import-module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,MAAM,CAAC,KAAK,UAAU,YAAY,CAAc,OAAgB;IAC9D,MAAM,aAAa,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClE,IAAI,aAAa,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,SAAS,OAAO,CAAC,QAAQ,kBAAkB,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,aAAa,OAAO,CAAC,QAAQ,gBAAgB,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,aAAa,CAAS;QAC1C,MAAM,EAAE,KAAK;QACb,GAAG,OAAO;KACX,CAAC,CAAC;IAEH,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,SAAS,IAAI,GAAG,EAAE,CAAC;QAChD,OAAO,GAAG,CAAC,OAAY,CAAC;IAC1B,CAAC;IACD,OAAO,GAAQ,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Counter interface for generating sequential instance IDs.
|
|
3
|
+
* Encapsulates increment logic within the counter-implementation.
|
|
4
|
+
*/
|
|
5
|
+
export type Counter = {
|
|
6
|
+
/**
|
|
7
|
+
* Returns the next counter-value and increments the internal state.
|
|
8
|
+
* @returns The next counter-value
|
|
9
|
+
*/
|
|
10
|
+
next: () => number;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Base regex pattern for time ID format: yyyymmdd-hhmmss-ms
|
|
14
|
+
*/
|
|
15
|
+
export declare const TIME_ID_BASE: RegExp;
|
|
16
|
+
/**
|
|
17
|
+
* Regex patterns for validating process and instance ID formats.
|
|
18
|
+
* All patterns use strict anchors (^ and $) to ensure complete matches.
|
|
19
|
+
*/
|
|
20
|
+
export declare const ID_PATTERNS: Readonly<{
|
|
21
|
+
/**
|
|
22
|
+
* Time ID / Run ID format: yyyymmdd-hhmmss-ms
|
|
23
|
+
* Example: "20240101-120000-000"
|
|
24
|
+
* Used by: getUniqueTimeId()
|
|
25
|
+
*/
|
|
26
|
+
readonly TIME_ID: RegExp;
|
|
27
|
+
/**
|
|
28
|
+
* Group ID format: alias by convention, semantically represents a group of instances
|
|
29
|
+
* Example: "20240101-120000-000"
|
|
30
|
+
* Used by: grouping related instances by time
|
|
31
|
+
*/
|
|
32
|
+
readonly GROUP_ID: RegExp;
|
|
33
|
+
/**
|
|
34
|
+
* Process/Thread ID format: timeId-pid-threadId
|
|
35
|
+
* Example: "20240101-120000-000-12345-1"
|
|
36
|
+
* Used by: getUniqueProcessThreadId()
|
|
37
|
+
*/
|
|
38
|
+
readonly PROCESS_THREAD_ID: RegExp;
|
|
39
|
+
/**
|
|
40
|
+
* Instance ID format: timeId.pid.threadId.counter
|
|
41
|
+
* Example: "20240101-120000-000.12345.1.1"
|
|
42
|
+
* Used by: getUniqueInstanceId()
|
|
43
|
+
*/
|
|
44
|
+
readonly INSTANCE_ID: RegExp;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Generates a unique run ID.
|
|
48
|
+
* This ID uniquely identifies a run/execution with a globally unique, sortable, human-readable date string.
|
|
49
|
+
* Format: yyyymmdd-hhmmss-ms
|
|
50
|
+
* Example: "20240101-120000-000"
|
|
51
|
+
*
|
|
52
|
+
* @returns A unique run ID string in readable date format
|
|
53
|
+
*/
|
|
54
|
+
export declare function getUniqueTimeId(): string;
|
|
55
|
+
/**
|
|
56
|
+
* Generates a unique process/thread ID.
|
|
57
|
+
* This ID uniquely identifies a process/thread execution and prevents race conditions when running
|
|
58
|
+
* the same plugin for multiple projects in parallel.
|
|
59
|
+
* Format: timeId-pid-threadId
|
|
60
|
+
* Example: "20240101-120000-000-12345-1"
|
|
61
|
+
*
|
|
62
|
+
* @returns A unique ID string combining timestamp, process ID, and thread ID
|
|
63
|
+
*/
|
|
64
|
+
export declare function getUniqueProcessThreadId(): string;
|
|
65
|
+
/**
|
|
66
|
+
* Generates a unique instance ID based on performance time origin, process ID, thread ID, and instance count.
|
|
67
|
+
* This ID uniquely identifies an instance across processes and threads.
|
|
68
|
+
* Format: timestamp.pid.threadId.counter
|
|
69
|
+
* Example: "20240101-120000-000.12345.1.1"
|
|
70
|
+
*
|
|
71
|
+
* @param counter - Counter that provides the next instance count value
|
|
72
|
+
* @returns A unique ID string combining timestamp, process ID, thread ID, and counter
|
|
73
|
+
*/
|
|
74
|
+
export declare function getUniqueInstanceId(counter: Counter): string;
|
|
75
|
+
/**
|
|
76
|
+
* Converts a timestamp in milliseconds to a sortable, human-readable date string.
|
|
77
|
+
* Format: yyyymmdd-hhmmss-ms
|
|
78
|
+
* Example: "20240101-120000-000"
|
|
79
|
+
*
|
|
80
|
+
* @param timestampMs - Timestamp in milliseconds
|
|
81
|
+
* @returns A sortable date string in yyyymmdd-hhmmss-ms format
|
|
82
|
+
*/
|
|
83
|
+
export declare function sortableReadableDateString(timestampMs: number): string;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import process from 'node:process';
|
|
2
|
+
import { threadId } from 'node:worker_threads';
|
|
3
|
+
/**
|
|
4
|
+
* Base regex pattern for time ID format: yyyymmdd-hhmmss-ms
|
|
5
|
+
*/
|
|
6
|
+
export const TIME_ID_BASE = /\d{8}-\d{6}-\d{3}/;
|
|
7
|
+
/**
|
|
8
|
+
* Regex patterns for validating process and instance ID formats.
|
|
9
|
+
* All patterns use strict anchors (^ and $) to ensure complete matches.
|
|
10
|
+
*/
|
|
11
|
+
export const ID_PATTERNS = Object.freeze({
|
|
12
|
+
/**
|
|
13
|
+
* Time ID / Run ID format: yyyymmdd-hhmmss-ms
|
|
14
|
+
* Example: "20240101-120000-000"
|
|
15
|
+
* Used by: getUniqueTimeId()
|
|
16
|
+
*/
|
|
17
|
+
TIME_ID: new RegExp(`^${TIME_ID_BASE.source}$`),
|
|
18
|
+
/**
|
|
19
|
+
* Group ID format: alias by convention, semantically represents a group of instances
|
|
20
|
+
* Example: "20240101-120000-000"
|
|
21
|
+
* Used by: grouping related instances by time
|
|
22
|
+
*/
|
|
23
|
+
GROUP_ID: new RegExp(`^${TIME_ID_BASE.source}$`),
|
|
24
|
+
/**
|
|
25
|
+
* Process/Thread ID format: timeId-pid-threadId
|
|
26
|
+
* Example: "20240101-120000-000-12345-1"
|
|
27
|
+
* Used by: getUniqueProcessThreadId()
|
|
28
|
+
*/
|
|
29
|
+
PROCESS_THREAD_ID: new RegExp(`^${TIME_ID_BASE.source}-\\d+-\\d+$`),
|
|
30
|
+
/**
|
|
31
|
+
* Instance ID format: timeId.pid.threadId.counter
|
|
32
|
+
* Example: "20240101-120000-000.12345.1.1"
|
|
33
|
+
* Used by: getUniqueInstanceId()
|
|
34
|
+
*/
|
|
35
|
+
INSTANCE_ID: new RegExp(`^${TIME_ID_BASE.source}\\.\\d+\\.\\d+\\.\\d+$`),
|
|
36
|
+
});
|
|
37
|
+
/**
|
|
38
|
+
* Generates a unique run ID.
|
|
39
|
+
* This ID uniquely identifies a run/execution with a globally unique, sortable, human-readable date string.
|
|
40
|
+
* Format: yyyymmdd-hhmmss-ms
|
|
41
|
+
* Example: "20240101-120000-000"
|
|
42
|
+
*
|
|
43
|
+
* @returns A unique run ID string in readable date format
|
|
44
|
+
*/
|
|
45
|
+
export function getUniqueTimeId() {
|
|
46
|
+
return sortableReadableDateString(Math.floor(performance.timeOrigin + performance.now()));
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Generates a unique process/thread ID.
|
|
50
|
+
* This ID uniquely identifies a process/thread execution and prevents race conditions when running
|
|
51
|
+
* the same plugin for multiple projects in parallel.
|
|
52
|
+
* Format: timeId-pid-threadId
|
|
53
|
+
* Example: "20240101-120000-000-12345-1"
|
|
54
|
+
*
|
|
55
|
+
* @returns A unique ID string combining timestamp, process ID, and thread ID
|
|
56
|
+
*/
|
|
57
|
+
export function getUniqueProcessThreadId() {
|
|
58
|
+
return `${getUniqueTimeId()}-${process.pid}-${threadId}`;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Generates a unique instance ID based on performance time origin, process ID, thread ID, and instance count.
|
|
62
|
+
* This ID uniquely identifies an instance across processes and threads.
|
|
63
|
+
* Format: timestamp.pid.threadId.counter
|
|
64
|
+
* Example: "20240101-120000-000.12345.1.1"
|
|
65
|
+
*
|
|
66
|
+
* @param counter - Counter that provides the next instance count value
|
|
67
|
+
* @returns A unique ID string combining timestamp, process ID, thread ID, and counter
|
|
68
|
+
*/
|
|
69
|
+
export function getUniqueInstanceId(counter) {
|
|
70
|
+
return `${getUniqueTimeId()}.${process.pid}.${threadId}.${counter.next()}`;
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Converts a timestamp in milliseconds to a sortable, human-readable date string.
|
|
74
|
+
* Format: yyyymmdd-hhmmss-ms
|
|
75
|
+
* Example: "20240101-120000-000"
|
|
76
|
+
*
|
|
77
|
+
* @param timestampMs - Timestamp in milliseconds
|
|
78
|
+
* @returns A sortable date string in yyyymmdd-hhmmss-ms format
|
|
79
|
+
*/
|
|
80
|
+
export function sortableReadableDateString(timestampMs) {
|
|
81
|
+
const date = new Date(timestampMs);
|
|
82
|
+
const MILLISECONDS_PER_SECOND = 1000;
|
|
83
|
+
const yyyy = date.getFullYear();
|
|
84
|
+
const mm = String(date.getMonth() + 1).padStart(2, '0');
|
|
85
|
+
const dd = String(date.getDate()).padStart(2, '0');
|
|
86
|
+
const hh = String(date.getHours()).padStart(2, '0');
|
|
87
|
+
const min = String(date.getMinutes()).padStart(2, '0');
|
|
88
|
+
const ss = String(date.getSeconds()).padStart(2, '0');
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-magic-numbers
|
|
90
|
+
const ms = String(timestampMs % MILLISECONDS_PER_SECOND).padStart(3, '0');
|
|
91
|
+
return `${yyyy}${mm}${dd}-${hh}${min}${ss}-${ms}`;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=process-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-id.js","sourceRoot":"","sources":["../../../src/lib/process-id.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAc/C;;GAEG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;IACvC;;;;OAIG;IACH,OAAO,EAAE,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;IAC/C;;;;OAIG;IACH,QAAQ,EAAE,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;IAChD;;;;OAIG;IACH,iBAAiB,EAAE,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,aAAa,CAAC;IACnE;;;;OAIG;IACH,WAAW,EAAE,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,MAAM,wBAAwB,CAAC;CAChE,CAAC,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,0BAA0B,CAC/B,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,CACvD,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB;IACtC,OAAO,GAAG,eAAe,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,QAAQ,EAAE,CAAC;AAC3D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,OAAO,GAAG,eAAe,EAAE,IAAI,OAAO,CAAC,GAAG,IAAI,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CAAC,WAAmB;IAC5D,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACnC,MAAM,uBAAuB,GAAG,IAAI,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACnD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACtD,+DAA+D;IAC/D,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,GAAG,uBAAuB,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAE1E,OAAO,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC;AACpD,CAAC"}
|
|
@@ -22,3 +22,8 @@ export declare const PROFILER_DEBUG_ENV_VAR = "CP_PROFILER_DEBUG";
|
|
|
22
22
|
* CP_SHARDED_WAL_COORDINATOR_ID=coordinator-1 npm run dev
|
|
23
23
|
*/
|
|
24
24
|
export declare const SHARDED_WAL_COORDINATOR_ID_ENV_VAR = "CP_SHARDED_WAL_COORDINATOR_ID";
|
|
25
|
+
/**
|
|
26
|
+
* Default base name for WAL files.
|
|
27
|
+
* Used as the base name for sharded WAL files (e.g., "trace" in "trace.json").
|
|
28
|
+
*/
|
|
29
|
+
export declare const PROFILER_PERSIST_BASENAME = "trace";
|
|
@@ -22,4 +22,9 @@ export const PROFILER_DEBUG_ENV_VAR = 'CP_PROFILER_DEBUG';
|
|
|
22
22
|
* CP_SHARDED_WAL_COORDINATOR_ID=coordinator-1 npm run dev
|
|
23
23
|
*/
|
|
24
24
|
export const SHARDED_WAL_COORDINATOR_ID_ENV_VAR = 'CP_SHARDED_WAL_COORDINATOR_ID';
|
|
25
|
+
/**
|
|
26
|
+
* Default base name for WAL files.
|
|
27
|
+
* Used as the base name for sharded WAL files (e.g., "trace" in "trace.json").
|
|
28
|
+
*/
|
|
29
|
+
export const PROFILER_PERSIST_BASENAME = 'trace';
|
|
25
30
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/lib/profiler/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,cAAc,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/lib/profiler/constants.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,cAAc,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAC7C,+BAA+B,CAAC;AAElC;;;GAGG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,OAAO,CAAC"}
|
|
@@ -2,9 +2,10 @@ import path from 'node:path';
|
|
|
2
2
|
import { isEnvVarEnabled } from '../env.js';
|
|
3
3
|
import { subscribeProcessExit } from '../exit-process.js';
|
|
4
4
|
import { PerformanceObserverSink, } from '../performance-observer.js';
|
|
5
|
+
import { getUniqueInstanceId, getUniqueTimeId, } from '../process-id.js';
|
|
5
6
|
import { objectToEntries } from '../transform.js';
|
|
6
7
|
import { errorToMarkerPayload } from '../user-timing-extensibility-api-utils.js';
|
|
7
|
-
import { WriteAheadLogFile,
|
|
8
|
+
import { WriteAheadLogFile, getShardedPath, } from '../wal.js';
|
|
8
9
|
import { PROFILER_DEBUG_ENV_VAR, PROFILER_ENABLED_ENV_VAR, } from './constants.js';
|
|
9
10
|
import { Profiler } from './profiler.js';
|
|
10
11
|
import { traceEventWalFormat } from './wal-json-trace.js';
|
|
@@ -30,6 +31,13 @@ export class NodejsProfiler extends Profiler {
|
|
|
30
31
|
#state = 'idle';
|
|
31
32
|
#debug;
|
|
32
33
|
#unsubscribeExitHandlers;
|
|
34
|
+
#shardCounter = {
|
|
35
|
+
next: (() => {
|
|
36
|
+
// eslint-disable-next-line functional/no-let
|
|
37
|
+
let count = 0;
|
|
38
|
+
return () => ++count;
|
|
39
|
+
})(),
|
|
40
|
+
};
|
|
33
41
|
/**
|
|
34
42
|
* Creates a NodejsProfiler instance.
|
|
35
43
|
* A WriteAheadLogFile sink is automatically created for buffering performance data.
|
|
@@ -45,8 +53,8 @@ export class NodejsProfiler extends Profiler {
|
|
|
45
53
|
file: filename ??
|
|
46
54
|
path.join(process.cwd(), getShardedPath({
|
|
47
55
|
dir: 'tmp/profiles',
|
|
48
|
-
groupId:
|
|
49
|
-
shardId:
|
|
56
|
+
groupId: getUniqueTimeId(),
|
|
57
|
+
shardId: getUniqueInstanceId(this.#shardCounter),
|
|
50
58
|
format: walFormat,
|
|
51
59
|
})),
|
|
52
60
|
codec: walFormat.codec,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiler-node.js","sourceRoot":"","sources":["../../../../src/lib/profiler/profiler-node.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAEL,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAKjF,OAAO,EAEL,iBAAiB,EACjB,
|
|
1
|
+
{"version":3,"file":"profiler-node.js","sourceRoot":"","sources":["../../../../src/lib/profiler/profiler-node.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAEL,uBAAuB,GACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAEL,mBAAmB,EACnB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAKjF,OAAO,EAEL,iBAAiB,EACjB,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,sBAAsB,EACtB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAwB,MAAM,eAAe,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AA8B1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,cAMX,SAAQ,QAAgB;IACxB,KAAK,CAA+B;IACpC,wBAAwB,CAAwC;IAChE,MAAM,GAAkC,MAAM,CAAC;IAC/C,MAAM,CAAU;IAChB,wBAAwB,CAA2B;IACnD,aAAa,GAAY;QACvB,IAAI,EAAE,CAAC,GAAG,EAAE;YACV,6CAA6C;YAC7C,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,OAAO,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC;QACvB,CAAC,CAAC,EAAE;KACL,CAAC;IAEF;;;;OAIG;IACH,kDAAkD;IAClD,YAAY,OAAoD;QAC9D,MAAM,EACJ,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,YAAY,EACZ,OAAO,EACP,QAAQ,EACR,WAAW,GAAG,sBAAsB,EACpC,GAAG,eAAe,EACnB,GAAG,OAAO,CAAC;QACZ,MAAM,cAAc,GAAG,OAAO,IAAI,eAAe,CAAC,wBAAwB,CAAC,CAAC;QAC5E,KAAK,CAAC,EAAE,GAAG,eAAe,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;QAEvD,MAAM,SAAS,GAAG,mBAAmB,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,iBAAiB,CAAC;YACjC,IAAI,EACF,QAAQ;gBACR,IAAI,CAAC,IAAI,CACP,OAAO,CAAC,GAAG,EAAE,EACb,cAAc,CAAC;oBACb,GAAG,EAAE,cAAc;oBACnB,OAAO,EAAE,eAAe,EAAE;oBAC1B,OAAO,EAAE,mBAAmB,CAAC,IAAI,CAAC,aAAa,CAAC;oBAChD,MAAM,EAAE,SAAS;iBAClB,CAAC,CACH;YACH,KAAK,EAAE,SAAS,CAAC,KAAK;SACvB,CAAiC,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAE3C,IAAI,CAAC,wBAAwB,GAAG,IAAI,uBAAuB,CAAC;YAC1D,IAAI,EAAE,IAAI,CAAC,KAAK;YAChB,eAAe;YACf,sBAAsB;YACtB,cAAc;YACd,YAAY;YACZ,WAAW;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,wBAAwB,GAAG,oBAAoB,CAAC;YACnD,OAAO,EAAE,CACP,KAAc,EACd,IAAgD,EAChD,EAAE;gBACF,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;YACtC,CAAC;YACD,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBACxB,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;;OAQG;IACH,YAAY,CAAC,OAAgB;QAC3B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,UAAkB;QAClC,MAAM,uBAAuB,GAAkB;YAC7C,QAAQ,EAAE,QAAQ;YAClB,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,8BAA8B,UAAU,EAAE;YACvD,UAAU,EAAE,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACzE,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CACf,KAAc,EACd,IAAgD;QAEhD,IAAI,CAAC,MAAM,CACT,aAAa,EACb,oBAAoB,CAAC,KAAK,EAAE;YAC1B,WAAW,EAAE,GAAG,IAAI,qBAAqB;SAC1C,CAAC,CACH,CAAC;QACF,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,2CAA2C;IAC3D,CAAC;IAED;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,IAAmC;QAC7C,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,UAAU,GAAG,GAAG,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE,CAAC;QAE7C,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,eAAe;gBAClB,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;gBACpB,IAAI,CAAC,wBAAwB,CAAC,SAAS,EAAE,CAAC;gBAC1C,MAAM;YAER,KAAK,eAAe,CAAC;YACrB,KAAK,iBAAiB;gBACpB,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACxB,IAAI,CAAC,wBAAwB,CAAC,WAAW,EAAE,CAAC;gBAC5C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBACrB,MAAM;YAER,KAAK,cAAc;gBACjB,6CAA6C;gBAC7C,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;gBACrB,MAAM;YAER;gBACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,CAAC,MAAM,OAAO,IAAI,EAAE,CAAC,CAAC;QACrE,CAAC;QAED,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QAEnB,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,IAAI,CAAC,wBAAwB,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,sCAAsC;IACtC,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,sDAAsD;IAC7C,SAAS;QAChB,OAAO,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC;IACnC,CAAC;IAED,qCAAqC;IAC5B,UAAU,CAAC,OAAgB;QAClC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,mEAAmE;IACnE,IAAI,KAAK;QACP,OAAO;YACL,GAAG,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE;YAC3C,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,KAAK,EAAE,IAAI,CAAC,MAAM;YAClB,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;SAChC,CAAC;IACJ,CAAC;IAED,iDAAiD;IACjD,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,OAAO,CAAC,kBAAkB;QAC5B,CAAC;QACD,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,2DAA2D;IAC3D,IAAI,QAAQ;QACV,OAAQ,IAAI,CAAC,KAAyC,CAAC,OAAO,EAAE,CAAC;IACnE,CAAC;CACF"}
|