node-os-utils 1.3.7 → 2.0.1-beta.2

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 (220) hide show
  1. package/README.md +1113 -237
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/package.json +99 -0
  4. package/dist/src/adapters/adapter-factory.d.ts +87 -0
  5. package/dist/src/adapters/adapter-factory.d.ts.map +1 -0
  6. package/dist/src/adapters/adapter-factory.js +272 -0
  7. package/dist/src/adapters/adapter-factory.js.map +1 -0
  8. package/dist/src/adapters/linux-adapter.d.ts +199 -0
  9. package/dist/src/adapters/linux-adapter.d.ts.map +1 -0
  10. package/dist/src/adapters/linux-adapter.js +1308 -0
  11. package/dist/src/adapters/linux-adapter.js.map +1 -0
  12. package/dist/src/adapters/macos-adapter.d.ts +232 -0
  13. package/dist/src/adapters/macos-adapter.d.ts.map +1 -0
  14. package/dist/src/adapters/macos-adapter.js +1144 -0
  15. package/dist/src/adapters/macos-adapter.js.map +1 -0
  16. package/dist/src/adapters/windows-adapter.d.ts +124 -0
  17. package/dist/src/adapters/windows-adapter.d.ts.map +1 -0
  18. package/dist/src/adapters/windows-adapter.js +601 -0
  19. package/dist/src/adapters/windows-adapter.js.map +1 -0
  20. package/dist/src/core/base-monitor.d.ts +107 -0
  21. package/dist/src/core/base-monitor.d.ts.map +1 -0
  22. package/dist/src/core/base-monitor.js +312 -0
  23. package/dist/src/core/base-monitor.js.map +1 -0
  24. package/dist/src/core/cache-manager.d.ts +157 -0
  25. package/dist/src/core/cache-manager.d.ts.map +1 -0
  26. package/dist/src/core/cache-manager.js +315 -0
  27. package/dist/src/core/cache-manager.js.map +1 -0
  28. package/dist/src/core/platform-adapter.d.ts +197 -0
  29. package/dist/src/core/platform-adapter.d.ts.map +1 -0
  30. package/dist/src/core/platform-adapter.js +244 -0
  31. package/dist/src/core/platform-adapter.js.map +1 -0
  32. package/dist/src/index.d.ts +205 -0
  33. package/dist/src/index.d.ts.map +1 -0
  34. package/dist/src/index.js +315 -0
  35. package/dist/src/index.js.map +1 -0
  36. package/dist/src/monitors/cpu-monitor.d.ts +139 -0
  37. package/dist/src/monitors/cpu-monitor.d.ts.map +1 -0
  38. package/dist/src/monitors/cpu-monitor.js +433 -0
  39. package/dist/src/monitors/cpu-monitor.js.map +1 -0
  40. package/dist/src/monitors/disk-monitor.d.ts +136 -0
  41. package/dist/src/monitors/disk-monitor.d.ts.map +1 -0
  42. package/dist/src/monitors/disk-monitor.js +465 -0
  43. package/dist/src/monitors/disk-monitor.js.map +1 -0
  44. package/dist/src/monitors/memory-monitor.d.ts +136 -0
  45. package/dist/src/monitors/memory-monitor.d.ts.map +1 -0
  46. package/dist/src/monitors/memory-monitor.js +443 -0
  47. package/dist/src/monitors/memory-monitor.js.map +1 -0
  48. package/dist/src/monitors/network-monitor.d.ts +166 -0
  49. package/dist/src/monitors/network-monitor.d.ts.map +1 -0
  50. package/dist/src/monitors/network-monitor.js +586 -0
  51. package/dist/src/monitors/network-monitor.js.map +1 -0
  52. package/dist/src/monitors/process-monitor.d.ts +142 -0
  53. package/dist/src/monitors/process-monitor.d.ts.map +1 -0
  54. package/dist/src/monitors/process-monitor.js +460 -0
  55. package/dist/src/monitors/process-monitor.js.map +1 -0
  56. package/dist/src/monitors/system-monitor.d.ts +173 -0
  57. package/dist/src/monitors/system-monitor.d.ts.map +1 -0
  58. package/dist/src/monitors/system-monitor.js +592 -0
  59. package/dist/src/monitors/system-monitor.js.map +1 -0
  60. package/dist/src/types/common.d.ts +135 -0
  61. package/dist/src/types/common.d.ts.map +1 -0
  62. package/dist/src/types/common.js +141 -0
  63. package/dist/src/types/common.js.map +1 -0
  64. package/dist/src/types/config.d.ts +288 -0
  65. package/dist/src/types/config.d.ts.map +1 -0
  66. package/dist/src/types/config.js +3 -0
  67. package/dist/src/types/config.js.map +1 -0
  68. package/dist/src/types/errors.d.ts +40 -0
  69. package/dist/src/types/errors.d.ts.map +1 -0
  70. package/dist/src/types/errors.js +67 -0
  71. package/dist/src/types/errors.js.map +1 -0
  72. package/dist/src/types/index.d.ts +16 -0
  73. package/dist/src/types/index.d.ts.map +1 -0
  74. package/dist/src/types/index.js +36 -0
  75. package/dist/src/types/index.js.map +1 -0
  76. package/dist/src/types/monitors.d.ts +623 -0
  77. package/dist/src/types/monitors.d.ts.map +1 -0
  78. package/dist/src/types/monitors.js +3 -0
  79. package/dist/src/types/monitors.js.map +1 -0
  80. package/dist/src/types/platform.d.ts +435 -0
  81. package/dist/src/types/platform.d.ts.map +1 -0
  82. package/dist/src/types/platform.js +3 -0
  83. package/dist/src/types/platform.js.map +1 -0
  84. package/dist/src/utils/command-executor.d.ts +58 -0
  85. package/dist/src/utils/command-executor.d.ts.map +1 -0
  86. package/dist/src/utils/command-executor.js +321 -0
  87. package/dist/src/utils/command-executor.js.map +1 -0
  88. package/dist/test/config/test-config.d.ts +301 -0
  89. package/dist/test/config/test-config.d.ts.map +1 -0
  90. package/dist/test/config/test-config.js +235 -0
  91. package/dist/test/config/test-config.js.map +1 -0
  92. package/dist/test/platform/linux.test.d.ts +6 -0
  93. package/dist/test/platform/linux.test.d.ts.map +1 -0
  94. package/dist/test/platform/linux.test.js +307 -0
  95. package/dist/test/platform/linux.test.js.map +1 -0
  96. package/dist/test/platform/macos.test.d.ts +6 -0
  97. package/dist/test/platform/macos.test.d.ts.map +1 -0
  98. package/dist/test/platform/macos.test.js +276 -0
  99. package/dist/test/platform/macos.test.js.map +1 -0
  100. package/dist/test/platform/windows.test.d.ts +6 -0
  101. package/dist/test/platform/windows.test.d.ts.map +1 -0
  102. package/dist/test/platform/windows.test.js +320 -0
  103. package/dist/test/platform/windows.test.js.map +1 -0
  104. package/dist/test/unit/adapters/adapter-factory.test.d.ts +2 -0
  105. package/dist/test/unit/adapters/adapter-factory.test.d.ts.map +1 -0
  106. package/dist/test/unit/adapters/adapter-factory.test.js +147 -0
  107. package/dist/test/unit/adapters/adapter-factory.test.js.map +1 -0
  108. package/dist/test/unit/adapters/linux-adapter.test.d.ts +2 -0
  109. package/dist/test/unit/adapters/linux-adapter.test.d.ts.map +1 -0
  110. package/dist/test/unit/adapters/linux-adapter.test.js +191 -0
  111. package/dist/test/unit/adapters/linux-adapter.test.js.map +1 -0
  112. package/dist/test/unit/adapters/macos-adapter.test.d.ts +2 -0
  113. package/dist/test/unit/adapters/macos-adapter.test.d.ts.map +1 -0
  114. package/dist/test/unit/adapters/macos-adapter.test.js +224 -0
  115. package/dist/test/unit/adapters/macos-adapter.test.js.map +1 -0
  116. package/dist/test/unit/adapters/windows-adapter.test.d.ts +2 -0
  117. package/dist/test/unit/adapters/windows-adapter.test.d.ts.map +1 -0
  118. package/dist/test/unit/adapters/windows-adapter.test.js +41 -0
  119. package/dist/test/unit/adapters/windows-adapter.test.js.map +1 -0
  120. package/dist/test/unit/core/base-monitor.test.d.ts +2 -0
  121. package/dist/test/unit/core/base-monitor.test.d.ts.map +1 -0
  122. package/dist/test/unit/core/base-monitor.test.js +157 -0
  123. package/dist/test/unit/core/base-monitor.test.js.map +1 -0
  124. package/dist/test/unit/core/cache-manager.test.d.ts +6 -0
  125. package/dist/test/unit/core/cache-manager.test.d.ts.map +1 -0
  126. package/dist/test/unit/core/cache-manager.test.js +127 -0
  127. package/dist/test/unit/core/cache-manager.test.js.map +1 -0
  128. package/dist/test/unit/core/platform-adapter.test.d.ts +2 -0
  129. package/dist/test/unit/core/platform-adapter.test.d.ts.map +1 -0
  130. package/dist/test/unit/core/platform-adapter.test.js +186 -0
  131. package/dist/test/unit/core/platform-adapter.test.js.map +1 -0
  132. package/dist/test/unit/index.test.d.ts +2 -0
  133. package/dist/test/unit/index.test.d.ts.map +1 -0
  134. package/dist/test/unit/index.test.js +183 -0
  135. package/dist/test/unit/index.test.js.map +1 -0
  136. package/dist/test/unit/monitors/cpu-monitor.test.d.ts +2 -0
  137. package/dist/test/unit/monitors/cpu-monitor.test.d.ts.map +1 -0
  138. package/dist/test/unit/monitors/cpu-monitor.test.js +166 -0
  139. package/dist/test/unit/monitors/cpu-monitor.test.js.map +1 -0
  140. package/dist/test/unit/monitors/disk-monitor.test.d.ts +2 -0
  141. package/dist/test/unit/monitors/disk-monitor.test.d.ts.map +1 -0
  142. package/dist/test/unit/monitors/disk-monitor.test.js +46 -0
  143. package/dist/test/unit/monitors/disk-monitor.test.js.map +1 -0
  144. package/dist/test/unit/monitors/memory-monitor.test.d.ts +2 -0
  145. package/dist/test/unit/monitors/memory-monitor.test.d.ts.map +1 -0
  146. package/dist/test/unit/monitors/memory-monitor.test.js +142 -0
  147. package/dist/test/unit/monitors/memory-monitor.test.js.map +1 -0
  148. package/dist/test/unit/monitors/network-monitor.test.d.ts +2 -0
  149. package/dist/test/unit/monitors/network-monitor.test.d.ts.map +1 -0
  150. package/dist/test/unit/monitors/network-monitor.test.js +22 -0
  151. package/dist/test/unit/monitors/network-monitor.test.js.map +1 -0
  152. package/dist/test/unit/monitors/process-monitor.test.d.ts +2 -0
  153. package/dist/test/unit/monitors/process-monitor.test.d.ts.map +1 -0
  154. package/dist/test/unit/monitors/process-monitor.test.js +165 -0
  155. package/dist/test/unit/monitors/process-monitor.test.js.map +1 -0
  156. package/dist/test/unit/monitors/system-monitor-macos.test.d.ts +2 -0
  157. package/dist/test/unit/monitors/system-monitor-macos.test.d.ts.map +1 -0
  158. package/dist/test/unit/monitors/system-monitor-macos.test.js +115 -0
  159. package/dist/test/unit/monitors/system-monitor-macos.test.js.map +1 -0
  160. package/dist/test/unit/monitors/system-monitor.test.d.ts +2 -0
  161. package/dist/test/unit/monitors/system-monitor.test.d.ts.map +1 -0
  162. package/dist/test/unit/monitors/system-monitor.test.js +70 -0
  163. package/dist/test/unit/monitors/system-monitor.test.js.map +1 -0
  164. package/dist/test/unit/types/common.test.d.ts +6 -0
  165. package/dist/test/unit/types/common.test.d.ts.map +1 -0
  166. package/dist/test/unit/types/common.test.js +139 -0
  167. package/dist/test/unit/types/common.test.js.map +1 -0
  168. package/dist/test/unit/types/config.test.d.ts +2 -0
  169. package/dist/test/unit/types/config.test.d.ts.map +1 -0
  170. package/dist/test/unit/types/config.test.js +9 -0
  171. package/dist/test/unit/types/config.test.js.map +1 -0
  172. package/dist/test/unit/types/errors.test.d.ts +6 -0
  173. package/dist/test/unit/types/errors.test.d.ts.map +1 -0
  174. package/dist/test/unit/types/errors.test.js +184 -0
  175. package/dist/test/unit/types/errors.test.js.map +1 -0
  176. package/dist/test/unit/types/index.test.d.ts +2 -0
  177. package/dist/test/unit/types/index.test.d.ts.map +1 -0
  178. package/dist/test/unit/types/index.test.js +39 -0
  179. package/dist/test/unit/types/index.test.js.map +1 -0
  180. package/dist/test/unit/types/monitors.test.d.ts +2 -0
  181. package/dist/test/unit/types/monitors.test.d.ts.map +1 -0
  182. package/dist/test/unit/types/monitors.test.js +9 -0
  183. package/dist/test/unit/types/monitors.test.js.map +1 -0
  184. package/dist/test/unit/types/platform.test.d.ts +2 -0
  185. package/dist/test/unit/types/platform.test.d.ts.map +1 -0
  186. package/dist/test/unit/types/platform.test.js +9 -0
  187. package/dist/test/unit/types/platform.test.js.map +1 -0
  188. package/dist/test/unit/utils/command-executor.test.d.ts +6 -0
  189. package/dist/test/unit/utils/command-executor.test.d.ts.map +1 -0
  190. package/dist/test/unit/utils/command-executor.test.js +153 -0
  191. package/dist/test/unit/utils/command-executor.test.js.map +1 -0
  192. package/dist/test/unit/utils/platform-specific.test.d.ts +2 -0
  193. package/dist/test/unit/utils/platform-specific.test.d.ts.map +1 -0
  194. package/dist/test/unit/utils/platform-specific.test.js +32 -0
  195. package/dist/test/unit/utils/platform-specific.test.js.map +1 -0
  196. package/dist/test/utils/platform-specific.d.ts +139 -0
  197. package/dist/test/utils/platform-specific.d.ts.map +1 -0
  198. package/dist/test/utils/platform-specific.js +306 -0
  199. package/dist/test/utils/platform-specific.js.map +1 -0
  200. package/dist/test/utils/test-base.d.ts +157 -0
  201. package/dist/test/utils/test-base.d.ts.map +1 -0
  202. package/dist/test/utils/test-base.js +316 -0
  203. package/dist/test/utils/test-base.js.map +1 -0
  204. package/package.json +78 -18
  205. package/.travis.yml +0 -7
  206. package/index.js +0 -17
  207. package/lib/bucket.js +0 -14
  208. package/lib/cpu.js +0 -94
  209. package/lib/drive.js +0 -113
  210. package/lib/exec.js +0 -28
  211. package/lib/mem.js +0 -176
  212. package/lib/netstat.js +0 -182
  213. package/lib/openfiles.js +0 -25
  214. package/lib/os.js +0 -148
  215. package/lib/osCmd.js +0 -20
  216. package/lib/proc.js +0 -38
  217. package/lib/users.js +0 -18
  218. package/test/test.js +0 -55
  219. package/util/co.js +0 -237
  220. package/util/index.js +0 -12
@@ -0,0 +1,443 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MemoryMonitor = void 0;
4
+ const base_monitor_1 = require("../core/base-monitor");
5
+ const types_1 = require("../types");
6
+ /**
7
+ * 内存监控器
8
+ *
9
+ * 提供内存相关的监控功能,包括内存使用情况、交换空间、内存压力等
10
+ */
11
+ class MemoryMonitor extends base_monitor_1.BaseMonitor {
12
+ constructor(adapter, config = {}, cache) {
13
+ super(adapter, config, cache);
14
+ this.memoryConfig = { ...this.getDefaultConfig(), ...config };
15
+ }
16
+ /**
17
+ * 获取内存基本信息
18
+ */
19
+ async info() {
20
+ const cacheKey = 'memory-info';
21
+ return this.executeWithCache(cacheKey, async () => {
22
+ this.validatePlatformSupport('memory.info');
23
+ const rawData = await this.adapter.getMemoryInfo();
24
+ return this.transformMemoryInfo(rawData);
25
+ }, this.memoryConfig.cacheTTL || 2000 // 内存信息缓存 2 秒
26
+ );
27
+ }
28
+ /**
29
+ * 获取详细内存信息
30
+ */
31
+ async detailed() {
32
+ const cacheKey = 'memory-detailed';
33
+ return this.executeWithCache(cacheKey, async () => {
34
+ this.validatePlatformSupport('memory.detailed');
35
+ const rawData = await this.adapter.getMemoryInfo();
36
+ const basicInfo = this.transformMemoryInfo(rawData);
37
+ const breakdown = this.extractDetailedBreakdown(rawData);
38
+ return {
39
+ ...basicInfo,
40
+ breakdown
41
+ };
42
+ }, this.memoryConfig.cacheTTL || 2000);
43
+ }
44
+ /**
45
+ * 获取内存使用率百分比
46
+ */
47
+ async usage() {
48
+ const cacheKey = 'memory-usage';
49
+ return this.executeWithCache(cacheKey, async () => {
50
+ const rawData = await this.adapter.getMemoryInfo();
51
+ const memInfo = this.transformMemoryInfo(rawData);
52
+ return memInfo.usagePercentage;
53
+ }, this.memoryConfig.cacheTTL || 1000);
54
+ }
55
+ /**
56
+ * 获取可用内存
57
+ */
58
+ async available() {
59
+ const cacheKey = 'memory-available';
60
+ return this.executeWithCache(cacheKey, async () => {
61
+ const rawData = await this.adapter.getMemoryInfo();
62
+ const memInfo = this.transformMemoryInfo(rawData);
63
+ return memInfo.available;
64
+ }, this.memoryConfig.cacheTTL || 1000);
65
+ }
66
+ /**
67
+ * 获取已用内存(异步版本)
68
+ */
69
+ async usedAsync() {
70
+ const cacheKey = 'memory-used';
71
+ return this.executeWithCache(cacheKey, async () => {
72
+ const rawData = await this.adapter.getMemoryInfo();
73
+ const memInfo = this.transformMemoryInfo(rawData);
74
+ return memInfo.used;
75
+ }, this.memoryConfig.cacheTTL || 1000);
76
+ }
77
+ /**
78
+ * 获取交换空间信息
79
+ */
80
+ async swap() {
81
+ if (!this.memoryConfig.includeSwap) {
82
+ return this.createErrorResult(this.createUnsupportedError('memory.swap (disabled in config)'));
83
+ }
84
+ const cacheKey = 'memory-swap';
85
+ return this.executeWithCache(cacheKey, async () => {
86
+ this.validatePlatformSupport('memory.swap');
87
+ const rawData = await this.adapter.getMemoryInfo();
88
+ return this.transformSwapInfo(rawData);
89
+ }, this.memoryConfig.cacheTTL || 2000);
90
+ }
91
+ /**
92
+ * 获取内存压力信息
93
+ */
94
+ async pressure() {
95
+ if (!this.memoryConfig.includePressure) {
96
+ return this.createErrorResult(this.createUnsupportedError('memory.pressure (disabled in config)'));
97
+ }
98
+ const cacheKey = 'memory-pressure';
99
+ return this.executeWithCache(cacheKey, async () => {
100
+ this.validatePlatformSupport('memory.pressure');
101
+ const rawData = await this.adapter.getMemoryInfo();
102
+ return this.calculateMemoryPressure(rawData);
103
+ }, this.memoryConfig.cacheTTL || 5000);
104
+ }
105
+ /**
106
+ * 获取缓存和缓冲区信息
107
+ */
108
+ async buffers() {
109
+ if (!this.memoryConfig.includeBuffers) {
110
+ return this.createErrorResult(this.createUnsupportedError('memory.buffers (disabled in config)'));
111
+ }
112
+ const cacheKey = 'memory-buffers';
113
+ return this.executeWithCache(cacheKey, async () => {
114
+ const rawData = await this.adapter.getMemoryInfo();
115
+ return {
116
+ cached: new types_1.DataSize(this.safeParseNumber(rawData.cached)),
117
+ buffers: new types_1.DataSize(this.safeParseNumber(rawData.buffers))
118
+ };
119
+ }, this.memoryConfig.cacheTTL || 2000);
120
+ }
121
+ /**
122
+ * 获取总内存大小
123
+ */
124
+ async total() {
125
+ const cacheKey = 'memory-total';
126
+ return this.executeWithCache(cacheKey, async () => {
127
+ const rawData = await this.adapter.getMemoryInfo();
128
+ return new types_1.DataSize(this.safeParseNumber(rawData.total));
129
+ }, this.memoryConfig.cacheTTL || 60000 // 总内存很少变化,缓存 1 分钟
130
+ );
131
+ }
132
+ /**
133
+ * 获取内存统计摘要
134
+ */
135
+ async summary() {
136
+ const cacheKey = 'memory-summary';
137
+ return this.executeWithCache(cacheKey, async () => {
138
+ const rawData = await this.adapter.getMemoryInfo();
139
+ const memInfo = this.transformMemoryInfo(rawData);
140
+ const swapInfo = this.transformSwapInfo(rawData);
141
+ return {
142
+ total: memInfo.total.toString(this.memoryConfig.unit || 'auto'),
143
+ used: memInfo.used.toString(this.memoryConfig.unit || 'auto'),
144
+ available: memInfo.available.toString(this.memoryConfig.unit || 'auto'),
145
+ usagePercentage: Math.round(memInfo.usagePercentage * 100) / 100,
146
+ swap: {
147
+ total: swapInfo.total.toString(this.memoryConfig.unit || 'auto'),
148
+ used: swapInfo.used.toString(this.memoryConfig.unit || 'auto'),
149
+ usagePercentage: Math.round(swapInfo.usagePercentage * 100) / 100
150
+ }
151
+ };
152
+ }, this.memoryConfig.cacheTTL || 2000);
153
+ }
154
+ /**
155
+ * 配置是否包含交换空间信息
156
+ */
157
+ withSwap(include) {
158
+ this.memoryConfig.includeSwap = include;
159
+ return this;
160
+ }
161
+ /**
162
+ * 配置是否包含缓存和缓冲区信息
163
+ */
164
+ withBuffers(include) {
165
+ this.memoryConfig.includeBuffers = include;
166
+ return this;
167
+ }
168
+ /**
169
+ * 配置是否包含内存压力信息
170
+ */
171
+ withPressure(include) {
172
+ this.memoryConfig.includePressure = include;
173
+ return this;
174
+ }
175
+ /**
176
+ * 配置内存单位
177
+ */
178
+ withUnit(unit) {
179
+ this.memoryConfig.unit = unit;
180
+ return this;
181
+ }
182
+ /**
183
+ * 获取默认配置
184
+ */
185
+ getDefaultConfig() {
186
+ return {
187
+ interval: 1000,
188
+ timeout: 5000,
189
+ cacheEnabled: true,
190
+ cacheTTL: 2000,
191
+ samples: 1,
192
+ includeDetails: true,
193
+ includeSwap: true,
194
+ includeBuffers: true,
195
+ includePressure: false, // 默认不包含压力信息,可能需要特殊权限
196
+ unit: 'auto'
197
+ };
198
+ }
199
+ // 私有转换方法
200
+ /**
201
+ * 转换内存基本信息
202
+ */
203
+ transformMemoryInfo(rawData) {
204
+ const total = new types_1.DataSize(this.safeParseNumber(rawData.total));
205
+ const available = new types_1.DataSize(this.safeParseNumber(rawData.available || rawData.free));
206
+ const used = new types_1.DataSize(this.safeParseNumber(rawData.used || (rawData.total - rawData.available)));
207
+ const free = new types_1.DataSize(this.safeParseNumber(rawData.free));
208
+ const cached = new types_1.DataSize(this.safeParseNumber(rawData.cached));
209
+ const buffers = new types_1.DataSize(this.safeParseNumber(rawData.buffers));
210
+ const usagePercentage = total.toBytes() > 0
211
+ ? (used.toBytes() / total.toBytes()) * 100
212
+ : 0;
213
+ const memInfo = {
214
+ total,
215
+ available,
216
+ used,
217
+ free,
218
+ cached,
219
+ buffers,
220
+ usagePercentage
221
+ };
222
+ // 添加内存压力信息(如果可用)
223
+ if (rawData.pressure) {
224
+ memInfo.pressure = this.transformMemoryPressure(rawData.pressure);
225
+ }
226
+ // 添加其他详细信息
227
+ if (rawData.shared !== undefined) {
228
+ memInfo.shared = new types_1.DataSize(this.safeParseNumber(rawData.shared));
229
+ }
230
+ if (rawData.reclaimable !== undefined) {
231
+ memInfo.reclaimable = new types_1.DataSize(this.safeParseNumber(rawData.reclaimable));
232
+ }
233
+ return memInfo;
234
+ }
235
+ /**
236
+ * 转换交换空间信息
237
+ */
238
+ transformSwapInfo(rawData) {
239
+ const swapData = rawData.swap || {};
240
+ const total = new types_1.DataSize(this.safeParseNumber(swapData.total));
241
+ const used = new types_1.DataSize(this.safeParseNumber(swapData.used));
242
+ const free = new types_1.DataSize(this.safeParseNumber(swapData.free || (swapData.total - swapData.used)));
243
+ const usagePercentage = total.toBytes() > 0
244
+ ? (used.toBytes() / total.toBytes()) * 100
245
+ : 0;
246
+ const swapInfo = {
247
+ total,
248
+ used,
249
+ free,
250
+ usagePercentage
251
+ };
252
+ // 添加交换活动信息(如果可用)
253
+ if (swapData.swapIn !== undefined) {
254
+ swapInfo.swapIn = this.safeParseNumber(swapData.swapIn);
255
+ }
256
+ if (swapData.swapOut !== undefined) {
257
+ swapInfo.swapOut = this.safeParseNumber(swapData.swapOut);
258
+ }
259
+ return swapInfo;
260
+ }
261
+ /**
262
+ * 转换内存压力信息
263
+ */
264
+ transformMemoryPressure(pressureData) {
265
+ if (typeof pressureData === 'string') {
266
+ // 简单的字符串压力级别
267
+ return {
268
+ level: this.normalizePressureLevel(pressureData),
269
+ score: this.pressureLevelToScore(pressureData)
270
+ };
271
+ }
272
+ if (typeof pressureData === 'object') {
273
+ return {
274
+ level: this.normalizePressureLevel(pressureData.level),
275
+ score: this.safeParseNumber(pressureData.score || pressureData.percentage),
276
+ swapActivity: this.safeParseNumber(pressureData.swapActivity)
277
+ };
278
+ }
279
+ return {
280
+ level: 'low',
281
+ score: 0
282
+ };
283
+ }
284
+ /**
285
+ * 计算内存压力
286
+ */
287
+ calculateMemoryPressure(rawData) {
288
+ // 如果已有压力信息,直接使用
289
+ if (rawData.pressure) {
290
+ return this.transformMemoryPressure(rawData.pressure);
291
+ }
292
+ // 否则基于使用率计算压力
293
+ const total = this.safeParseNumber(rawData.total);
294
+ const available = this.safeParseNumber(rawData.available || rawData.free);
295
+ if (total <= 0) {
296
+ return { level: 'low', score: 0 };
297
+ }
298
+ const usagePercentage = ((total - available) / total) * 100;
299
+ let level;
300
+ if (usagePercentage >= 95) {
301
+ level = 'critical';
302
+ }
303
+ else if (usagePercentage >= 85) {
304
+ level = 'high';
305
+ }
306
+ else if (usagePercentage >= 70) {
307
+ level = 'medium';
308
+ }
309
+ else {
310
+ level = 'low';
311
+ }
312
+ return {
313
+ level,
314
+ score: Math.min(100, Math.max(0, usagePercentage))
315
+ };
316
+ }
317
+ /**
318
+ * 提取详细内存分解信息
319
+ */
320
+ extractDetailedBreakdown(rawData) {
321
+ const breakdown = {};
322
+ // Linux 特定字段
323
+ if (rawData.active !== undefined) {
324
+ breakdown.active = new types_1.DataSize(this.safeParseNumber(rawData.active));
325
+ }
326
+ if (rawData.inactive !== undefined) {
327
+ breakdown.inactive = new types_1.DataSize(this.safeParseNumber(rawData.inactive));
328
+ }
329
+ if (rawData.wired !== undefined) {
330
+ breakdown.wired = new types_1.DataSize(this.safeParseNumber(rawData.wired));
331
+ }
332
+ if (rawData.compressed !== undefined) {
333
+ breakdown.compressed = new types_1.DataSize(this.safeParseNumber(rawData.compressed));
334
+ }
335
+ // 内核内存
336
+ if (rawData.kernel !== undefined) {
337
+ breakdown.kernel = new types_1.DataSize(this.safeParseNumber(rawData.kernel));
338
+ }
339
+ // 设备驱动内存
340
+ if (rawData.drivers !== undefined) {
341
+ breakdown.drivers = new types_1.DataSize(this.safeParseNumber(rawData.drivers));
342
+ }
343
+ // 共享内存
344
+ if (rawData.shared !== undefined) {
345
+ breakdown.shared = new types_1.DataSize(this.safeParseNumber(rawData.shared));
346
+ }
347
+ return breakdown;
348
+ }
349
+ /**
350
+ * 规范化压力级别
351
+ */
352
+ normalizePressureLevel(level) {
353
+ const normalizedLevel = level.toLowerCase();
354
+ if (normalizedLevel.includes('critical') || normalizedLevel.includes('severe')) {
355
+ return 'critical';
356
+ }
357
+ else if (normalizedLevel.includes('high') || normalizedLevel.includes('warn')) {
358
+ return 'high';
359
+ }
360
+ else if (normalizedLevel.includes('medium') || normalizedLevel.includes('moderate')) {
361
+ return 'medium';
362
+ }
363
+ else {
364
+ return 'low';
365
+ }
366
+ }
367
+ /**
368
+ * 压力级别转分数
369
+ */
370
+ pressureLevelToScore(level) {
371
+ const scores = {
372
+ 'low': 10,
373
+ 'normal': 10,
374
+ 'medium': 50,
375
+ 'moderate': 50,
376
+ 'high': 80,
377
+ 'warn': 80,
378
+ 'warning': 80,
379
+ 'critical': 95,
380
+ 'severe': 95
381
+ };
382
+ return scores[level.toLowerCase()] || 0;
383
+ }
384
+ /**
385
+ * 安全解析数字
386
+ */
387
+ safeParseNumber(value) {
388
+ if (typeof value === 'number') {
389
+ return isNaN(value) ? 0 : value;
390
+ }
391
+ if (typeof value === 'string') {
392
+ const parsed = parseFloat(value);
393
+ return isNaN(parsed) ? 0 : parsed;
394
+ }
395
+ return 0;
396
+ }
397
+ // ==================== 向后兼容的同步方法 ====================
398
+ /**
399
+ * 获取总内存大小(同步版本,向后兼容)
400
+ * @returns 总内存大小(字节)或 'not supported'
401
+ */
402
+ totalMem() {
403
+ try {
404
+ const os = require('os');
405
+ return os.totalmem();
406
+ }
407
+ catch (error) {
408
+ return 'not supported';
409
+ }
410
+ }
411
+ /**
412
+ * 获取空闲内存大小(同步版本,向后兼容)
413
+ * @returns 空闲内存大小(字节)或 'not supported'
414
+ */
415
+ free() {
416
+ try {
417
+ const os = require('os');
418
+ return os.freemem();
419
+ }
420
+ catch (error) {
421
+ return 'not supported';
422
+ }
423
+ }
424
+ /**
425
+ * 获取已用内存大小(同步版本,向后兼容)
426
+ * @returns 已用内存大小(字节)或 'not supported'
427
+ */
428
+ used() {
429
+ try {
430
+ const total = this.totalMem();
431
+ const free = this.free();
432
+ if (total === 'not supported' || free === 'not supported') {
433
+ return 'not supported';
434
+ }
435
+ return total - free;
436
+ }
437
+ catch (error) {
438
+ return 'not supported';
439
+ }
440
+ }
441
+ }
442
+ exports.MemoryMonitor = MemoryMonitor;
443
+ //# sourceMappingURL=memory-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-monitor.js","sourceRoot":"","sources":["../../../src/monitors/memory-monitor.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,oCAOkB;AAIlB;;;;GAIG;AACH,MAAa,aAAc,SAAQ,0BAAuB;IAGxD,YACE,OAAwB,EACxB,SAAuB,EAAE,EACzB,KAAoB;QAEpB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,EAAE,EAAE,GAAG,MAAM,EAAkB,CAAC;IAChF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,QAAQ,GAAG,aAAa,CAAC;QAE/B,OAAO,IAAI,CAAC,gBAAgB,CAC1B,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;YAE5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,aAAa;SACjD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QAEnC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;YAEhD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnD,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAEzD,OAAO;gBACL,GAAG,SAAS;gBACZ,SAAS;aACV,CAAC;QACJ,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,QAAQ,GAAG,cAAc,CAAC;QAEhC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC,eAAe,CAAC;QACjC,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,kBAAkB,CAAC;QAEpC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC,SAAS,CAAC;QAC3B,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,aAAa,CAAC;QAE/B,OAAO,IAAI,CAAC,gBAAgB,CAC1B,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAClD,OAAO,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC,iBAAiB,CAC3B,IAAI,CAAC,sBAAsB,CAAC,kCAAkC,CAAC,CAChE,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC;QAE/B,OAAO,IAAI,CAAC,gBAAgB,CAC1B,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;YAE5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACzC,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC,iBAAiB,CAC3B,IAAI,CAAC,sBAAsB,CAAC,sCAAsC,CAAC,CACpE,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,iBAAiB,CAAC;QAEnC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,CAAC;YAEhD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;QAC/C,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC,iBAAiB,CAC3B,IAAI,CAAC,sBAAsB,CAAC,qCAAqC,CAAC,CACnE,CAAC;QACJ,CAAC;QAED,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAElC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO;gBACL,MAAM,EAAE,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1D,OAAO,EAAE,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;aAC7D,CAAC;QACJ,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,MAAM,QAAQ,GAAG,cAAc,CAAC;QAEhC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnD,OAAO,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,KAAK,CAAC,kBAAkB;SACvD,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QAWX,MAAM,QAAQ,GAAG,gBAAgB,CAAC;QAElC,OAAO,IAAI,CAAC,gBAAgB,CAC1B,QAAQ,EACR,KAAK,IAAI,EAAE;YACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YACnD,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAEjD,OAAO;gBACL,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC;gBAC/D,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC;gBAC7D,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC;gBACvE,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,GAAG;gBAChE,IAAI,EAAE;oBACJ,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC;oBAChE,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC;oBAC9D,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,GAAG,GAAG,CAAC,GAAG,GAAG;iBAClE;aACF,CAAC;QACJ,CAAC,EACD,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CACnC,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,OAAgB;QACvB,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,OAAO,CAAC;QACxC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,OAAgB;QAC1B,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,OAAO,CAAC;QAC3C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAgB;QAC3B,IAAI,CAAC,YAAY,CAAC,eAAe,GAAG,OAAO,CAAC;QAC5C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,QAAQ,CAAC,IAA8C;QACrD,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACO,gBAAgB;QACxB,OAAO;YACL,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,IAAI;YACb,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,OAAO,EAAE,CAAC;YACV,cAAc,EAAE,IAAI;YACpB,WAAW,EAAE,IAAI;YACjB,cAAc,EAAE,IAAI;YACpB,eAAe,EAAE,KAAK,EAAE,qBAAqB;YAC7C,IAAI,EAAE,MAAM;SACb,CAAC;IACJ,CAAC;IAED,SAAS;IAET;;OAEG;IACK,mBAAmB,CAAC,OAAY;QACtC,MAAM,KAAK,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,MAAM,SAAS,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QACxF,MAAM,IAAI,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QACrG,MAAM,IAAI,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9D,MAAM,MAAM,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QAClE,MAAM,OAAO,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAEpE,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC;YACzC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG;YAC1C,CAAC,CAAC,CAAC,CAAC;QAEN,MAAM,OAAO,GAAe;YAC1B,KAAK;YACL,SAAS;YACT,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,OAAO;YACP,eAAe;SAChB,CAAC;QAEF,iBAAiB;QACjB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACpE,CAAC;QAED,WAAW;QACX,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,OAAO,CAAC,MAAM,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;YACtC,OAAO,CAAC,WAAW,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,OAAY;QACpC,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC;QAEpC,MAAM,KAAK,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAEnG,MAAM,eAAe,GAAG,KAAK,CAAC,OAAO,EAAE,GAAG,CAAC;YACzC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,GAAG,GAAG;YAC1C,CAAC,CAAC,CAAC,CAAC;QAEN,MAAM,QAAQ,GAAa;YACzB,KAAK;YACL,IAAI;YACJ,IAAI;YACJ,eAAe;SAChB,CAAC;QAEF,iBAAiB;QACjB,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAClC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1D,CAAC;QAED,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YACnC,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,YAAiB;QAC/C,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,aAAa;YACb,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC;gBAChD,KAAK,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC;aAC/C,CAAC;QACJ,CAAC;QAED,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO;gBACL,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,KAAK,CAAC;gBACtD,KAAK,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,UAAU,CAAC;gBAC1E,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,YAAY,CAAC;aAC9D,CAAC;QACJ,CAAC;QAED,OAAO;YACL,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,CAAC;SACT,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,uBAAuB,CAAC,OAAY;QAC1C,gBAAgB;QAChB,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACxD,CAAC;QAED,cAAc;QACd,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QAE1E,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;QACpC,CAAC;QAED,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;QAC5D,IAAI,KAA6C,CAAC;QAElD,IAAI,eAAe,IAAI,EAAE,EAAE,CAAC;YAC1B,KAAK,GAAG,UAAU,CAAC;QACrB,CAAC;aAAM,IAAI,eAAe,IAAI,EAAE,EAAE,CAAC;YACjC,KAAK,GAAG,MAAM,CAAC;QACjB,CAAC;aAAM,IAAI,eAAe,IAAI,EAAE,EAAE,CAAC;YACjC,KAAK,GAAG,QAAQ,CAAC;QACnB,CAAC;aAAM,CAAC;YACN,KAAK,GAAG,KAAK,CAAC;QAChB,CAAC;QAED,OAAO;YACL,KAAK;YACL,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC;SACnD,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,wBAAwB,CAAC,OAAY;QAC3C,MAAM,SAAS,GAAQ,EAAE,CAAC;QAE1B,aAAa;QACb,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,SAAS,CAAC,MAAM,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACnC,SAAS,CAAC,QAAQ,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAChC,SAAS,CAAC,KAAK,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACrC,SAAS,CAAC,UAAU,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;QAChF,CAAC;QAED,OAAO;QACP,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,SAAS,CAAC,MAAM,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,SAAS;QACT,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAClC,SAAS,CAAC,OAAO,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO;QACP,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YACjC,SAAS,CAAC,MAAM,GAAG,IAAI,gBAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,KAAa;QAC1C,MAAM,eAAe,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QAE5C,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/E,OAAO,UAAU,CAAC;QACpB,CAAC;aAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAChF,OAAO,MAAM,CAAC;QAChB,CAAC;aAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACtF,OAAO,QAAQ,CAAC;QAClB,CAAC;aAAM,CAAC;YACN,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACK,oBAAoB,CAAC,KAAa;QACxC,MAAM,MAAM,GAA2B;YACrC,KAAK,EAAE,EAAE;YACT,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,UAAU,EAAE,EAAE;YACd,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,EAAE;YACV,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,QAAQ,EAAE,EAAE;SACb,CAAC;QAEF,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACK,eAAe,CAAC,KAAU;QAChC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAClC,CAAC;QAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QACpC,CAAC;QAED,OAAO,CAAC,CAAC;IACX,CAAC;IAED,sDAAsD;IAEtD;;;OAGG;IACH,QAAQ;QACN,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC;QACvB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,CAAC;YACH,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,IAAI;QACF,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAEzB,IAAI,KAAK,KAAK,eAAe,IAAI,IAAI,KAAK,eAAe,EAAE,CAAC;gBAC1D,OAAO,eAAe,CAAC;YACzB,CAAC;YAED,OAAQ,KAAgB,GAAI,IAAe,CAAC;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;CACF;AA9iBD,sCA8iBC"}
@@ -0,0 +1,166 @@
1
+ import { BaseMonitor } from '../core/base-monitor';
2
+ import { MonitorResult, NetworkConfig, NetworkInterface, NetworkStats, DataSize } from '../types';
3
+ import { PlatformAdapter } from '../types/platform';
4
+ import { CacheManager } from '../core/cache-manager';
5
+ /**
6
+ * 网络监控器
7
+ *
8
+ * 提供网络相关的监控功能,包括接口信息、流量统计、连接状态等
9
+ */
10
+ export declare class NetworkMonitor extends BaseMonitor<NetworkInterface[]> {
11
+ private networkConfig;
12
+ constructor(adapter: PlatformAdapter, config?: NetworkConfig, cache?: CacheManager);
13
+ /**
14
+ * 获取网络接口信息(实现抽象方法)
15
+ */
16
+ info(): Promise<MonitorResult<NetworkInterface[]>>;
17
+ /**
18
+ * 获取网络接口信息
19
+ */
20
+ interfaces(): Promise<MonitorResult<NetworkInterface[]>>;
21
+ /**
22
+ * 获取指定接口信息
23
+ */
24
+ interfaceByName(name: string): Promise<MonitorResult<NetworkInterface | null>>;
25
+ /**
26
+ * 获取网络统计信息(异步版本)
27
+ */
28
+ statsAsync(options?: {
29
+ skipCache?: boolean;
30
+ }): Promise<MonitorResult<NetworkStats[]>>;
31
+ /**
32
+ * 获取指定接口的统计信息
33
+ */
34
+ statsByInterface(interfaceName: string): Promise<MonitorResult<NetworkStats | null>>;
35
+ /**
36
+ * 获取带宽使用情况(需要两次测量)
37
+ */
38
+ bandwidth(): Promise<MonitorResult<{
39
+ interval: number;
40
+ interfaces: Array<{
41
+ interface: string;
42
+ rxSpeed: number;
43
+ txSpeed: number;
44
+ rxSpeedFormatted: string;
45
+ txSpeedFormatted: string;
46
+ }>;
47
+ }>>;
48
+ /**
49
+ * 获取活跃的网络连接
50
+ */
51
+ connections(): Promise<MonitorResult<any[]>>;
52
+ /**
53
+ * 获取默认网关信息
54
+ */
55
+ gateway(): Promise<MonitorResult<{
56
+ gateway: string | null;
57
+ interface: string;
58
+ } | null>>;
59
+ /**
60
+ * 获取公网 IP 地址
61
+ */
62
+ publicIP(): Promise<MonitorResult<{
63
+ ipv4?: string;
64
+ ipv6?: string;
65
+ }>>;
66
+ /**
67
+ * 网络健康检查
68
+ */
69
+ healthCheck(): Promise<MonitorResult<{
70
+ status: 'healthy' | 'warning' | 'critical';
71
+ issues: string[];
72
+ checks: {
73
+ interfaceStatus: boolean;
74
+ connectivity: boolean;
75
+ performance: boolean;
76
+ };
77
+ }>>;
78
+ /**
79
+ * 获取网络总览信息
80
+ */
81
+ overview(): Promise<MonitorResult<{
82
+ interfaces: number;
83
+ activeInterfaces: number;
84
+ totalRxBytes: DataSize;
85
+ totalTxBytes: DataSize;
86
+ totalPackets: number;
87
+ totalErrors: number;
88
+ }>>;
89
+ /**
90
+ * 配置是否包含接口统计
91
+ */
92
+ withInterfaceStats(include: boolean): this;
93
+ /**
94
+ * 配置是否包含连接信息
95
+ */
96
+ withConnections(include: boolean): this;
97
+ /**
98
+ * 配置是否包含带宽监控
99
+ */
100
+ withBandwidth(include: boolean): this;
101
+ /**
102
+ * 配置目标网络接口
103
+ */
104
+ withInterfaces(interfaces: string[]): this;
105
+ /**
106
+ * 配置带宽监控间隔
107
+ */
108
+ withBandwidthInterval(interval: number): this;
109
+ /**
110
+ * 获取默认配置
111
+ */
112
+ protected getDefaultConfig(): NetworkConfig;
113
+ /**
114
+ * 转换网络接口信息
115
+ */
116
+ /**
117
+ * 将平台适配器返回的原始接口数据统一转换为 NetworkInterface 结构
118
+ * 支持 Node.js os.networkInterfaces() 返回的对象以及适配器自定义的数组格式
119
+ */
120
+ private transformNetworkInterfaces;
121
+ /**
122
+ * 转换网络统计信息
123
+ */
124
+ private transformNetworkStats;
125
+ /**
126
+ * 转换网络连接信息
127
+ */
128
+ private transformNetworkConnections;
129
+ /**
130
+ * 转换网关信息
131
+ */
132
+ private transformGatewayInfo;
133
+ /**
134
+ * 计算带宽
135
+ */
136
+ private calculateBandwidth;
137
+ /**
138
+ * 推断接口状态
139
+ */
140
+ private inferInterfaceState;
141
+ /**
142
+ * 推断接口类型
143
+ */
144
+ private inferInterfaceType;
145
+ /**
146
+ * 判断是否应该包含该接口
147
+ */
148
+ private shouldIncludeInterface;
149
+ private normalizeInterfaceState;
150
+ /**
151
+ * 安全解析数字
152
+ */
153
+ private safeParseNumber;
154
+ /**
155
+ * 获取网络流量统计(同步版本,向后兼容)
156
+ * @param interval 监控间隔(毫秒)
157
+ * @returns 网络流量统计对象或 'not supported'
158
+ */
159
+ inOut(interval?: number): any;
160
+ /**
161
+ * 获取网络统计信息(同步版本,向后兼容)
162
+ * @returns 网络统计信息数组或 'not supported'
163
+ */
164
+ stats(): any;
165
+ }
166
+ //# sourceMappingURL=network-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"network-monitor.d.ts","sourceRoot":"","sources":["../../../src/monitors/network-monitor.ts"],"names":[],"mappings":"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"}