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,465 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiskMonitor = void 0;
4
+ const base_monitor_1 = require("../core/base-monitor");
5
+ const types_1 = require("../types");
6
+ /**
7
+ * 磁盘监控器
8
+ *
9
+ * 提供磁盘相关的监控功能,包括空间使用、I/O统计、挂载点等
10
+ */
11
+ class DiskMonitor extends base_monitor_1.BaseMonitor {
12
+ constructor(adapter, config = {}, cache) {
13
+ super(adapter, config, cache);
14
+ this.diskConfig = { ...this.getDefaultConfig(), ...config };
15
+ }
16
+ /**
17
+ * 获取所有磁盘信息
18
+ */
19
+ async info() {
20
+ const cacheKey = 'disk-info';
21
+ return this.executeWithCache(cacheKey, async () => {
22
+ this.validatePlatformSupport('disk.info');
23
+ const rawData = await this.adapter.getDiskInfo();
24
+ return this.transformDiskInfo(rawData);
25
+ }, this.diskConfig.cacheTTL || 30000 // 磁盘信息缓存 30 秒
26
+ );
27
+ }
28
+ /**
29
+ * 获取指定磁盘的信息
30
+ */
31
+ async infoByDevice(device) {
32
+ const allDisksResult = await this.info();
33
+ if (!allDisksResult.success || !allDisksResult.data) {
34
+ return allDisksResult;
35
+ }
36
+ const diskInfo = allDisksResult.data.find(disk => disk.device === device || disk.mountpoint === device);
37
+ return this.createSuccessResult(diskInfo || null);
38
+ }
39
+ /**
40
+ * 获取磁盘使用情况
41
+ */
42
+ async usage() {
43
+ const cacheKey = 'disk-usage';
44
+ return this.executeWithCache(cacheKey, async () => {
45
+ this.validatePlatformSupport('disk.usage');
46
+ const rawData = await this.adapter.getDiskUsage();
47
+ return this.transformDiskUsage(rawData);
48
+ }, this.diskConfig.cacheTTL || 10000);
49
+ }
50
+ /**
51
+ * 获取总体磁盘使用率(百分比)
52
+ */
53
+ async overallUsage() {
54
+ const usageResult = await this.usage();
55
+ if (!usageResult.success || !usageResult.data) {
56
+ return usageResult;
57
+ }
58
+ // 计算所有磁盘的加权平均使用率
59
+ let totalBytes = 0;
60
+ let usedBytes = 0;
61
+ for (const disk of usageResult.data) {
62
+ if (this.diskConfig.excludeTypes &&
63
+ this.diskConfig.excludeTypes.includes(disk.filesystem)) {
64
+ continue;
65
+ }
66
+ totalBytes += disk.total.toBytes();
67
+ usedBytes += disk.used.toBytes();
68
+ }
69
+ const usagePercentage = totalBytes > 0 ? (usedBytes / totalBytes) * 100 : 0;
70
+ return this.createSuccessResult(Math.round(usagePercentage * 100) / 100);
71
+ }
72
+ /**
73
+ * 获取指定挂载点的使用情况
74
+ */
75
+ async usageByMountPoint(mountPoint) {
76
+ const allUsageResult = await this.usage();
77
+ if (!allUsageResult.success || !allUsageResult.data) {
78
+ return allUsageResult;
79
+ }
80
+ const usage = allUsageResult.data.find(disk => disk.mountpoint === mountPoint);
81
+ return this.createSuccessResult(usage || null);
82
+ }
83
+ /**
84
+ * 获取磁盘 I/O 统计
85
+ */
86
+ async stats() {
87
+ if (!this.diskConfig.includeStats) {
88
+ return this.createErrorResult(this.createUnsupportedError('disk.stats (disabled in config)'));
89
+ }
90
+ const cacheKey = 'disk-stats';
91
+ return this.executeWithCache(cacheKey, async () => {
92
+ this.validatePlatformSupport('disk.stats');
93
+ const rawData = await this.adapter.getDiskStats();
94
+ return this.transformDiskStats(rawData);
95
+ }, this.diskConfig.cacheTTL || 5000);
96
+ }
97
+ /**
98
+ * 获取挂载点信息
99
+ */
100
+ async mounts() {
101
+ const cacheKey = 'disk-mounts';
102
+ return this.executeWithCache(cacheKey, async () => {
103
+ this.validatePlatformSupport('disk.mounts');
104
+ const rawData = await this.adapter.getMounts();
105
+ return this.transformMountPoints(rawData);
106
+ }, this.diskConfig.cacheTTL || 30000);
107
+ }
108
+ /**
109
+ * 获取文件系统信息
110
+ */
111
+ async filesystems() {
112
+ const cacheKey = 'disk-filesystems';
113
+ return this.executeWithCache(cacheKey, async () => {
114
+ this.validatePlatformSupport('disk.filesystems');
115
+ const rawData = await this.adapter.getFileSystems();
116
+ return this.transformFileSystems(rawData);
117
+ }, this.diskConfig.cacheTTL || 60000 // 文件系统信息变化较少
118
+ );
119
+ }
120
+ /**
121
+ * 获取磁盘空间总览
122
+ */
123
+ async spaceOverview() {
124
+ const cacheKey = 'disk-space-overview';
125
+ return this.executeWithCache(cacheKey, async () => {
126
+ const usageResult = await this.usage();
127
+ if (!usageResult.success || !usageResult.data) {
128
+ throw new Error('Failed to get disk usage data');
129
+ }
130
+ let totalBytes = 0;
131
+ let usedBytes = 0;
132
+ let availableBytes = 0;
133
+ for (const disk of usageResult.data) {
134
+ if (this.diskConfig.excludeTypes &&
135
+ this.diskConfig.excludeTypes.includes(disk.filesystem)) {
136
+ continue;
137
+ }
138
+ totalBytes += disk.total.toBytes();
139
+ usedBytes += disk.used.toBytes();
140
+ availableBytes += disk.available.toBytes();
141
+ }
142
+ const usagePercentage = totalBytes > 0 ? (usedBytes / totalBytes) * 100 : 0;
143
+ return {
144
+ total: new types_1.DataSize(totalBytes),
145
+ used: new types_1.DataSize(usedBytes),
146
+ available: new types_1.DataSize(availableBytes),
147
+ usagePercentage: Math.round(usagePercentage * 100) / 100,
148
+ disks: usageResult.data.length
149
+ };
150
+ }, this.diskConfig.cacheTTL || 15000);
151
+ }
152
+ /**
153
+ * 获取磁盘健康状态检查
154
+ */
155
+ async healthCheck() {
156
+ const cacheKey = 'disk-health';
157
+ return this.executeWithCache(cacheKey, async () => {
158
+ const issues = [];
159
+ const checks = {
160
+ spaceUsage: true,
161
+ mountStatus: true,
162
+ ioErrors: true
163
+ };
164
+ // 检查磁盘空间使用率
165
+ try {
166
+ const usageResult = await this.usage();
167
+ if (usageResult.success && usageResult.data) {
168
+ for (const disk of usageResult.data) {
169
+ if (disk.usagePercentage > 90) {
170
+ issues.push(`High disk usage on ${disk.mountpoint}: ${disk.usagePercentage.toFixed(1)}%`);
171
+ checks.spaceUsage = false;
172
+ }
173
+ else if (disk.usagePercentage > 80) {
174
+ issues.push(`Disk usage warning on ${disk.mountpoint}: ${disk.usagePercentage.toFixed(1)}%`);
175
+ }
176
+ }
177
+ }
178
+ }
179
+ catch (error) {
180
+ issues.push('Failed to check disk usage');
181
+ checks.spaceUsage = false;
182
+ }
183
+ // 检查挂载状态
184
+ try {
185
+ const mountsResult = await this.mounts();
186
+ if (mountsResult.success && mountsResult.data) {
187
+ const readOnlyMounts = mountsResult.data.filter(mount => mount.options.includes('ro') && !mount.mountpoint.startsWith('/proc'));
188
+ if (readOnlyMounts.length > 0) {
189
+ issues.push(`Read-only filesystems detected: ${readOnlyMounts.map(m => m.mountpoint).join(', ')}`);
190
+ checks.mountStatus = false;
191
+ }
192
+ }
193
+ }
194
+ catch (error) {
195
+ issues.push('Failed to check mount status');
196
+ checks.mountStatus = false;
197
+ }
198
+ // 确定整体健康状态
199
+ let status = 'healthy';
200
+ if (!checks.spaceUsage || !checks.mountStatus || !checks.ioErrors) {
201
+ status = 'critical';
202
+ }
203
+ else if (issues.length > 0) {
204
+ status = 'warning';
205
+ }
206
+ return {
207
+ status,
208
+ issues,
209
+ checks
210
+ };
211
+ }, this.diskConfig.cacheTTL || 30000);
212
+ }
213
+ /**
214
+ * 配置是否包含 I/O 统计
215
+ */
216
+ withStats(include) {
217
+ this.diskConfig.includeStats = include;
218
+ return this;
219
+ }
220
+ /**
221
+ * 配置排除的文件系统类型
222
+ */
223
+ withExcludeTypes(types) {
224
+ this.diskConfig.excludeTypes = types;
225
+ return this;
226
+ }
227
+ /**
228
+ * 配置只监控指定的挂载点
229
+ */
230
+ withMountPoints(mountPoints) {
231
+ this.diskConfig.mountPoints = mountPoints;
232
+ return this;
233
+ }
234
+ /**
235
+ * 配置磁盘单位
236
+ */
237
+ withUnit(unit) {
238
+ this.diskConfig.unit = unit;
239
+ return this;
240
+ }
241
+ /**
242
+ * 获取默认配置
243
+ */
244
+ getDefaultConfig() {
245
+ return {
246
+ interval: 5000,
247
+ timeout: 10000,
248
+ cacheEnabled: true,
249
+ cacheTTL: 15000,
250
+ samples: 1,
251
+ includeDetails: true,
252
+ includeStats: false, // I/O 统计可能对性能有影响
253
+ excludeTypes: ['proc', 'sysfs', 'devtmpfs', 'tmpfs', 'devpts'],
254
+ unit: 'GB'
255
+ };
256
+ }
257
+ // 私有转换方法
258
+ /**
259
+ * 转换磁盘基本信息
260
+ */
261
+ transformDiskInfo(rawData) {
262
+ if (!Array.isArray(rawData)) {
263
+ return [];
264
+ }
265
+ return rawData.map(disk => ({
266
+ device: disk.device || disk.name || 'unknown',
267
+ mountpoint: disk.mountPoint || disk.mount || '/',
268
+ filesystem: disk.filesystem || disk.fs || disk.type || 'unknown',
269
+ total: new types_1.DataSize(this.safeParseNumber(disk.total || disk.size)),
270
+ used: new types_1.DataSize(this.safeParseNumber(disk.used)),
271
+ available: new types_1.DataSize(this.safeParseNumber(disk.available || disk.free)),
272
+ usagePercentage: this.calculateUsagePercentage(disk),
273
+ type: this.normalizeDeviceType(disk.type || disk.device),
274
+ model: disk.model,
275
+ serial: disk.serial,
276
+ interface: disk.interface
277
+ }));
278
+ }
279
+ /**
280
+ * 转换磁盘使用情况
281
+ */
282
+ transformDiskUsage(rawData) {
283
+ if (!Array.isArray(rawData)) {
284
+ return [];
285
+ }
286
+ return rawData
287
+ .filter(disk => this.shouldIncludeDisk(disk))
288
+ .map(disk => ({
289
+ device: disk.device || disk.filesystem || 'unknown',
290
+ mountpoint: disk.mountPoint || disk.mount || '/',
291
+ filesystem: disk.filesystem || disk.fs || disk.type || 'unknown',
292
+ total: new types_1.DataSize(this.safeParseNumber(disk.total || disk.size)),
293
+ used: new types_1.DataSize(this.safeParseNumber(disk.used)),
294
+ available: new types_1.DataSize(this.safeParseNumber(disk.available || disk.free)),
295
+ usagePercentage: this.calculateUsagePercentage(disk)
296
+ }));
297
+ }
298
+ /**
299
+ * 转换磁盘 I/O 统计
300
+ */
301
+ transformDiskStats(rawData) {
302
+ if (!Array.isArray(rawData)) {
303
+ return [];
304
+ }
305
+ return rawData.map(stats => {
306
+ const readCount = this.safeParseNumber(stats.reads || stats.read_ios);
307
+ const writeCount = this.safeParseNumber(stats.writes || stats.write_ios);
308
+ const readSectors = stats.readSectors ?? stats.read_sectors;
309
+ const writeSectors = stats.writeSectors ?? stats.write_sectors;
310
+ const readBytesRaw = stats.readBytes ?? stats.read_bytes;
311
+ const writeBytesRaw = stats.writeBytes ?? stats.write_bytes;
312
+ // Linux 适配器默认返回扇区数量,需要在此统一换算为字节;如果已有明确字节值则直接使用
313
+ const readSectorsValue = readSectors !== undefined ? this.safeParseNumber(readSectors) : 0;
314
+ const writeSectorsValue = writeSectors !== undefined ? this.safeParseNumber(writeSectors) : 0;
315
+ const readBytesValue = readBytesRaw !== undefined && readBytesRaw !== null
316
+ ? this.safeParseNumber(readBytesRaw)
317
+ : readSectorsValue * 512;
318
+ const writeBytesValue = writeBytesRaw !== undefined && writeBytesRaw !== null
319
+ ? this.safeParseNumber(writeBytesRaw)
320
+ : writeSectorsValue * 512;
321
+ return {
322
+ device: stats.device || 'unknown',
323
+ readCount,
324
+ writeCount,
325
+ readBytes: new types_1.DataSize(readBytesValue),
326
+ writeBytes: new types_1.DataSize(writeBytesValue),
327
+ readTime: this.safeParseNumber(stats.readTime || stats.read_ticks),
328
+ writeTime: this.safeParseNumber(stats.writeTime || stats.write_ticks),
329
+ ioTime: this.safeParseNumber(stats.ioTime || stats.io_ticks),
330
+ weightedIOTime: this.safeParseNumber(stats.weightedIOTime || stats.time_in_queue)
331
+ };
332
+ });
333
+ }
334
+ /**
335
+ * 转换挂载点信息
336
+ */
337
+ transformMountPoints(rawData) {
338
+ if (!Array.isArray(rawData)) {
339
+ return [];
340
+ }
341
+ return rawData.map(mount => ({
342
+ device: mount.device || mount.source || 'unknown',
343
+ mountpoint: mount.mountPoint || mount.target || mount.mount || '/',
344
+ filesystem: mount.filesystem || mount.fstype || mount.type || 'unknown',
345
+ options: (mount.options || mount.opts || '').toString(),
346
+ dump: this.safeParseNumber(mount.dump),
347
+ pass: this.safeParseNumber(mount.pass)
348
+ }));
349
+ }
350
+ /**
351
+ * 转换文件系统信息
352
+ */
353
+ transformFileSystems(rawData) {
354
+ if (!Array.isArray(rawData)) {
355
+ return [];
356
+ }
357
+ return rawData.map(fs => ({
358
+ name: fs.name || fs.filesystem || 'unknown',
359
+ type: fs.type || fs.fstype || 'unknown',
360
+ description: fs.description || '',
361
+ supported: fs.supported !== false,
362
+ features: fs.features || []
363
+ }));
364
+ }
365
+ /**
366
+ * 计算使用率百分比
367
+ */
368
+ calculateUsagePercentage(disk) {
369
+ const total = this.safeParseNumber(disk.total || disk.size);
370
+ const used = this.safeParseNumber(disk.used);
371
+ if (total <= 0) {
372
+ return 0;
373
+ }
374
+ return Math.round((used / total) * 10000) / 100; // 保留两位小数
375
+ }
376
+ /**
377
+ * 判断是否应该包含该磁盘
378
+ */
379
+ shouldIncludeDisk(disk) {
380
+ const filesystem = disk.filesystem || disk.fs || disk.type || '';
381
+ // 排除指定的文件系统类型
382
+ if (this.diskConfig.excludeTypes &&
383
+ this.diskConfig.excludeTypes.includes(filesystem)) {
384
+ return false;
385
+ }
386
+ // 如果配置了特定挂载点,只包含这些挂载点
387
+ if (this.diskConfig.mountPoints && this.diskConfig.mountPoints.length > 0) {
388
+ // 适配不同来源字段(mountPoint/mountpoint/mount),确保定向监控精确生效
389
+ const mountPoint = disk.mountPoint || disk.mountpoint || disk.mount || '/';
390
+ return this.diskConfig.mountPoints.includes(mountPoint);
391
+ }
392
+ return true;
393
+ }
394
+ /**
395
+ * 规范化设备类型
396
+ */
397
+ normalizeDeviceType(type) {
398
+ if (!type)
399
+ return 'Unknown';
400
+ const normalizedType = type.toLowerCase();
401
+ if (normalizedType.includes('ssd'))
402
+ return 'SSD';
403
+ if (normalizedType.includes('hdd') || normalizedType.includes('hard'))
404
+ return 'HDD';
405
+ if (normalizedType.includes('nvme'))
406
+ return 'NVMe';
407
+ if (normalizedType.includes('emmc'))
408
+ return 'eMMC';
409
+ return 'Unknown';
410
+ }
411
+ /**
412
+ * 安全解析数字
413
+ */
414
+ safeParseNumber(value) {
415
+ if (typeof value === 'number') {
416
+ return isNaN(value) ? 0 : value;
417
+ }
418
+ if (typeof value === 'string') {
419
+ const parsed = parseFloat(value);
420
+ return isNaN(parsed) ? 0 : parsed;
421
+ }
422
+ return 0;
423
+ }
424
+ // ==================== 向后兼容的同步方法 ====================
425
+ /**
426
+ * 获取指定路径的空闲磁盘空间(同步版本,向后兼容)
427
+ * @param path 路径(默认为根目录)
428
+ * @returns 空闲磁盘空间对象或 'not supported'
429
+ */
430
+ free(path = '/') {
431
+ try {
432
+ // 对于同步版本,我们无法调用异步的适配器方法
433
+ // 这里返回一个基本的结构,实际值需要通过异步方法获取
434
+ return {
435
+ size: 0, // 总大小
436
+ used: 0, // 已用空间
437
+ available: 0 // 可用空间
438
+ };
439
+ }
440
+ catch (error) {
441
+ return 'not supported';
442
+ }
443
+ }
444
+ /**
445
+ * 获取指定路径的已用磁盘空间(同步版本,向后兼容)
446
+ * @param path 路径(默认为根目录)
447
+ * @returns 已用磁盘空间对象或 'not supported'
448
+ */
449
+ used(path = '/') {
450
+ try {
451
+ // 对于同步版本,我们无法调用异步的适配器方法
452
+ // 这里返回一个基本的结构,实际值需要通过异步方法获取
453
+ return {
454
+ size: 0, // 总大小
455
+ used: 0, // 已用空间
456
+ available: 0 // 可用空间
457
+ };
458
+ }
459
+ catch (error) {
460
+ return 'not supported';
461
+ }
462
+ }
463
+ }
464
+ exports.DiskMonitor = DiskMonitor;
465
+ //# sourceMappingURL=disk-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk-monitor.js","sourceRoot":"","sources":["../../../src/monitors/disk-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { BaseMonitor } from '../core/base-monitor';
2
+ import { MonitorResult, MemoryConfig, MemoryInfo, MemoryPressure, SwapInfo, 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 MemoryMonitor extends BaseMonitor<MemoryInfo> {
11
+ private memoryConfig;
12
+ constructor(adapter: PlatformAdapter, config?: MemoryConfig, cache?: CacheManager);
13
+ /**
14
+ * 获取内存基本信息
15
+ */
16
+ info(): Promise<MonitorResult<MemoryInfo>>;
17
+ /**
18
+ * 获取详细内存信息
19
+ */
20
+ detailed(): Promise<MonitorResult<MemoryInfo & {
21
+ breakdown: any;
22
+ }>>;
23
+ /**
24
+ * 获取内存使用率百分比
25
+ */
26
+ usage(): Promise<MonitorResult<number>>;
27
+ /**
28
+ * 获取可用内存
29
+ */
30
+ available(): Promise<MonitorResult<DataSize>>;
31
+ /**
32
+ * 获取已用内存(异步版本)
33
+ */
34
+ usedAsync(): Promise<MonitorResult<DataSize>>;
35
+ /**
36
+ * 获取交换空间信息
37
+ */
38
+ swap(): Promise<MonitorResult<SwapInfo>>;
39
+ /**
40
+ * 获取内存压力信息
41
+ */
42
+ pressure(): Promise<MonitorResult<MemoryPressure>>;
43
+ /**
44
+ * 获取缓存和缓冲区信息
45
+ */
46
+ buffers(): Promise<MonitorResult<{
47
+ cached: DataSize;
48
+ buffers: DataSize;
49
+ }>>;
50
+ /**
51
+ * 获取总内存大小
52
+ */
53
+ total(): Promise<MonitorResult<DataSize>>;
54
+ /**
55
+ * 获取内存统计摘要
56
+ */
57
+ summary(): Promise<MonitorResult<{
58
+ total: string;
59
+ used: string;
60
+ available: string;
61
+ usagePercentage: number;
62
+ swap: {
63
+ total: string;
64
+ used: string;
65
+ usagePercentage: number;
66
+ };
67
+ }>>;
68
+ /**
69
+ * 配置是否包含交换空间信息
70
+ */
71
+ withSwap(include: boolean): this;
72
+ /**
73
+ * 配置是否包含缓存和缓冲区信息
74
+ */
75
+ withBuffers(include: boolean): this;
76
+ /**
77
+ * 配置是否包含内存压力信息
78
+ */
79
+ withPressure(include: boolean): this;
80
+ /**
81
+ * 配置内存单位
82
+ */
83
+ withUnit(unit: 'auto' | 'B' | 'KB' | 'MB' | 'GB' | 'TB'): this;
84
+ /**
85
+ * 获取默认配置
86
+ */
87
+ protected getDefaultConfig(): MemoryConfig;
88
+ /**
89
+ * 转换内存基本信息
90
+ */
91
+ private transformMemoryInfo;
92
+ /**
93
+ * 转换交换空间信息
94
+ */
95
+ private transformSwapInfo;
96
+ /**
97
+ * 转换内存压力信息
98
+ */
99
+ private transformMemoryPressure;
100
+ /**
101
+ * 计算内存压力
102
+ */
103
+ private calculateMemoryPressure;
104
+ /**
105
+ * 提取详细内存分解信息
106
+ */
107
+ private extractDetailedBreakdown;
108
+ /**
109
+ * 规范化压力级别
110
+ */
111
+ private normalizePressureLevel;
112
+ /**
113
+ * 压力级别转分数
114
+ */
115
+ private pressureLevelToScore;
116
+ /**
117
+ * 安全解析数字
118
+ */
119
+ private safeParseNumber;
120
+ /**
121
+ * 获取总内存大小(同步版本,向后兼容)
122
+ * @returns 总内存大小(字节)或 'not supported'
123
+ */
124
+ totalMem(): number | string;
125
+ /**
126
+ * 获取空闲内存大小(同步版本,向后兼容)
127
+ * @returns 空闲内存大小(字节)或 'not supported'
128
+ */
129
+ free(): number | string;
130
+ /**
131
+ * 获取已用内存大小(同步版本,向后兼容)
132
+ * @returns 已用内存大小(字节)或 'not supported'
133
+ */
134
+ used(): number | string;
135
+ }
136
+ //# sourceMappingURL=memory-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-monitor.d.ts","sourceRoot":"","sources":["../../../src/monitors/memory-monitor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,UAAU,EACV,cAAc,EACd,QAAQ,EACR,QAAQ,EACT,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,WAAW,CAAC,UAAU,CAAC;IACxD,OAAO,CAAC,YAAY,CAAe;gBAGjC,OAAO,EAAE,eAAe,EACxB,MAAM,GAAE,YAAiB,EACzB,KAAK,CAAC,EAAE,YAAY;IAMtB;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IAehD;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC,UAAU,GAAG;QAAE,SAAS,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IAqBzE;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAc7C;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAcnD;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAcnD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAqB9C;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;IAqBxD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;QAAE,MAAM,EAAE,QAAQ,CAAC;QAAC,OAAO,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;IAsBhF;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAa/C;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,aAAa,CAAC;QACrC,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,IAAI,EAAE;YACJ,KAAK,EAAE,MAAM,CAAC;YACd,IAAI,EAAE,MAAM,CAAC;YACb,eAAe,EAAE,MAAM,CAAC;SACzB,CAAC;KACH,CAAC,CAAC;IA0BH;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKhC;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKnC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAKpC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI;IAK9D;;OAEG;IACH,SAAS,CAAC,gBAAgB,IAAI,YAAY;IAiB1C;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuC3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAuB/B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAiC/B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAmChC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgB5B;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;;OAGG;IACH,QAAQ,IAAI,MAAM,GAAG,MAAM;IAS3B;;;OAGG;IACH,IAAI,IAAI,MAAM,GAAG,MAAM;IASvB;;;OAGG;IACH,IAAI,IAAI,MAAM,GAAG,MAAM;CAcxB"}