@report-toolkit/common
Version:
See docs at [https://ibm.github.io/report-toolkit](https://ibm.github.io/report-toolkit)
112 lines (101 loc) • 2.16 kB
TypeScript
export interface ReportHeaderCpu {
model: string;
speed: number;
user: number;
nice: number;
sys: number;
idle: number;
irq: number;
}
export interface ReportHeader {
event: string;
trigger: string;
filename: string;
dumpEventTime: string;
dumpEventTimeStamp: string;
processId: number;
threadId: number | null;
cwd: string;
commandLine: string[];
nodejsVersion: string;
wordSize: number;
arch: string;
platform: string;
componentVersions: {
[key: string]: string;
};
release: {
name: string;
headersUrl: string;
sourceUrl: string;
};
osName: string;
osRelease: string;
osVersion: string;
osMachine: string;
cpus: ReportHeaderCpu[];
host: string;
}
export interface ReportJSStack {
message: string;
stack: string[];
}
export interface NativeStackFrame {
pc: string;
symbol: string;
}
export interface ReportHeapSpace {
memorySize: number;
committedMemory: number;
capacity: number;
used: number;
available: number;
}
export interface ReportJSHeap {
totalMemory: number;
totalCommittedMemory: number;
usedMemory: number;
availableMemory: number;
memoryLimit: number;
heapSpaces: {
[key: string]: ReportHeapSpace;
};
}
export interface ReportResourceUsage {
userCpuSeconds: number;
kernelCpuSeconds: number;
cpuConsumptionPercent: number;
maxRss: number;
pageFaults: {
IORequired: number;
IONotRequired: number;
};
fsActivity: {
reads: number;
writes: number;
};
}
// TODO: Multiple variants, CBA for PoC
type ReportUVItem = {};
export type ReportLimit = number | 'unlimited';
export interface ReportUserLimit {
hard: ReportLimit;
soft: ReportLimit;
}
export interface DiagnosticReport {
header: ReportHeader;
javascriptStack: ReportJSStack;
nativeStack: NativeStackFrame[];
javascriptHeap: ReportJSHeap;
resourceUsage: ReportResourceUsage;
libuv: ReportUVItem[];
environmentVariables: {
[key: string]: string;
};
// not present on reports generated on win32 systems
userLimits?: {
[key: string]: ReportUserLimit;
};
sharedObjects: string[];
workers: DiagnosticReport[];
}