vafast 0.4.6 → 0.4.8
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 +43 -8
- package/dist/base-server-B7MYJNsl.mjs +112 -0
- package/dist/{base-server-DMhpmq5v.mjs.map → base-server-B7MYJNsl.mjs.map} +1 -1
- package/dist/{base-server-CtA1bZSg.d.mts → base-server-DLxtulAO.d.mts} +2 -2
- package/dist/{base64url-DUtluDF0.mjs → base64url-C2zopQdH.mjs} +1 -1
- package/dist/{base64url-DUtluDF0.mjs.map → base64url-C2zopQdH.mjs.map} +1 -1
- package/dist/{base64url-0N9uQPjZ.d.mts → base64url-Dwi2Afhc.d.mts} +1 -1
- package/dist/{component-route-DF5feXJI.d.mts → component-route-nrrO0iSI.d.mts} +2 -2
- package/dist/{component-router-uSylkByf.mjs → component-router-RwPL20vN.mjs} +10 -11
- package/dist/{component-router-uSylkByf.mjs.map → component-router-RwPL20vN.mjs.map} +1 -1
- package/dist/component-server-DomPJ_7S.mjs +119 -0
- package/dist/{component-server-DIgykV0F.mjs.map → component-server-DomPJ_7S.mjs.map} +1 -1
- package/dist/{component-server-DvcPVnL4.d.mts → component-server-JqpDC7wy.d.mts} +4 -4
- package/dist/{create-handler-DRcJRkx9.d.mts → create-handler-DKw-sQOV.d.mts} +2 -2
- package/dist/{create-handler-IzOE24L5.mjs → create-handler-RconAcAB.mjs} +5 -6
- package/dist/{create-handler-IzOE24L5.mjs.map → create-handler-RconAcAB.mjs.map} +1 -1
- package/dist/defineRoute.d.mts +3 -3
- package/dist/{dependency-manager-C_qZvkaw.d.mts → dependency-manager-C3_7ic4h.d.mts} +1 -1
- package/dist/dependency-manager-DCmh7xFc.mjs +60 -0
- package/dist/{dependency-manager-BpN2YufZ.mjs.map → dependency-manager-DCmh7xFc.mjs.map} +1 -1
- package/dist/{formats-CYLwo9GJ.d.mts → formats-Dk-DSBY4.d.mts} +1 -1
- package/dist/{go-await-2Pzj4snS.mjs → go-await-C4ZdEUwY.mjs} +1 -1
- package/dist/{go-await-2Pzj4snS.mjs.map → go-await-C4ZdEUwY.mjs.map} +1 -1
- package/dist/{go-await-DRItVwwh.d.mts → go-await-DL1A_-4X.d.mts} +1 -1
- package/dist/{handle-D0TFoOiX.d.mts → handle-BhR3oyky.d.mts} +1 -1
- package/dist/{handle-s4V-E2RE.mjs → handle-BxJwSvV0.mjs} +2 -2
- package/dist/{handle-s4V-E2RE.mjs.map → handle-BxJwSvV0.mjs.map} +1 -1
- package/dist/{html-renderer-CMGKJoIy.d.mts → html-renderer-CfKK2BrP.d.mts} +1 -1
- package/dist/{html-renderer-CuakkPIt.mjs → html-renderer-DTtJ_Yic.mjs} +26 -27
- package/dist/{html-renderer-CuakkPIt.mjs.map → html-renderer-DTtJ_Yic.mjs.map} +1 -1
- package/dist/{index-CdOYxwDQ.d.mts → index-CEfOqqvd.d.mts} +5 -5
- package/dist/index.d.mts +24 -24
- package/dist/index.mjs +20 -23
- package/dist/index.mjs.map +1 -1
- package/dist/middleware/component-router.d.mts +1 -1
- package/dist/middleware/component-router.mjs +1 -2
- package/dist/{middleware-CV5o-4wk.mjs → middleware-CewKbtb4.mjs} +51 -58
- package/dist/{middleware-CV5o-4wk.mjs.map → middleware-CewKbtb4.mjs.map} +1 -1
- package/dist/{middleware-5PjaxPMA.d.mts → middleware-KXEoefLX.d.mts} +2 -2
- package/dist/middleware.d.mts +3 -3
- package/dist/middleware.mjs +1 -2
- package/dist/monitoring/index.d.mts +8 -33
- package/dist/monitoring/index.mjs +1 -27
- package/dist/monitoring/native-monitor.d.mts +148 -27
- package/dist/monitoring/native-monitor.mjs +320 -116
- package/dist/monitoring/native-monitor.mjs.map +1 -1
- package/dist/node-server/index.d.mts +1 -1
- package/dist/node-server/index.mjs +3 -3
- package/dist/node-server/request.mjs +1 -1
- package/dist/node-server/response.mjs +1 -1
- package/dist/node-server/serve.d.mts +1 -1
- package/dist/node-server/serve.mjs +2 -2
- package/dist/{parsers-7lvt3Oss.d.mts → parsers-BerGr2_q.d.mts} +1 -1
- package/dist/{parsers-BQ63b0YE.mjs → parsers-DpH_mD0H.mjs} +1 -1
- package/dist/{parsers-BQ63b0YE.mjs.map → parsers-DpH_mD0H.mjs.map} +1 -1
- package/dist/path-matcher-CGczAIl_.mjs +61 -0
- package/dist/{path-matcher-BNaaJgI3.mjs.map → path-matcher-CGczAIl_.mjs.map} +1 -1
- package/dist/radix-tree-qqSjnVXF.mjs +163 -0
- package/dist/{radix-tree-Qxr-QpCx.mjs.map → radix-tree-qqSjnVXF.mjs.map} +1 -1
- package/dist/{request-B886yCvG.mjs → request-B-Nct5f7.mjs} +1 -1
- package/dist/{request-B886yCvG.mjs.map → request-B-Nct5f7.mjs.map} +1 -1
- package/dist/{request-validator-DLFtm4uV.mjs → request-validator-Bz9X48FX.mjs} +3 -3
- package/dist/{request-validator-DLFtm4uV.mjs.map → request-validator-Bz9X48FX.mjs.map} +1 -1
- package/dist/{request-validator-42lY21gn.d.mts → request-validator-Coo8dI-p.d.mts} +2 -2
- package/dist/{response-CxYf6Ep3.d.mts → response-BMfdEcTm.d.mts} +2 -2
- package/dist/{response-30WnzABq.mjs → response-BnkYA4pj.mjs} +1 -1
- package/dist/{response-30WnzABq.mjs.map → response-BnkYA4pj.mjs.map} +1 -1
- package/dist/{route-CUbNpSwz.d.mts → route-6A7umH7b.d.mts} +2 -2
- package/dist/{route-B3ONOzxQ.mjs → route-Ds53PR4M.mjs} +1 -1
- package/dist/{route-B3ONOzxQ.mjs.map → route-Ds53PR4M.mjs.map} +1 -1
- package/dist/{route-registry-CYD7m6QP.d.mts → route-registry-CmABJA2V.d.mts} +2 -2
- package/dist/route-registry-emTmRrWQ.mjs +226 -0
- package/dist/{route-registry-BVvbghgH.mjs.map → route-registry-emTmRrWQ.mjs.map} +1 -1
- package/dist/router/index.d.mts +2 -2
- package/dist/router/index.mjs +3 -9
- package/dist/router/radix-tree.d.mts +3 -3
- package/dist/router/radix-tree.mjs +1 -2
- package/dist/{router-B9HUUCkR.mjs → router-xWzwz_1a.mjs} +2 -5
- package/dist/{router-B9HUUCkR.mjs.map → router-xWzwz_1a.mjs.map} +1 -1
- package/dist/router.d.mts +3 -3
- package/dist/router.mjs +1 -2
- package/dist/{schema-DOKg31ZX.d.mts → schema-B6DFN5c2.d.mts} +1 -1
- package/dist/{serve-DgWBnexE.mjs → serve-48LEIkPa.mjs} +3 -3
- package/dist/{serve-DgWBnexE.mjs.map → serve-48LEIkPa.mjs.map} +1 -1
- package/dist/{serve-B5WmhK6m.d.mts → serve-AG80VaIr.d.mts} +1 -1
- package/dist/serve.d.mts +1 -1
- package/dist/serve.mjs +2 -2
- package/dist/server/base-server.d.mts +3 -3
- package/dist/server/base-server.mjs +1 -2
- package/dist/server/component-server.d.mts +4 -4
- package/dist/server/component-server.mjs +2 -3
- package/dist/server/index.d.mts +6 -6
- package/dist/server/index.mjs +6 -7
- package/dist/server/server-factory.d.mts +6 -6
- package/dist/server/server-factory.mjs +5 -6
- package/dist/server/server.d.mts +4 -4
- package/dist/server/server.mjs +2 -3
- package/dist/server-C75o1b-a.mjs +70 -0
- package/dist/server-C75o1b-a.mjs.map +1 -0
- package/dist/{server-CWIZP6nb.d.mts → server-DGA3dd5s.d.mts} +3 -3
- package/dist/server-L_FNwdap.mjs +137 -0
- package/dist/{server-C3yoZXNs.mjs.map → server-L_FNwdap.mjs.map} +1 -1
- package/dist/{sse-BDIptC85.d.mts → sse-BgLhEo43.d.mts} +2 -2
- package/dist/{sse-CCVfFW6s.mjs → sse-CBl-szg1.mjs} +3 -3
- package/dist/{sse-CCVfFW6s.mjs.map → sse-CBl-szg1.mjs.map} +1 -1
- package/dist/types/component-route.d.mts +1 -1
- package/dist/types/index.d.mts +5 -5
- package/dist/types/index.mjs +1 -1
- package/dist/types/route.d.mts +1 -1
- package/dist/types/route.mjs +1 -1
- package/dist/types/schema.d.mts +1 -1
- package/dist/types/types.d.mts +1 -1
- package/dist/{types-mpeSaHdI.d.mts → types-D1PUFkda.d.mts} +1 -1
- package/dist/utils/base64url.d.mts +1 -1
- package/dist/utils/base64url.mjs +1 -1
- package/dist/utils/create-handler.d.mts +2 -2
- package/dist/utils/create-handler.mjs +4 -4
- package/dist/utils/dependency-manager.d.mts +1 -1
- package/dist/utils/dependency-manager.mjs +1 -2
- package/dist/utils/formats.d.mts +1 -1
- package/dist/utils/go-await.d.mts +1 -1
- package/dist/utils/go-await.mjs +1 -1
- package/dist/utils/handle.d.mts +1 -1
- package/dist/utils/handle.mjs +2 -2
- package/dist/utils/html-renderer.d.mts +1 -1
- package/dist/utils/html-renderer.mjs +1 -2
- package/dist/utils/index.d.mts +16 -16
- package/dist/utils/index.mjs +13 -21
- package/dist/utils/parsers.d.mts +1 -1
- package/dist/utils/parsers.mjs +1 -1
- package/dist/utils/path-matcher.mjs +1 -2
- package/dist/utils/request-validator.d.mts +2 -2
- package/dist/utils/request-validator.mjs +3 -3
- package/dist/utils/response.d.mts +4 -4
- package/dist/utils/response.mjs +1 -2
- package/dist/utils/route-registry.d.mts +3 -3
- package/dist/utils/route-registry.mjs +1 -2
- package/dist/utils/sse.d.mts +2 -2
- package/dist/utils/sse.mjs +3 -3
- package/dist/utils/validators/validators.d.mts +1 -1
- package/dist/utils/validators/validators.mjs +1 -1
- package/dist/{validators-CPmnj_y9.d.mts → validators-Ch71zkT8.d.mts} +1 -1
- package/dist/{validators-WXQ49LcR.mjs → validators-DBkyw6BG.mjs} +1 -1
- package/dist/{validators-WXQ49LcR.mjs.map → validators-DBkyw6BG.mjs.map} +1 -1
- package/package.json +6 -1
- package/dist/base-server-DMhpmq5v.mjs +0 -113
- package/dist/chunk-DW4-Jl94.mjs +0 -37
- package/dist/component-server-DIgykV0F.mjs +0 -124
- package/dist/dependency-manager-BpN2YufZ.mjs +0 -61
- package/dist/monitoring/index.mjs.map +0 -1
- package/dist/monitoring/types.d.mts +0 -150
- package/dist/path-matcher-BNaaJgI3.mjs +0 -62
- package/dist/radix-tree-Qxr-QpCx.mjs +0 -157
- package/dist/route-registry-BVvbghgH.mjs +0 -225
- package/dist/router/index.mjs.map +0 -1
- package/dist/schema-CflsMJuG.mjs +0 -1
- package/dist/server-BttM6Ssc.mjs +0 -88
- package/dist/server-BttM6Ssc.mjs.map +0 -1
- package/dist/server-C3yoZXNs.mjs +0 -136
- package/dist/utils/index.mjs.map +0 -1
- /package/dist/{component-route-BKUFoJ5P.mjs → component-route-DNgAj6VC.mjs} +0 -0
- /package/dist/{index-CTHojwxd.d.mts → index-CREkvfw9.d.mts} +0 -0
- /package/dist/{monitoring/types.mjs → schema-1fwiv7cm.mjs} +0 -0
package/dist/middleware.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "./schema-
|
|
2
|
-
import "./index-
|
|
3
|
-
import { n as composeMiddleware, t as VafastError } from "./middleware-
|
|
1
|
+
import "./schema-B6DFN5c2.mjs";
|
|
2
|
+
import "./index-CREkvfw9.mjs";
|
|
3
|
+
import { n as composeMiddleware, t as VafastError } from "./middleware-KXEoefLX.mjs";
|
|
4
4
|
export { VafastError, composeMiddleware };
|
package/dist/middleware.mjs
CHANGED
|
@@ -1,33 +1,8 @@
|
|
|
1
|
-
import "../schema-
|
|
2
|
-
import "../index-
|
|
3
|
-
import "../base-server-
|
|
4
|
-
import "../server-
|
|
5
|
-
import "../component-server-
|
|
6
|
-
import "../index-
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
//#region src/monitoring/index.d.ts
|
|
11
|
-
declare const defaultMonitoringConfig: {
|
|
12
|
-
enabled: boolean;
|
|
13
|
-
console: boolean;
|
|
14
|
-
slowThreshold: number;
|
|
15
|
-
errorThreshold: number;
|
|
16
|
-
tags: {
|
|
17
|
-
framework: string;
|
|
18
|
-
version: string;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
21
|
-
declare function createMonitoringConfig(config?: Partial<typeof defaultMonitoringConfig>): {
|
|
22
|
-
enabled: boolean;
|
|
23
|
-
console: boolean;
|
|
24
|
-
slowThreshold: number;
|
|
25
|
-
errorThreshold: number;
|
|
26
|
-
tags: {
|
|
27
|
-
framework: string;
|
|
28
|
-
version: string;
|
|
29
|
-
};
|
|
30
|
-
};
|
|
31
|
-
//#endregion
|
|
32
|
-
export { AggregatedMetrics, BaseMetrics, MonitoredServer, MonitoringConfig, MonitoringEvent, NativeMonitoringConfig, NativeMonitoringMetrics, PerformanceMetrics, PerformanceReport, createMonitoredServer, createMonitoringConfig, defaultMonitoringConfig, withMonitoring };
|
|
33
|
-
//# sourceMappingURL=index.d.mts.map
|
|
1
|
+
import "../schema-B6DFN5c2.mjs";
|
|
2
|
+
import "../index-CREkvfw9.mjs";
|
|
3
|
+
import "../base-server-DLxtulAO.mjs";
|
|
4
|
+
import "../server-DGA3dd5s.mjs";
|
|
5
|
+
import "../component-server-JqpDC7wy.mjs";
|
|
6
|
+
import "../index-CEfOqqvd.mjs";
|
|
7
|
+
import { MemoryInfo, MonitoredServer, MonitoringConfig, MonitoringMetrics, MonitoringStatus, PathStats, StatusCodeDistribution, TimeWindowStats, createMonitoredServer, withMonitoring } from "./native-monitor.mjs";
|
|
8
|
+
export { type MemoryInfo, type MonitoredServer, type MonitoringConfig, type MonitoringMetrics, type MonitoringStatus, type PathStats, type StatusCodeDistribution, type TimeWindowStats, createMonitoredServer, withMonitoring };
|
|
@@ -1,29 +1,3 @@
|
|
|
1
|
-
import "../middleware-CV5o-4wk.mjs";
|
|
2
|
-
import "../server-C3yoZXNs.mjs";
|
|
3
|
-
import "../dependency-manager-BpN2YufZ.mjs";
|
|
4
|
-
import "../component-server-DIgykV0F.mjs";
|
|
5
|
-
import "../server-BttM6Ssc.mjs";
|
|
6
|
-
import "./types.mjs";
|
|
7
1
|
import { createMonitoredServer, withMonitoring } from "./native-monitor.mjs";
|
|
8
2
|
|
|
9
|
-
|
|
10
|
-
const defaultMonitoringConfig = {
|
|
11
|
-
enabled: true,
|
|
12
|
-
console: true,
|
|
13
|
-
slowThreshold: 1e3,
|
|
14
|
-
errorThreshold: .05,
|
|
15
|
-
tags: {
|
|
16
|
-
framework: "vafast",
|
|
17
|
-
version: "2.0.0"
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
function createMonitoringConfig(config = {}) {
|
|
21
|
-
return {
|
|
22
|
-
...defaultMonitoringConfig,
|
|
23
|
-
...config
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
//#endregion
|
|
28
|
-
export { createMonitoredServer, createMonitoringConfig, defaultMonitoringConfig, withMonitoring };
|
|
29
|
-
//# sourceMappingURL=index.mjs.map
|
|
3
|
+
export { createMonitoredServer, withMonitoring };
|
|
@@ -1,48 +1,169 @@
|
|
|
1
|
-
import "../schema-
|
|
2
|
-
import "../index-
|
|
3
|
-
import "../base-server-
|
|
4
|
-
import { t as Server } from "../server-
|
|
5
|
-
import "../component-server-
|
|
6
|
-
import "../index-
|
|
1
|
+
import "../schema-B6DFN5c2.mjs";
|
|
2
|
+
import "../index-CREkvfw9.mjs";
|
|
3
|
+
import "../base-server-DLxtulAO.mjs";
|
|
4
|
+
import { t as Server } from "../server-DGA3dd5s.mjs";
|
|
5
|
+
import "../component-server-JqpDC7wy.mjs";
|
|
6
|
+
import "../index-CEfOqqvd.mjs";
|
|
7
7
|
|
|
8
8
|
//#region src/monitoring/native-monitor.d.ts
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
*
|
|
14
|
-
* @author Framework Team
|
|
15
|
-
* @version 2.0.0
|
|
16
|
-
* @license MIT
|
|
17
|
-
*/
|
|
18
|
-
interface NativeMonitoringConfig {
|
|
9
|
+
|
|
10
|
+
/** 监控配置 */
|
|
11
|
+
interface MonitoringConfig {
|
|
12
|
+
/** 是否启用监控,默认 true */
|
|
19
13
|
enabled?: boolean;
|
|
14
|
+
/** 是否输出到控制台,默认 true */
|
|
20
15
|
console?: boolean;
|
|
16
|
+
/** 慢请求阈值(毫秒),默认 1000 */
|
|
21
17
|
slowThreshold?: number;
|
|
22
|
-
|
|
18
|
+
/** 最大记录数,默认 1000 */
|
|
19
|
+
maxRecords?: number;
|
|
20
|
+
/** 采样率 0-1,默认 1(全部记录) */
|
|
21
|
+
samplingRate?: number;
|
|
22
|
+
/** 排除的路径(不记录) */
|
|
23
|
+
excludePaths?: string[];
|
|
24
|
+
/** 自定义标签 */
|
|
23
25
|
tags?: Record<string, string>;
|
|
26
|
+
/** 请求完成回调 */
|
|
27
|
+
onRequest?: (metrics: MonitoringMetrics) => void;
|
|
28
|
+
/** 慢请求回调 */
|
|
29
|
+
onSlowRequest?: (metrics: MonitoringMetrics) => void;
|
|
24
30
|
}
|
|
25
|
-
|
|
31
|
+
/** 监控指标 */
|
|
32
|
+
interface MonitoringMetrics {
|
|
26
33
|
requestId: string;
|
|
27
34
|
method: string;
|
|
28
35
|
path: string;
|
|
29
36
|
statusCode: number;
|
|
30
37
|
totalTime: number;
|
|
31
38
|
timestamp: number;
|
|
39
|
+
memoryUsage: MemoryInfo;
|
|
40
|
+
}
|
|
41
|
+
/** 内存信息 */
|
|
42
|
+
interface MemoryInfo {
|
|
43
|
+
heapUsed: number;
|
|
44
|
+
heapTotal: number;
|
|
45
|
+
}
|
|
46
|
+
/** 路径统计 */
|
|
47
|
+
interface PathStats {
|
|
48
|
+
count: number;
|
|
49
|
+
totalTime: number;
|
|
50
|
+
avgTime: number;
|
|
51
|
+
minTime: number;
|
|
52
|
+
maxTime: number;
|
|
53
|
+
errorCount: number;
|
|
54
|
+
}
|
|
55
|
+
/** 时间窗口统计 */
|
|
56
|
+
interface TimeWindowStats {
|
|
57
|
+
/** 请求数 */
|
|
58
|
+
requests: number;
|
|
59
|
+
/** 成功数 */
|
|
60
|
+
successful: number;
|
|
61
|
+
/** 失败数 */
|
|
62
|
+
failed: number;
|
|
63
|
+
/** 错误率 */
|
|
64
|
+
errorRate: number;
|
|
65
|
+
/** 平均响应时间 */
|
|
66
|
+
avgTime: number;
|
|
67
|
+
/** RPS(每秒请求数) */
|
|
68
|
+
rps: number;
|
|
69
|
+
}
|
|
70
|
+
/** 状态码分布 */
|
|
71
|
+
interface StatusCodeDistribution {
|
|
72
|
+
/** 2xx 成功 */
|
|
73
|
+
"2xx": number;
|
|
74
|
+
/** 3xx 重定向 */
|
|
75
|
+
"3xx": number;
|
|
76
|
+
/** 4xx 客户端错误 */
|
|
77
|
+
"4xx": number;
|
|
78
|
+
/** 5xx 服务器错误 */
|
|
79
|
+
"5xx": number;
|
|
80
|
+
/** 详细分布 */
|
|
81
|
+
detail: Record<number, number>;
|
|
82
|
+
}
|
|
83
|
+
/** 监控状态 */
|
|
84
|
+
interface MonitoringStatus {
|
|
85
|
+
enabled: boolean;
|
|
86
|
+
/** 服务运行时间(毫秒) */
|
|
87
|
+
uptime: number;
|
|
88
|
+
totalRequests: number;
|
|
89
|
+
successfulRequests: number;
|
|
90
|
+
failedRequests: number;
|
|
91
|
+
errorRate: number;
|
|
92
|
+
/** 平均响应时间(毫秒) */
|
|
93
|
+
avgResponseTime: number;
|
|
94
|
+
/** P50 响应时间(毫秒) */
|
|
95
|
+
p50: number;
|
|
96
|
+
/** P95 响应时间(毫秒) */
|
|
97
|
+
p95: number;
|
|
98
|
+
/** P99 响应时间(毫秒) */
|
|
99
|
+
p99: number;
|
|
100
|
+
/** 最小响应时间 */
|
|
101
|
+
minTime: number;
|
|
102
|
+
/** 最大响应时间 */
|
|
103
|
+
maxTime: number;
|
|
104
|
+
/** 当前 RPS */
|
|
105
|
+
rps: number;
|
|
106
|
+
/** 状态码分布 */
|
|
107
|
+
statusCodes: StatusCodeDistribution;
|
|
108
|
+
/** 时间窗口统计 */
|
|
109
|
+
timeWindows: {
|
|
110
|
+
/** 最近 1 分钟 */
|
|
111
|
+
last1min: TimeWindowStats;
|
|
112
|
+
/** 最近 5 分钟 */
|
|
113
|
+
last5min: TimeWindowStats;
|
|
114
|
+
/** 最近 1 小时 */
|
|
115
|
+
last1hour: TimeWindowStats;
|
|
116
|
+
};
|
|
117
|
+
/** 按路径统计 */
|
|
118
|
+
byPath: Record<string, PathStats>;
|
|
119
|
+
/** 内存使用 */
|
|
32
120
|
memoryUsage: {
|
|
33
|
-
heapUsed:
|
|
34
|
-
heapTotal:
|
|
121
|
+
heapUsed: string;
|
|
122
|
+
heapTotal: string;
|
|
35
123
|
};
|
|
124
|
+
/** 最近请求 */
|
|
125
|
+
recentRequests: MonitoringMetrics[];
|
|
36
126
|
}
|
|
127
|
+
/** 带监控的 Server */
|
|
37
128
|
interface MonitoredServer extends Server {
|
|
38
|
-
getMonitoringStatus():
|
|
39
|
-
getMonitoringMetrics():
|
|
129
|
+
getMonitoringStatus(): MonitoringStatus;
|
|
130
|
+
getMonitoringMetrics(): MonitoringMetrics[];
|
|
131
|
+
getPathStats(path: string): PathStats | undefined;
|
|
132
|
+
getTimeWindowStats(windowMs: number): TimeWindowStats;
|
|
133
|
+
getRPS(): number;
|
|
134
|
+
getStatusCodeDistribution(): StatusCodeDistribution;
|
|
40
135
|
resetMonitoring(): void;
|
|
41
|
-
fetch: (req: Request) => Promise<Response>;
|
|
42
|
-
use: (mw: any) => void;
|
|
43
136
|
}
|
|
44
|
-
|
|
45
|
-
|
|
137
|
+
/**
|
|
138
|
+
* 为 Server 添加监控能力
|
|
139
|
+
*
|
|
140
|
+
* @example
|
|
141
|
+
* ```ts
|
|
142
|
+
* const server = new Server(routes)
|
|
143
|
+
* const monitored = withMonitoring(server, {
|
|
144
|
+
* slowThreshold: 500,
|
|
145
|
+
* excludePaths: ['/health'],
|
|
146
|
+
* onSlowRequest: (m) => console.warn('Slow!', m.path)
|
|
147
|
+
* })
|
|
148
|
+
*
|
|
149
|
+
* // 获取完整状态
|
|
150
|
+
* const status = monitored.getMonitoringStatus()
|
|
151
|
+
* console.log(`P99: ${status.p99}ms`)
|
|
152
|
+
* console.log(`RPS: ${status.rps}`)
|
|
153
|
+
* console.log(`Last 1min errors: ${status.timeWindows.last1min.errorRate}`)
|
|
154
|
+
*
|
|
155
|
+
* // 单独获取 RPS
|
|
156
|
+
* console.log(`Current RPS: ${monitored.getRPS()}`)
|
|
157
|
+
*
|
|
158
|
+
* // 自定义时间窗口
|
|
159
|
+
* const last30sec = monitored.getTimeWindowStats(30000)
|
|
160
|
+
* ```
|
|
161
|
+
*/
|
|
162
|
+
declare function withMonitoring(server: Server, config?: MonitoringConfig): MonitoredServer;
|
|
163
|
+
/**
|
|
164
|
+
* 创建带监控的 Server(便捷函数)
|
|
165
|
+
*/
|
|
166
|
+
declare function createMonitoredServer(ServerClass: typeof Server, routes: ConstructorParameters<typeof Server>[0], config?: MonitoringConfig): MonitoredServer;
|
|
46
167
|
//#endregion
|
|
47
|
-
export { MonitoredServer,
|
|
168
|
+
export { MemoryInfo, MonitoredServer, MonitoringConfig, MonitoringMetrics, MonitoringStatus, PathStats, StatusCodeDistribution, TimeWindowStats, createMonitoredServer, withMonitoring };
|
|
48
169
|
//# sourceMappingURL=native-monitor.d.mts.map
|