nestjs-profiler 1.0.22 → 1.0.25
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/README.md +160 -47
- package/collectors/http-collector.d.ts +12 -0
- package/collectors/http-collector.js +132 -0
- package/collectors/http-collector.js.map +1 -0
- package/collectors/log-collector.d.ts +3 -1
- package/collectors/log-collector.js +33 -12
- package/collectors/log-collector.js.map +1 -1
- package/common/profiler-options.interface.d.ts +1 -0
- package/common/profiler.model.d.ts +14 -0
- package/controllers/profiler.controller.d.ts +14 -1
- package/controllers/profiler.controller.js +148 -2
- package/controllers/profiler.controller.js.map +1 -1
- package/package.json +2 -2
- package/profiler.module.js +6 -0
- package/profiler.module.js.map +1 -1
- package/services/code-quality.service.d.ts +65 -0
- package/services/code-quality.service.js +216 -0
- package/services/code-quality.service.js.map +1 -0
- package/services/health.service.d.ts +59 -0
- package/services/health.service.js +175 -0
- package/services/health.service.js.map +1 -0
- package/services/profiler.service.d.ts +43 -1
- package/services/profiler.service.js +120 -0
- package/services/profiler.service.js.map +1 -1
- package/services/template-builder.service.d.ts +7 -0
- package/services/template-builder.service.js +278 -1
- package/services/template-builder.service.js.map +1 -1
- package/services/view.service.js +24 -12
- package/services/view.service.js.map +1 -1
- package/views/code-quality.html +573 -0
- package/views/dashboard.html +24 -0
- package/views/detail.html +2 -0
- package/views/health.html +468 -0
- package/views/layout.html +64 -1
- package/views/live-logs.html +324 -0
- package/views/summary.html +205 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
19
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
20
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
21
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
22
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
23
|
+
};
|
|
24
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
25
|
+
var ownKeys = function(o) {
|
|
26
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
27
|
+
var ar = [];
|
|
28
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
29
|
+
return ar;
|
|
30
|
+
};
|
|
31
|
+
return ownKeys(o);
|
|
32
|
+
};
|
|
33
|
+
return function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
39
|
+
};
|
|
40
|
+
})();
|
|
41
|
+
var HealthService_1;
|
|
42
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
43
|
+
exports.HealthService = void 0;
|
|
44
|
+
const common_1 = require("@nestjs/common");
|
|
45
|
+
const child_process_1 = require("child_process");
|
|
46
|
+
const util_1 = require("util");
|
|
47
|
+
const path = __importStar(require("path"));
|
|
48
|
+
const fs = __importStar(require("fs"));
|
|
49
|
+
const execAsync = (0, util_1.promisify)(child_process_1.exec);
|
|
50
|
+
const CACHE_TTL_MS = 5 * 60 * 1000;
|
|
51
|
+
let HealthService = HealthService_1 = class HealthService {
|
|
52
|
+
constructor() {
|
|
53
|
+
this.logger = new common_1.Logger(HealthService_1.name);
|
|
54
|
+
this.cachedReport = null;
|
|
55
|
+
}
|
|
56
|
+
async runHealthCheck(force = false) {
|
|
57
|
+
if (!force && this.cachedReport) {
|
|
58
|
+
const age = Date.now() - this.cachedReport.scannedAt;
|
|
59
|
+
if (age < CACHE_TTL_MS) {
|
|
60
|
+
return { ...this.cachedReport, fromCache: true };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
const cwd = process.cwd();
|
|
64
|
+
const packageManager = this.detectPackageManager(cwd);
|
|
65
|
+
const engines = this.getEngines(cwd);
|
|
66
|
+
const npmVersion = await this.getNpmVersion();
|
|
67
|
+
const [auditResult, outdatedResult] = await Promise.all([
|
|
68
|
+
this.runAudit(cwd, packageManager),
|
|
69
|
+
this.runOutdated(cwd, packageManager),
|
|
70
|
+
]);
|
|
71
|
+
const report = {
|
|
72
|
+
audit: auditResult.data,
|
|
73
|
+
outdated: outdatedResult,
|
|
74
|
+
nodeVersion: process.version,
|
|
75
|
+
npmVersion,
|
|
76
|
+
engines,
|
|
77
|
+
packageManager,
|
|
78
|
+
scannedAt: Date.now(),
|
|
79
|
+
error: auditResult.error,
|
|
80
|
+
};
|
|
81
|
+
this.cachedReport = report;
|
|
82
|
+
return report;
|
|
83
|
+
}
|
|
84
|
+
async runAudit(cwd, pm) {
|
|
85
|
+
const cmd = pm === 'yarn'
|
|
86
|
+
? 'yarn audit --json'
|
|
87
|
+
: 'npm audit --json --no-update-notifier';
|
|
88
|
+
const execOpts = { cwd, timeout: 60_000, env: process.env };
|
|
89
|
+
try {
|
|
90
|
+
const { stdout } = await execAsync(cmd, execOpts);
|
|
91
|
+
return { data: JSON.parse(stdout) };
|
|
92
|
+
}
|
|
93
|
+
catch (e) {
|
|
94
|
+
if (e.stdout) {
|
|
95
|
+
try {
|
|
96
|
+
return { data: JSON.parse(e.stdout) };
|
|
97
|
+
}
|
|
98
|
+
catch { }
|
|
99
|
+
}
|
|
100
|
+
const raw = [e.stderr, e.stdout, e.message]
|
|
101
|
+
.filter(Boolean)
|
|
102
|
+
.join('\n');
|
|
103
|
+
const clean = raw
|
|
104
|
+
.split('\n')
|
|
105
|
+
.filter(l => l.trim() &&
|
|
106
|
+
!l.includes('NODE_TLS_REJECT_UNAUTHORIZED') &&
|
|
107
|
+
!l.includes('Warning:') &&
|
|
108
|
+
!l.includes('npm warn') &&
|
|
109
|
+
!l.includes('node --trace-warnings'))
|
|
110
|
+
.slice(0, 5)
|
|
111
|
+
.join('\n')
|
|
112
|
+
.trim();
|
|
113
|
+
let hint = '';
|
|
114
|
+
if (raw.includes('ENOTFOUND') || raw.includes('ECONNREFUSED') || raw.includes('ETIMEDOUT') || raw.includes('network')) {
|
|
115
|
+
hint = 'Could not reach the npm registry. Check your network or proxy settings.';
|
|
116
|
+
}
|
|
117
|
+
else if (raw.includes('ELOCKFILECONFLICT') || raw.includes('package-lock')) {
|
|
118
|
+
hint = 'Lock file issue. Try running npm install first.';
|
|
119
|
+
}
|
|
120
|
+
else if (raw.includes('not found') || raw.includes('not recognized')) {
|
|
121
|
+
hint = 'npm not found in PATH.';
|
|
122
|
+
}
|
|
123
|
+
this.logger.warn(`npm audit failed: ${clean}`);
|
|
124
|
+
return { data: null, error: hint || clean || 'npm audit failed' };
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async runOutdated(cwd, pm) {
|
|
128
|
+
const cmd = pm === 'yarn' ? 'yarn outdated --json' : 'npm outdated --json';
|
|
129
|
+
const execOpts = { cwd, timeout: 30_000, env: process.env };
|
|
130
|
+
try {
|
|
131
|
+
const { stdout } = await execAsync(cmd, execOpts);
|
|
132
|
+
return stdout ? JSON.parse(stdout) : {};
|
|
133
|
+
}
|
|
134
|
+
catch (e) {
|
|
135
|
+
if (e.stdout) {
|
|
136
|
+
try {
|
|
137
|
+
return JSON.parse(e.stdout);
|
|
138
|
+
}
|
|
139
|
+
catch { }
|
|
140
|
+
}
|
|
141
|
+
return {};
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
detectPackageManager(cwd) {
|
|
145
|
+
if (fs.existsSync(path.join(cwd, 'pnpm-lock.yaml')))
|
|
146
|
+
return 'pnpm';
|
|
147
|
+
if (fs.existsSync(path.join(cwd, 'yarn.lock')))
|
|
148
|
+
return 'yarn';
|
|
149
|
+
return 'npm';
|
|
150
|
+
}
|
|
151
|
+
getEngines(cwd) {
|
|
152
|
+
try {
|
|
153
|
+
const pkgPath = path.join(cwd, 'package.json');
|
|
154
|
+
const pkg = JSON.parse(fs.readFileSync(pkgPath, 'utf-8'));
|
|
155
|
+
return pkg.engines || null;
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
return null;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
async getNpmVersion() {
|
|
162
|
+
try {
|
|
163
|
+
const { stdout } = await execAsync('npm --version', { timeout: 5_000 });
|
|
164
|
+
return stdout.trim();
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return 'unknown';
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
};
|
|
171
|
+
exports.HealthService = HealthService;
|
|
172
|
+
exports.HealthService = HealthService = HealthService_1 = __decorate([
|
|
173
|
+
(0, common_1.Injectable)()
|
|
174
|
+
], HealthService);
|
|
175
|
+
//# sourceMappingURL=health.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.service.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/services/health.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { EventEmitter } from 'events';
|
|
2
|
+
import { RequestProfile, QueryProfile, LogProfile, HttpCallProfile } from '../common/profiler.model';
|
|
2
3
|
import type { ProfilerOptions } from '../common/profiler-options.interface';
|
|
3
4
|
import type { ProfilerStorage } from '../storage/profiler-storage.interface';
|
|
4
5
|
export declare class ProfilerService {
|
|
@@ -6,6 +7,7 @@ export declare class ProfilerService {
|
|
|
6
7
|
private storage;
|
|
7
8
|
private readonly als;
|
|
8
9
|
private readonly logger;
|
|
10
|
+
readonly logEmitter: EventEmitter<[never]>;
|
|
9
11
|
constructor(options: ProfilerOptions, storage: ProfilerStorage);
|
|
10
12
|
isEnabled(): boolean;
|
|
11
13
|
startRequest(): RequestProfile | null;
|
|
@@ -15,6 +17,7 @@ export declare class ProfilerService {
|
|
|
15
17
|
addQuery(query: QueryProfile): void;
|
|
16
18
|
addLog(log: LogProfile): void;
|
|
17
19
|
addCache(cacheProfile: import('../common/profiler.model').CacheProfile): void;
|
|
20
|
+
addHttpCall(call: HttpCallProfile): void;
|
|
18
21
|
getCurrentProfile(): RequestProfile | undefined;
|
|
19
22
|
getDashboardData(): Promise<RequestProfile[]>;
|
|
20
23
|
getProfileDetail(id: string): Promise<RequestProfile | null>;
|
|
@@ -27,5 +30,44 @@ export declare class ProfilerService {
|
|
|
27
30
|
}>;
|
|
28
31
|
getAllProfilesJson(): Promise<RequestProfile[]>;
|
|
29
32
|
getProfileJson(id: string): Promise<RequestProfile | null>;
|
|
33
|
+
getSummaryStats(): Promise<{
|
|
34
|
+
totalRequests: number;
|
|
35
|
+
avgDuration: number;
|
|
36
|
+
p95Duration: number;
|
|
37
|
+
errorRate: number;
|
|
38
|
+
totalQueries: number;
|
|
39
|
+
slowQueries: number;
|
|
40
|
+
nPlusOneCount: number;
|
|
41
|
+
seqScanCount: number;
|
|
42
|
+
cacheHitRate: number;
|
|
43
|
+
totalCacheOps: number;
|
|
44
|
+
methodDistribution: Record<string, number>;
|
|
45
|
+
statusDistribution: Record<string, number>;
|
|
46
|
+
topSlowEndpoints: {
|
|
47
|
+
route: string;
|
|
48
|
+
method: string;
|
|
49
|
+
avgDuration: number;
|
|
50
|
+
callCount: number;
|
|
51
|
+
}[];
|
|
52
|
+
topSlowQueries: {
|
|
53
|
+
sql: string;
|
|
54
|
+
duration: number;
|
|
55
|
+
requestUrl: string;
|
|
56
|
+
}[];
|
|
57
|
+
recentErrors: {
|
|
58
|
+
id: string;
|
|
59
|
+
url: string;
|
|
60
|
+
method: string;
|
|
61
|
+
statusCode: number;
|
|
62
|
+
message: string;
|
|
63
|
+
timestamp: number;
|
|
64
|
+
}[];
|
|
65
|
+
memoryUsage: {
|
|
66
|
+
rss: number;
|
|
67
|
+
heapUsed: number;
|
|
68
|
+
heapTotal: number;
|
|
69
|
+
} | null;
|
|
70
|
+
}>;
|
|
71
|
+
getHttpCallsList(): Promise<any[]>;
|
|
30
72
|
getCacheList(): Promise<any[]>;
|
|
31
73
|
}
|
|
@@ -49,6 +49,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
49
49
|
exports.ProfilerService = void 0;
|
|
50
50
|
const common_1 = require("@nestjs/common");
|
|
51
51
|
const async_hooks_1 = require("async_hooks");
|
|
52
|
+
const events_1 = require("events");
|
|
52
53
|
const crypto = __importStar(require("crypto"));
|
|
53
54
|
let ProfilerService = ProfilerService_1 = class ProfilerService {
|
|
54
55
|
constructor(options, storage) {
|
|
@@ -56,6 +57,7 @@ let ProfilerService = ProfilerService_1 = class ProfilerService {
|
|
|
56
57
|
this.storage = storage;
|
|
57
58
|
this.als = new async_hooks_1.AsyncLocalStorage();
|
|
58
59
|
this.logger = new common_1.Logger(ProfilerService_1.name);
|
|
60
|
+
this.logEmitter = new events_1.EventEmitter();
|
|
59
61
|
}
|
|
60
62
|
isEnabled() {
|
|
61
63
|
return this.options.enabled !== false;
|
|
@@ -74,6 +76,7 @@ let ProfilerService = ProfilerService_1 = class ProfilerService {
|
|
|
74
76
|
queries: [],
|
|
75
77
|
logs: [],
|
|
76
78
|
cache: [],
|
|
79
|
+
httpCalls: [],
|
|
77
80
|
timestamp: Date.now(),
|
|
78
81
|
};
|
|
79
82
|
this.als.enterWith(profile);
|
|
@@ -129,6 +132,7 @@ let ProfilerService = ProfilerService_1 = class ProfilerService {
|
|
|
129
132
|
}
|
|
130
133
|
}
|
|
131
134
|
addLog(log) {
|
|
135
|
+
this.logEmitter.emit('log', log);
|
|
132
136
|
const profile = this.als.getStore();
|
|
133
137
|
if (profile) {
|
|
134
138
|
profile.logs.push(log);
|
|
@@ -147,6 +151,15 @@ let ProfilerService = ProfilerService_1 = class ProfilerService {
|
|
|
147
151
|
this.logger.debug(`Profiler: Skipping cache capture for ${cacheProfile.key} - No active request context (ALS is empty).`);
|
|
148
152
|
}
|
|
149
153
|
}
|
|
154
|
+
addHttpCall(call) {
|
|
155
|
+
const profile = this.als.getStore();
|
|
156
|
+
if (profile) {
|
|
157
|
+
if (!profile.httpCalls)
|
|
158
|
+
profile.httpCalls = [];
|
|
159
|
+
profile.httpCalls.push(call);
|
|
160
|
+
this.storage.save(profile);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
150
163
|
getCurrentProfile() {
|
|
151
164
|
return this.als.getStore();
|
|
152
165
|
}
|
|
@@ -194,6 +207,113 @@ let ProfilerService = ProfilerService_1 = class ProfilerService {
|
|
|
194
207
|
async getProfileJson(id) {
|
|
195
208
|
return Promise.resolve(this.storage.get(id));
|
|
196
209
|
}
|
|
210
|
+
async getSummaryStats() {
|
|
211
|
+
const profiles = await Promise.resolve(this.storage.all());
|
|
212
|
+
if (profiles.length === 0) {
|
|
213
|
+
return {
|
|
214
|
+
totalRequests: 0, avgDuration: 0, p95Duration: 0, errorRate: 0,
|
|
215
|
+
totalQueries: 0, slowQueries: 0, nPlusOneCount: 0, seqScanCount: 0,
|
|
216
|
+
cacheHitRate: 0, totalCacheOps: 0,
|
|
217
|
+
methodDistribution: {}, statusDistribution: {},
|
|
218
|
+
topSlowEndpoints: [], topSlowQueries: [], recentErrors: [],
|
|
219
|
+
memoryUsage: null,
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
const durations = profiles.map(p => p.duration || 0).sort((a, b) => a - b);
|
|
223
|
+
const avgDuration = durations.reduce((s, d) => s + d, 0) / durations.length;
|
|
224
|
+
const p95Duration = durations[Math.floor(durations.length * 0.95)] ?? durations[durations.length - 1];
|
|
225
|
+
const errorProfiles = profiles.filter(p => p.statusCode && p.statusCode >= 400);
|
|
226
|
+
const errorRate = (errorProfiles.length / profiles.length) * 100;
|
|
227
|
+
const allQueries = profiles.flatMap(p => p.queries || []);
|
|
228
|
+
const slowQueries = allQueries.filter(q => q.duration > 100).length;
|
|
229
|
+
const nPlusOneCount = allQueries.filter(q => q.tags?.includes('n+1')).length;
|
|
230
|
+
const seqScanCount = allQueries.filter(q => q.tags?.includes('seq-scan')).length;
|
|
231
|
+
const allCacheOps = profiles.flatMap(p => p.cache || []);
|
|
232
|
+
const cacheHits = allCacheOps.filter(c => c.result === 'hit').length;
|
|
233
|
+
const cacheGets = allCacheOps.filter(c => c.operation === 'get').length;
|
|
234
|
+
const cacheHitRate = cacheGets > 0 ? (cacheHits / cacheGets) * 100 : 0;
|
|
235
|
+
const methodDistribution = {};
|
|
236
|
+
profiles.forEach(p => {
|
|
237
|
+
const m = p.method || 'UNKNOWN';
|
|
238
|
+
methodDistribution[m] = (methodDistribution[m] || 0) + 1;
|
|
239
|
+
});
|
|
240
|
+
const statusDistribution = {};
|
|
241
|
+
profiles.forEach(p => {
|
|
242
|
+
const code = p.statusCode || 0;
|
|
243
|
+
const bucket = code >= 500 ? '5xx' : code >= 400 ? '4xx' : code >= 300 ? '3xx' : code >= 200 ? '2xx' : 'unknown';
|
|
244
|
+
statusDistribution[bucket] = (statusDistribution[bucket] || 0) + 1;
|
|
245
|
+
});
|
|
246
|
+
const endpointMap = new Map();
|
|
247
|
+
profiles.forEach(p => {
|
|
248
|
+
const key = `${p.method}:${p.route || p.url}`;
|
|
249
|
+
if (!endpointMap.has(key))
|
|
250
|
+
endpointMap.set(key, { durations: [], method: p.method });
|
|
251
|
+
endpointMap.get(key).durations.push(p.duration || 0);
|
|
252
|
+
});
|
|
253
|
+
const topSlowEndpoints = Array.from(endpointMap.entries())
|
|
254
|
+
.map(([key, val]) => ({
|
|
255
|
+
route: key.split(':').slice(1).join(':'),
|
|
256
|
+
method: val.method,
|
|
257
|
+
avgDuration: val.durations.reduce((s, d) => s + d, 0) / val.durations.length,
|
|
258
|
+
callCount: val.durations.length,
|
|
259
|
+
}))
|
|
260
|
+
.sort((a, b) => b.avgDuration - a.avgDuration)
|
|
261
|
+
.slice(0, 5);
|
|
262
|
+
const topSlowQueries = [...allQueries]
|
|
263
|
+
.sort((a, b) => b.duration - a.duration)
|
|
264
|
+
.slice(0, 5)
|
|
265
|
+
.map(q => {
|
|
266
|
+
const parent = profiles.find(p => p.queries.includes(q));
|
|
267
|
+
return { sql: q.sql || q.query || '', duration: q.duration, requestUrl: parent?.url || '' };
|
|
268
|
+
});
|
|
269
|
+
const recentErrors = errorProfiles
|
|
270
|
+
.slice(0, 5)
|
|
271
|
+
.map(p => ({
|
|
272
|
+
id: p.id,
|
|
273
|
+
url: p.url,
|
|
274
|
+
method: p.method,
|
|
275
|
+
statusCode: p.statusCode || 0,
|
|
276
|
+
message: p.exception?.message || '',
|
|
277
|
+
timestamp: p.timestamp,
|
|
278
|
+
}));
|
|
279
|
+
const latestWithMemory = [...profiles].find(p => p.memory);
|
|
280
|
+
const memoryUsage = latestWithMemory?.memory
|
|
281
|
+
? {
|
|
282
|
+
rss: Math.round(latestWithMemory.memory.rss / 1024 / 1024),
|
|
283
|
+
heapUsed: Math.round(latestWithMemory.memory.heapUsed / 1024 / 1024),
|
|
284
|
+
heapTotal: Math.round(latestWithMemory.memory.heapTotal / 1024 / 1024),
|
|
285
|
+
}
|
|
286
|
+
: null;
|
|
287
|
+
return {
|
|
288
|
+
totalRequests: profiles.length,
|
|
289
|
+
avgDuration: Math.round(avgDuration),
|
|
290
|
+
p95Duration: Math.round(p95Duration),
|
|
291
|
+
errorRate: Math.round(errorRate * 10) / 10,
|
|
292
|
+
totalQueries: allQueries.length,
|
|
293
|
+
slowQueries,
|
|
294
|
+
nPlusOneCount,
|
|
295
|
+
seqScanCount,
|
|
296
|
+
cacheHitRate: Math.round(cacheHitRate * 10) / 10,
|
|
297
|
+
totalCacheOps: allCacheOps.length,
|
|
298
|
+
methodDistribution,
|
|
299
|
+
statusDistribution,
|
|
300
|
+
topSlowEndpoints,
|
|
301
|
+
topSlowQueries,
|
|
302
|
+
recentErrors,
|
|
303
|
+
memoryUsage,
|
|
304
|
+
};
|
|
305
|
+
}
|
|
306
|
+
async getHttpCallsList() {
|
|
307
|
+
const profiles = await Promise.resolve(this.storage.all());
|
|
308
|
+
const allCalls = profiles.flatMap(p => (p.httpCalls || []).map(c => ({
|
|
309
|
+
...c,
|
|
310
|
+
requestId: p.id,
|
|
311
|
+
requestUrl: p.url,
|
|
312
|
+
requestMethod: p.method,
|
|
313
|
+
})));
|
|
314
|
+
allCalls.sort((a, b) => b.duration - a.duration);
|
|
315
|
+
return allCalls;
|
|
316
|
+
}
|
|
197
317
|
async getCacheList() {
|
|
198
318
|
const profiles = await Promise.resolve(this.storage.all());
|
|
199
319
|
const allOps = profiles.flatMap(p => (p.cache || []).map(c => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"profiler.service.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/services/profiler.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"profiler.service.js","sourceRoot":"","sources":["../../../libs/nestjs-profiler/src/services/profiler.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,11 @@ import { ViewService } from './view.service';
|
|
|
3
3
|
export declare class TemplateBuilderService {
|
|
4
4
|
private readonly viewService;
|
|
5
5
|
constructor(viewService: ViewService);
|
|
6
|
+
buildLiveLogsPage(): string;
|
|
7
|
+
buildHealthPage(): string;
|
|
8
|
+
buildCodeQualityPage(): string;
|
|
9
|
+
buildSummaryPage(stats: Awaited<ReturnType<import('./profiler.service').ProfilerService['getSummaryStats']>>): string;
|
|
10
|
+
private getMethodBadgeClass;
|
|
6
11
|
buildDashboard(profiles: RequestProfile[]): string;
|
|
7
12
|
buildDetail(profile: RequestProfile): string;
|
|
8
13
|
private buildHeadersTable;
|
|
@@ -23,5 +28,7 @@ export declare class TemplateBuilderService {
|
|
|
23
28
|
private buildLogRow;
|
|
24
29
|
private buildPagination;
|
|
25
30
|
private getStatusColor;
|
|
31
|
+
buildHttpCallsList(calls: any[]): string;
|
|
32
|
+
private buildHttpCallsSection;
|
|
26
33
|
private buildCacheSection;
|
|
27
34
|
}
|