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,433 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CPUMonitor = void 0;
4
+ const base_monitor_1 = require("../core/base-monitor");
5
+ const types_1 = require("../types");
6
+ /**
7
+ * CPU 监控器
8
+ *
9
+ * 提供 CPU 相关的监控功能,包括基本信息、使用率、温度、频率等
10
+ */
11
+ class CPUMonitor extends base_monitor_1.BaseMonitor {
12
+ constructor(adapter, config = {}, cache) {
13
+ super(adapter, config, cache);
14
+ this.cpuConfig = { ...this.getDefaultConfig(), ...config };
15
+ }
16
+ /**
17
+ * 获取 CPU 基本信息
18
+ */
19
+ async info() {
20
+ const cacheKey = 'cpu-info';
21
+ return this.executeWithCache(cacheKey, async () => {
22
+ this.validatePlatformSupport('cpu.info');
23
+ const rawData = await this.adapter.getCPUInfo();
24
+ return this.transformCPUInfo(rawData);
25
+ }, this.cpuConfig.cacheTTL || 30000 // CPU 信息缓存 30 秒
26
+ );
27
+ }
28
+ /**
29
+ * 获取 CPU 使用率
30
+ */
31
+ async usage() {
32
+ const cacheKey = `cpu-usage-${this.cpuConfig.samplingInterval || 1000}`;
33
+ return this.executeWithCache(cacheKey, async () => {
34
+ this.validatePlatformSupport('cpu.usage');
35
+ const rawData = await this.adapter.getCPUUsage();
36
+ const usageData = this.transformCPUUsage(rawData);
37
+ return usageData.overall;
38
+ }, this.cpuConfig.cacheTTL || 1000 // 使用率缓存较短
39
+ );
40
+ }
41
+ /**
42
+ * 获取详细的 CPU 使用率信息
43
+ */
44
+ async usageDetailed() {
45
+ const cacheKey = `cpu-usage-detailed-${this.cpuConfig.samplingInterval || 1000}`;
46
+ return this.executeWithCache(cacheKey, async () => {
47
+ this.validatePlatformSupport('cpu.usage');
48
+ const rawData = await this.adapter.getCPUUsage();
49
+ return this.transformCPUUsage(rawData);
50
+ }, this.cpuConfig.cacheTTL || 1000);
51
+ }
52
+ /**
53
+ * 获取每个 CPU 核心的使用率
54
+ */
55
+ async usageByCore() {
56
+ const cacheKey = `cpu-usage-cores-${this.cpuConfig.samplingInterval || 1000}`;
57
+ return this.executeWithCache(cacheKey, async () => {
58
+ this.validatePlatformSupport('cpu.perCore');
59
+ const rawData = await this.adapter.getCPUUsage();
60
+ const usageData = this.transformCPUUsage(rawData);
61
+ return usageData.cores || [];
62
+ }, this.cpuConfig.cacheTTL || 1000);
63
+ }
64
+ /**
65
+ * 获取系统负载平均值
66
+ */
67
+ async loadAverage() {
68
+ const cacheKey = 'cpu-loadavg';
69
+ return this.executeWithCache(cacheKey, async () => {
70
+ this.validatePlatformSupport('cpu.usage');
71
+ const rawData = await this.adapter.getSystemLoad();
72
+ return this.transformLoadAverage(rawData);
73
+ }, this.cpuConfig.cacheTTL || 5000);
74
+ }
75
+ /**
76
+ * 获取 CPU 温度
77
+ */
78
+ async temperature() {
79
+ if (!this.cpuConfig.includeTemperature) {
80
+ return this.createErrorResult(this.createUnsupportedError('cpu.temperature (disabled in config)'));
81
+ }
82
+ const cacheKey = 'cpu-temperature';
83
+ return this.executeWithCache(cacheKey, async () => {
84
+ this.validatePlatformSupport('cpu.temperature');
85
+ const rawData = await this.adapter.getCPUTemperature();
86
+ return this.transformTemperature(rawData);
87
+ }, this.cpuConfig.cacheTTL || 5000);
88
+ }
89
+ /**
90
+ * 获取 CPU 频率信息
91
+ */
92
+ async frequency() {
93
+ if (!this.cpuConfig.includeFrequency) {
94
+ return this.createErrorResult(this.createUnsupportedError('cpu.frequency (disabled in config)'));
95
+ }
96
+ const cacheKey = 'cpu-frequency';
97
+ return this.executeWithCache(cacheKey, async () => {
98
+ this.validatePlatformSupport('cpu.frequency');
99
+ // 频率信息通常在 CPU 基本信息中包含
100
+ const rawData = await this.adapter.getCPUInfo();
101
+ return this.extractFrequencyInfo(rawData);
102
+ }, this.cpuConfig.cacheTTL || 10000);
103
+ }
104
+ /**
105
+ * 获取 CPU 缓存信息
106
+ */
107
+ async getCacheInfo() {
108
+ if (!this.cpuConfig.includeCache) {
109
+ return this.createErrorResult(this.createUnsupportedError('cpu.cache (disabled in config)'));
110
+ }
111
+ const cacheKey = 'cpu-cache';
112
+ return this.executeWithCache(cacheKey, async () => {
113
+ this.validatePlatformSupport('cpu.cache');
114
+ const rawData = await this.adapter.getCPUInfo();
115
+ return this.extractCacheInfo(rawData);
116
+ }, this.cpuConfig.cacheTTL || 30000);
117
+ }
118
+ /**
119
+ * 获取 CPU 核心数
120
+ */
121
+ async coreCount() {
122
+ const cacheKey = 'cpu-core-count';
123
+ return this.executeWithCache(cacheKey, async () => {
124
+ const rawData = await this.adapter.getCPUInfo();
125
+ return {
126
+ physical: rawData.cores || rawData.count || 1,
127
+ logical: rawData.threads || rawData.count || 1
128
+ };
129
+ }, this.cpuConfig.cacheTTL || 60000 // 核心数很少变化,缓存 1 分钟
130
+ );
131
+ }
132
+ /**
133
+ * 配置采样间隔
134
+ */
135
+ withSamplingInterval(interval) {
136
+ this.cpuConfig.samplingInterval = interval;
137
+ return this;
138
+ }
139
+ /**
140
+ * 配置是否包含温度信息
141
+ */
142
+ withTemperature(include) {
143
+ this.cpuConfig.includeTemperature = include;
144
+ return this;
145
+ }
146
+ /**
147
+ * 配置是否包含频率信息
148
+ */
149
+ withFrequency(include) {
150
+ this.cpuConfig.includeFrequency = include;
151
+ return this;
152
+ }
153
+ /**
154
+ * 配置是否包含缓存信息
155
+ */
156
+ withCacheInfo(include) {
157
+ this.cpuConfig.includeCache = include;
158
+ return this;
159
+ }
160
+ /**
161
+ * 配置是否按核心监控
162
+ */
163
+ withPerCore(enable) {
164
+ this.cpuConfig.perCore = enable;
165
+ return this;
166
+ }
167
+ /**
168
+ * 获取默认配置
169
+ */
170
+ getDefaultConfig() {
171
+ return {
172
+ interval: 1000,
173
+ timeout: 10000,
174
+ cacheEnabled: true,
175
+ cacheTTL: 5000,
176
+ samples: 1,
177
+ includeDetails: true,
178
+ samplingInterval: 1000,
179
+ includeTemperature: false, // 默认不包含温度,可能需要特殊权限
180
+ includeFrequency: true,
181
+ includeCache: true,
182
+ perCore: false,
183
+ loadAverageWindows: [1, 5, 15]
184
+ };
185
+ }
186
+ // 私有转换方法
187
+ /**
188
+ * 转换 CPU 基本信息
189
+ */
190
+ transformCPUInfo(rawData) {
191
+ return {
192
+ model: rawData.model || 'Unknown',
193
+ manufacturer: rawData.manufacturer || rawData.vendor || 'Unknown',
194
+ architecture: rawData.architecture || rawData.arch || 'Unknown',
195
+ cores: rawData.cores || rawData.count || 1,
196
+ threads: rawData.threads || rawData.cores || rawData.count || 1,
197
+ baseFrequency: rawData.baseFrequency || rawData.frequency || 0,
198
+ maxFrequency: rawData.maxFrequency || rawData.frequency || 0,
199
+ cache: this.transformCacheInfo(rawData.cache || {}),
200
+ features: rawData.features || [],
201
+ vendorId: rawData.vendorId || rawData.vendor_id,
202
+ family: rawData.family,
203
+ modelNumber: rawData.modelNumber || rawData.model_number,
204
+ stepping: rawData.stepping
205
+ };
206
+ }
207
+ /**
208
+ * 转换 CPU 使用率信息
209
+ */
210
+ transformCPUUsage(rawData) {
211
+ return {
212
+ overall: this.safeParseNumber(rawData.overall || rawData.usage),
213
+ cores: rawData.cores || [],
214
+ user: this.safeParseNumber(rawData.user),
215
+ system: this.safeParseNumber(rawData.system || rawData.sys),
216
+ idle: this.safeParseNumber(rawData.idle),
217
+ iowait: this.safeParseNumber(rawData.iowait),
218
+ irq: this.safeParseNumber(rawData.irq),
219
+ softirq: this.safeParseNumber(rawData.softirq)
220
+ };
221
+ }
222
+ /**
223
+ * 转换负载平均值
224
+ */
225
+ transformLoadAverage(rawData) {
226
+ return {
227
+ load1: this.safeParseNumber(rawData.load1),
228
+ load5: this.safeParseNumber(rawData.load5),
229
+ load15: this.safeParseNumber(rawData.load15)
230
+ };
231
+ }
232
+ /**
233
+ * 转换温度信息
234
+ */
235
+ transformTemperature(rawData) {
236
+ if (!Array.isArray(rawData)) {
237
+ return [];
238
+ }
239
+ return rawData.map(item => this.safeParseNumber(item.temperature || item.temp || 0));
240
+ }
241
+ /**
242
+ * 转换缓存信息
243
+ */
244
+ transformCacheInfo(rawCache) {
245
+ const cache = {};
246
+ if (rawCache.l1d !== undefined) {
247
+ cache.l1d = new types_1.DataSize(this.safeParseNumber(rawCache.l1d));
248
+ }
249
+ if (rawCache.l1i !== undefined) {
250
+ cache.l1i = new types_1.DataSize(this.safeParseNumber(rawCache.l1i));
251
+ }
252
+ if (rawCache.l2 !== undefined) {
253
+ cache.l2 = new types_1.DataSize(this.safeParseNumber(rawCache.l2));
254
+ }
255
+ if (rawCache.l3 !== undefined) {
256
+ cache.l3 = new types_1.DataSize(this.safeParseNumber(rawCache.l3));
257
+ }
258
+ return cache;
259
+ }
260
+ /**
261
+ * 提取频率信息
262
+ */
263
+ extractFrequencyInfo(rawData) {
264
+ const frequencies = [];
265
+ if (rawData.baseFrequency) {
266
+ frequencies.push({
267
+ type: 'base',
268
+ frequency: this.safeParseNumber(rawData.baseFrequency)
269
+ });
270
+ }
271
+ if (rawData.maxFrequency) {
272
+ frequencies.push({
273
+ type: 'max',
274
+ frequency: this.safeParseNumber(rawData.maxFrequency)
275
+ });
276
+ }
277
+ // 如果有每核心频率信息
278
+ if (rawData.cores && Array.isArray(rawData.cores)) {
279
+ rawData.cores.forEach((core, index) => {
280
+ if (core.frequency) {
281
+ frequencies.push({
282
+ type: 'core',
283
+ core: index,
284
+ frequency: this.safeParseNumber(core.frequency)
285
+ });
286
+ }
287
+ });
288
+ }
289
+ return frequencies;
290
+ }
291
+ /**
292
+ * 提取缓存信息
293
+ */
294
+ extractCacheInfo(rawData) {
295
+ const cache = {};
296
+ // 尝试从不同字段提取缓存信息
297
+ if (rawData.cache) {
298
+ return this.transformCacheInfo(rawData.cache);
299
+ }
300
+ // 如果是 CPU 数组,取第一个 CPU 的缓存信息
301
+ if (rawData.cpus && Array.isArray(rawData.cpus) && rawData.cpus.length > 0) {
302
+ const firstCpu = rawData.cpus[0];
303
+ // Linux /proc/cpuinfo 格式
304
+ if (firstCpu['cache size']) {
305
+ const cacheSize = this.parseCacheSize(firstCpu['cache size']);
306
+ if (cacheSize > 0) {
307
+ cache.l3 = new types_1.DataSize(cacheSize);
308
+ }
309
+ }
310
+ }
311
+ return cache;
312
+ }
313
+ /**
314
+ * 解析缓存大小字符串
315
+ */
316
+ parseCacheSize(cacheStr) {
317
+ const match = cacheStr.match(/(\d+)\s*([KMGT]?B?)/i);
318
+ if (!match)
319
+ return 0;
320
+ const value = this.safeParseNumber(match[1]);
321
+ const unit = match[2].toUpperCase();
322
+ const multipliers = {
323
+ 'B': 1,
324
+ 'KB': 1024,
325
+ 'MB': 1024 * 1024,
326
+ 'GB': 1024 * 1024 * 1024,
327
+ 'K': 1024,
328
+ 'M': 1024 * 1024,
329
+ 'G': 1024 * 1024 * 1024
330
+ };
331
+ return value * (multipliers[unit] || 1);
332
+ }
333
+ /**
334
+ * 安全解析数字
335
+ */
336
+ safeParseNumber(value) {
337
+ if (typeof value === 'number') {
338
+ return isNaN(value) ? 0 : value;
339
+ }
340
+ if (typeof value === 'string') {
341
+ const parsed = parseFloat(value);
342
+ return isNaN(parsed) ? 0 : parsed;
343
+ }
344
+ return 0;
345
+ }
346
+ // ==================== 向后兼容的同步方法 ====================
347
+ /**
348
+ * 获取系统负载平均值(同步版本,向后兼容)
349
+ * @returns 负载平均值数组 [1分钟, 5分钟, 15分钟] 或 'not supported'
350
+ */
351
+ loadavg() {
352
+ try {
353
+ // 尝试使用 Node.js 内置的 os.loadavg()
354
+ const os = require('os');
355
+ return os.loadavg();
356
+ }
357
+ catch (error) {
358
+ return 'not supported';
359
+ }
360
+ }
361
+ /**
362
+ * 获取指定时间窗口的负载平均值(同步版本,向后兼容)
363
+ * @param minutes 时间窗口(1, 5, 或 15 分钟)
364
+ * @returns 指定时间窗口的负载平均值或 'not supported'
365
+ */
366
+ loadavgTime(minutes) {
367
+ try {
368
+ const loads = this.loadavg();
369
+ if (loads === 'not supported') {
370
+ return 'not supported';
371
+ }
372
+ const loadArray = loads;
373
+ switch (minutes) {
374
+ case 1: return loadArray[0];
375
+ case 5: return loadArray[1];
376
+ case 15: return loadArray[2];
377
+ default: return 'not supported';
378
+ }
379
+ }
380
+ catch (error) {
381
+ return 'not supported';
382
+ }
383
+ }
384
+ /**
385
+ * 获取 CPU 平均信息(同步版本,向后兼容)
386
+ * @returns CPU 平均信息对象或 'not supported'
387
+ */
388
+ average() {
389
+ try {
390
+ // 这个方法在旧版本中可能返回负载平均值或其他统计信息
391
+ const loads = this.loadavg();
392
+ if (loads === 'not supported') {
393
+ return 'not supported';
394
+ }
395
+ return {
396
+ loadavg: loads,
397
+ usage: 0 // 同步方法无法获取实时使用率,返回 0
398
+ };
399
+ }
400
+ catch (error) {
401
+ return 'not supported';
402
+ }
403
+ }
404
+ /**
405
+ * 获取 CPU 型号(同步版本,向后兼容)
406
+ * @returns CPU 型号字符串或 'not supported'
407
+ */
408
+ model() {
409
+ try {
410
+ const os = require('os');
411
+ const cpus = os.cpus();
412
+ return cpus && cpus.length > 0 ? cpus[0].model : 'Unknown';
413
+ }
414
+ catch (error) {
415
+ return 'not supported';
416
+ }
417
+ }
418
+ /**
419
+ * 获取 CPU 核心数(同步版本,向后兼容)
420
+ * @returns CPU 核心数或 'not supported'
421
+ */
422
+ count() {
423
+ try {
424
+ const os = require('os');
425
+ return os.cpus().length;
426
+ }
427
+ catch (error) {
428
+ return 'not supported';
429
+ }
430
+ }
431
+ }
432
+ exports.CPUMonitor = CPUMonitor;
433
+ //# sourceMappingURL=cpu-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cpu-monitor.js","sourceRoot":"","sources":["../../../src/monitors/cpu-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { BaseMonitor } from '../core/base-monitor';
2
+ import { MonitorResult, DiskConfig, DiskInfo, DiskUsage, DiskStats, MountPoint, FileSystem, DataSize } from '../types';
3
+ import { PlatformAdapter } from '../types/platform';
4
+ import { CacheManager } from '../core/cache-manager';
5
+ /**
6
+ * 磁盘监控器
7
+ *
8
+ * 提供磁盘相关的监控功能,包括空间使用、I/O统计、挂载点等
9
+ */
10
+ export declare class DiskMonitor extends BaseMonitor<DiskInfo[]> {
11
+ private diskConfig;
12
+ constructor(adapter: PlatformAdapter, config?: DiskConfig, cache?: CacheManager);
13
+ /**
14
+ * 获取所有磁盘信息
15
+ */
16
+ info(): Promise<MonitorResult<DiskInfo[]>>;
17
+ /**
18
+ * 获取指定磁盘的信息
19
+ */
20
+ infoByDevice(device: string): Promise<MonitorResult<DiskInfo | null>>;
21
+ /**
22
+ * 获取磁盘使用情况
23
+ */
24
+ usage(): Promise<MonitorResult<DiskUsage[]>>;
25
+ /**
26
+ * 获取总体磁盘使用率(百分比)
27
+ */
28
+ overallUsage(): Promise<MonitorResult<number>>;
29
+ /**
30
+ * 获取指定挂载点的使用情况
31
+ */
32
+ usageByMountPoint(mountPoint: string): Promise<MonitorResult<DiskUsage | null>>;
33
+ /**
34
+ * 获取磁盘 I/O 统计
35
+ */
36
+ stats(): Promise<MonitorResult<DiskStats[]>>;
37
+ /**
38
+ * 获取挂载点信息
39
+ */
40
+ mounts(): Promise<MonitorResult<MountPoint[]>>;
41
+ /**
42
+ * 获取文件系统信息
43
+ */
44
+ filesystems(): Promise<MonitorResult<FileSystem[]>>;
45
+ /**
46
+ * 获取磁盘空间总览
47
+ */
48
+ spaceOverview(): Promise<MonitorResult<{
49
+ total: DataSize;
50
+ used: DataSize;
51
+ available: DataSize;
52
+ usagePercentage: number;
53
+ disks: number;
54
+ }>>;
55
+ /**
56
+ * 获取磁盘健康状态检查
57
+ */
58
+ healthCheck(): Promise<MonitorResult<{
59
+ status: 'healthy' | 'warning' | 'critical';
60
+ issues: string[];
61
+ checks: {
62
+ spaceUsage: boolean;
63
+ mountStatus: boolean;
64
+ ioErrors: boolean;
65
+ };
66
+ }>>;
67
+ /**
68
+ * 配置是否包含 I/O 统计
69
+ */
70
+ withStats(include: boolean): this;
71
+ /**
72
+ * 配置排除的文件系统类型
73
+ */
74
+ withExcludeTypes(types: string[]): this;
75
+ /**
76
+ * 配置只监控指定的挂载点
77
+ */
78
+ withMountPoints(mountPoints: string[]): this;
79
+ /**
80
+ * 配置磁盘单位
81
+ */
82
+ withUnit(unit: 'auto' | 'B' | 'KB' | 'MB' | 'GB' | 'TB'): this;
83
+ /**
84
+ * 获取默认配置
85
+ */
86
+ protected getDefaultConfig(): DiskConfig;
87
+ /**
88
+ * 转换磁盘基本信息
89
+ */
90
+ private transformDiskInfo;
91
+ /**
92
+ * 转换磁盘使用情况
93
+ */
94
+ private transformDiskUsage;
95
+ /**
96
+ * 转换磁盘 I/O 统计
97
+ */
98
+ private transformDiskStats;
99
+ /**
100
+ * 转换挂载点信息
101
+ */
102
+ private transformMountPoints;
103
+ /**
104
+ * 转换文件系统信息
105
+ */
106
+ private transformFileSystems;
107
+ /**
108
+ * 计算使用率百分比
109
+ */
110
+ private calculateUsagePercentage;
111
+ /**
112
+ * 判断是否应该包含该磁盘
113
+ */
114
+ private shouldIncludeDisk;
115
+ /**
116
+ * 规范化设备类型
117
+ */
118
+ private normalizeDeviceType;
119
+ /**
120
+ * 安全解析数字
121
+ */
122
+ private safeParseNumber;
123
+ /**
124
+ * 获取指定路径的空闲磁盘空间(同步版本,向后兼容)
125
+ * @param path 路径(默认为根目录)
126
+ * @returns 空闲磁盘空间对象或 'not supported'
127
+ */
128
+ free(path?: string): any;
129
+ /**
130
+ * 获取指定路径的已用磁盘空间(同步版本,向后兼容)
131
+ * @param path 路径(默认为根目录)
132
+ * @returns 已用磁盘空间对象或 'not supported'
133
+ */
134
+ used(path?: string): any;
135
+ }
136
+ //# sourceMappingURL=disk-monitor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"disk-monitor.d.ts","sourceRoot":"","sources":["../../../src/monitors/disk-monitor.ts"],"names":[],"mappings":"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"}