@calltelemetry/ct-lab-mcp 0.1.5 → 0.2.0

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 (139) hide show
  1. package/dist/bin/ct-lab-mcp.d.ts.map +1 -1
  2. package/dist/bin/ct-lab-mcp.js +21 -7
  3. package/dist/bin/ct-lab-mcp.js.map +1 -1
  4. package/dist/src/appliance/commands.d.ts.map +1 -1
  5. package/dist/src/appliance/commands.js +24 -0
  6. package/dist/src/appliance/commands.js.map +1 -1
  7. package/dist/src/appliance/executor.d.ts.map +1 -1
  8. package/dist/src/appliance/executor.js +7 -1
  9. package/dist/src/appliance/executor.js.map +1 -1
  10. package/dist/src/appliance/mock.d.ts +6 -0
  11. package/dist/src/appliance/mock.d.ts.map +1 -1
  12. package/dist/src/appliance/mock.js +27 -6
  13. package/dist/src/appliance/mock.js.map +1 -1
  14. package/dist/src/appliance/types.d.ts +20 -1
  15. package/dist/src/appliance/types.d.ts.map +1 -1
  16. package/dist/src/appliance/types.js.map +1 -1
  17. package/dist/src/credentials/errors.d.ts +16 -0
  18. package/dist/src/credentials/errors.d.ts.map +1 -0
  19. package/dist/src/credentials/errors.js +21 -0
  20. package/dist/src/credentials/errors.js.map +1 -0
  21. package/dist/src/credentials/resolver.d.ts +16 -0
  22. package/dist/src/credentials/resolver.d.ts.map +1 -1
  23. package/dist/src/credentials/resolver.js +104 -10
  24. package/dist/src/credentials/resolver.js.map +1 -1
  25. package/dist/src/credentials/types.d.ts +8 -0
  26. package/dist/src/credentials/types.d.ts.map +1 -1
  27. package/dist/src/diagnostics/collector.d.ts +37 -0
  28. package/dist/src/diagnostics/collector.d.ts.map +1 -0
  29. package/dist/src/diagnostics/collector.js +452 -0
  30. package/dist/src/diagnostics/collector.js.map +1 -0
  31. package/dist/src/diagnostics/types.d.ts +103 -0
  32. package/dist/src/diagnostics/types.d.ts.map +1 -0
  33. package/dist/src/diagnostics/types.js +8 -0
  34. package/dist/src/diagnostics/types.js.map +1 -0
  35. package/dist/src/hypervisors/esxi/client.d.ts +1 -0
  36. package/dist/src/hypervisors/esxi/client.d.ts.map +1 -1
  37. package/dist/src/hypervisors/esxi/client.js +15 -3
  38. package/dist/src/hypervisors/esxi/client.js.map +1 -1
  39. package/dist/src/hypervisors/esxi/mock.d.ts +1 -0
  40. package/dist/src/hypervisors/esxi/mock.d.ts.map +1 -1
  41. package/dist/src/hypervisors/esxi/mock.js +4 -0
  42. package/dist/src/hypervisors/esxi/mock.js.map +1 -1
  43. package/dist/src/hypervisors/manager.d.ts.map +1 -1
  44. package/dist/src/hypervisors/manager.js +37 -3
  45. package/dist/src/hypervisors/manager.js.map +1 -1
  46. package/dist/src/hypervisors/proxmox/client.d.ts +13 -1
  47. package/dist/src/hypervisors/proxmox/client.d.ts.map +1 -1
  48. package/dist/src/hypervisors/proxmox/client.js +485 -4
  49. package/dist/src/hypervisors/proxmox/client.js.map +1 -1
  50. package/dist/src/hypervisors/proxmox/mock.d.ts +1 -0
  51. package/dist/src/hypervisors/proxmox/mock.d.ts.map +1 -1
  52. package/dist/src/hypervisors/proxmox/mock.js +4 -0
  53. package/dist/src/hypervisors/proxmox/mock.js.map +1 -1
  54. package/dist/src/hypervisors/types.d.ts +119 -2
  55. package/dist/src/hypervisors/types.d.ts.map +1 -1
  56. package/dist/src/proxmox/mock.d.ts +1 -1
  57. package/dist/src/proxmox/mock.d.ts.map +1 -1
  58. package/dist/src/proxmox/mock.js +103 -1
  59. package/dist/src/proxmox/mock.js.map +1 -1
  60. package/dist/src/server.d.ts.map +1 -1
  61. package/dist/src/server.js +2 -0
  62. package/dist/src/server.js.map +1 -1
  63. package/dist/src/slot/manager.d.ts +26 -1
  64. package/dist/src/slot/manager.d.ts.map +1 -1
  65. package/dist/src/slot/manager.js +278 -1
  66. package/dist/src/slot/manager.js.map +1 -1
  67. package/dist/src/slot/types.d.ts +49 -0
  68. package/dist/src/slot/types.d.ts.map +1 -1
  69. package/dist/src/slot/types.js +18 -0
  70. package/dist/src/slot/types.js.map +1 -1
  71. package/dist/src/tools/credential-status.d.ts +29 -0
  72. package/dist/src/tools/credential-status.d.ts.map +1 -0
  73. package/dist/src/tools/credential-status.js +81 -0
  74. package/dist/src/tools/credential-status.js.map +1 -0
  75. package/dist/src/tools/cube-provision.d.ts +288 -0
  76. package/dist/src/tools/cube-provision.d.ts.map +1 -0
  77. package/dist/src/tools/cube-provision.js +892 -0
  78. package/dist/src/tools/cube-provision.js.map +1 -0
  79. package/dist/src/tools/cube-tools.d.ts +137 -0
  80. package/dist/src/tools/cube-tools.d.ts.map +1 -0
  81. package/dist/src/tools/cube-tools.js +292 -0
  82. package/dist/src/tools/cube-tools.js.map +1 -0
  83. package/dist/src/tools/cucm-emulator-tool.d.ts +85 -0
  84. package/dist/src/tools/cucm-emulator-tool.d.ts.map +1 -0
  85. package/dist/src/tools/cucm-emulator-tool.js +191 -0
  86. package/dist/src/tools/cucm-emulator-tool.js.map +1 -0
  87. package/dist/src/tools/cucm-trunk.d.ts +165 -0
  88. package/dist/src/tools/cucm-trunk.d.ts.map +1 -0
  89. package/dist/src/tools/cucm-trunk.js +354 -0
  90. package/dist/src/tools/cucm-trunk.js.map +1 -0
  91. package/dist/src/tools/diagnostics.d.ts +58 -0
  92. package/dist/src/tools/diagnostics.d.ts.map +1 -0
  93. package/dist/src/tools/diagnostics.js +212 -0
  94. package/dist/src/tools/diagnostics.js.map +1 -0
  95. package/dist/src/tools/guest-agent.d.ts +34 -0
  96. package/dist/src/tools/guest-agent.d.ts.map +1 -0
  97. package/dist/src/tools/guest-agent.js +133 -0
  98. package/dist/src/tools/guest-agent.js.map +1 -0
  99. package/dist/src/tools/index.d.ts +10 -0
  100. package/dist/src/tools/index.d.ts.map +1 -1
  101. package/dist/src/tools/index.js +97 -1
  102. package/dist/src/tools/index.js.map +1 -1
  103. package/dist/src/tools/list-hosts.d.ts +9 -0
  104. package/dist/src/tools/list-hosts.d.ts.map +1 -1
  105. package/dist/src/tools/list-hosts.js.map +1 -1
  106. package/dist/src/tools/network-tools.d.ts +65 -0
  107. package/dist/src/tools/network-tools.d.ts.map +1 -0
  108. package/dist/src/tools/network-tools.js +200 -0
  109. package/dist/src/tools/network-tools.js.map +1 -0
  110. package/dist/src/tools/provision-tools.d.ts.map +1 -1
  111. package/dist/src/tools/provision-tools.js +19 -0
  112. package/dist/src/tools/provision-tools.js.map +1 -1
  113. package/dist/src/tools/server-management.d.ts +51 -0
  114. package/dist/src/tools/server-management.d.ts.map +1 -0
  115. package/dist/src/tools/server-management.js +175 -0
  116. package/dist/src/tools/server-management.js.map +1 -0
  117. package/dist/src/tools/storage-tools.d.ts +177 -0
  118. package/dist/src/tools/storage-tools.d.ts.map +1 -1
  119. package/dist/src/tools/storage-tools.js +420 -0
  120. package/dist/src/tools/storage-tools.js.map +1 -1
  121. package/dist/src/tools/update-cli.d.ts +62 -0
  122. package/dist/src/tools/update-cli.d.ts.map +1 -0
  123. package/dist/src/tools/update-cli.js +142 -0
  124. package/dist/src/tools/update-cli.js.map +1 -0
  125. package/dist/src/tools/vm-action.d.ts +6 -6
  126. package/dist/src/tools/vm-action.d.ts.map +1 -1
  127. package/dist/src/tools/vm-action.js +3 -1
  128. package/dist/src/tools/vm-action.js.map +1 -1
  129. package/dist/src/types/mcp.d.ts +5 -1
  130. package/dist/src/types/mcp.d.ts.map +1 -1
  131. package/dist/src/types/mcp.js +14 -0
  132. package/dist/src/types/mcp.js.map +1 -1
  133. package/dist/src/types/proxmox.d.ts +1 -0
  134. package/dist/src/types/proxmox.d.ts.map +1 -1
  135. package/dist/src/utils/formatters.d.ts +7 -0
  136. package/dist/src/utils/formatters.d.ts.map +1 -1
  137. package/dist/src/utils/formatters.js +48 -5
  138. package/dist/src/utils/formatters.js.map +1 -1
  139. package/package.json +1 -1
@@ -0,0 +1,452 @@
1
+ /**
2
+ * Call Telemetry Appliance Diagnostics Collector
3
+ *
4
+ * Aggregates diagnostic telemetry across HTTP /api/health, Prometheus /metrics,
5
+ * Oban job queues, active alarms, and Postgres database health assertions.
6
+ */
7
+ import { Agent, request } from "undici";
8
+ import { ApplianceSshExecutor } from "../appliance/executor.js";
9
+ import { formatBytes, logger } from "../utils/index.js";
10
+ export class ApplianceDiagnosticsCollector {
11
+ insecureAgent;
12
+ constructor() {
13
+ this.insecureAgent = new Agent({
14
+ connect: {
15
+ rejectUnauthorized: false
16
+ }
17
+ });
18
+ }
19
+ /**
20
+ * Run full multi-subsystem diagnostic collection on target appliance.
21
+ */
22
+ async collect(options, vmCredentials) {
23
+ const startTime = Date.now();
24
+ const targetIp = options.targetIp;
25
+ const httpPort = options.httpPort ?? 443;
26
+ const sshPort = options.sshPort ?? 2222;
27
+ const timeoutMs = options.timeoutMs ?? 15000;
28
+ let httpHealth;
29
+ let prometheus;
30
+ let alarms;
31
+ let oban;
32
+ let sqlHealth;
33
+ // 1. HTTP /api/health
34
+ if (options.includeHttpHealth !== false) {
35
+ httpHealth = await this.collectHttpHealth(targetIp, httpPort, timeoutMs);
36
+ }
37
+ // 2. Prometheus /metrics
38
+ if (options.includePrometheus !== false) {
39
+ prometheus = await this.collectPrometheusMetrics(targetIp, httpPort, timeoutMs);
40
+ }
41
+ // 3. Oban, Alarms, and SQL via Mediated SSH CLI / Database if credentials available
42
+ const needsSsh = (options.includeAlarms !== false) || (options.includeOban !== false) || (options.includeSqlHealth !== false);
43
+ if (needsSsh && vmCredentials) {
44
+ const sshData = await this.collectSshDiagnostics(targetIp, sshPort, vmCredentials, timeoutMs, options);
45
+ if (options.includeAlarms !== false)
46
+ alarms = sshData.alarms;
47
+ if (options.includeOban !== false)
48
+ oban = sshData.oban;
49
+ if (options.includeSqlHealth !== false)
50
+ sqlHealth = sshData.sqlHealth;
51
+ }
52
+ else if (needsSsh) {
53
+ // Synthesize fallback from Prometheus metrics if SSH credentials not supplied
54
+ if (options.includeOban !== false && prometheus) {
55
+ oban = {
56
+ status: (prometheus.obanFetchableDepth ?? 0) > 500 ? "backlogged" : "healthy",
57
+ fetchableDepth: prometheus.obanFetchableDepth ?? 0,
58
+ executingCount: 0,
59
+ availableCount: prometheus.obanFetchableDepth ?? 0,
60
+ retryableCount: 0,
61
+ discarded7dCount: 0,
62
+ cancelledCount: 0,
63
+ pausedQueues: [],
64
+ queues: []
65
+ };
66
+ }
67
+ }
68
+ // Determine overall status
69
+ let overallStatus = "healthy";
70
+ const issues = [];
71
+ if (httpHealth && !httpHealth.isReachable) {
72
+ overallStatus = "unreachable";
73
+ issues.push(`HTTP endpoint unreachable (${httpHealth.error || "Connection refused"})`);
74
+ }
75
+ else if (httpHealth && httpHealth.statusCode >= 500) {
76
+ overallStatus = "critical";
77
+ issues.push(`HTTP /api/health returned ${httpHealth.statusCode}`);
78
+ }
79
+ if (alarms && (alarms.p0Count > 0)) {
80
+ overallStatus = "critical";
81
+ issues.push(`${alarms.p0Count} active P0 Critical Alarms`);
82
+ }
83
+ else if (alarms && (alarms.p1Count > 0)) {
84
+ if (overallStatus !== "critical")
85
+ overallStatus = "degraded";
86
+ issues.push(`${alarms.p1Count} active P1 Major Alarms`);
87
+ }
88
+ if (oban && oban.status === "backlogged") {
89
+ if (overallStatus !== "critical")
90
+ overallStatus = "degraded";
91
+ issues.push(`Oban fetchable backlog is high (${oban.fetchableDepth} jobs)`);
92
+ }
93
+ if (prometheus && prometheus.ectoPoolBusy !== undefined && prometheus.ectoPoolSize !== undefined) {
94
+ if (prometheus.ectoPoolSize > 0 && prometheus.ectoPoolBusy >= prometheus.ectoPoolSize) {
95
+ if (overallStatus !== "critical")
96
+ overallStatus = "degraded";
97
+ issues.push(`Ecto database connection pool is 100% saturated (${prometheus.ectoPoolBusy}/${prometheus.ectoPoolSize})`);
98
+ }
99
+ }
100
+ const duration = Date.now() - startTime;
101
+ const summary = issues.length === 0
102
+ ? `All appliance subsystems are operational and healthy (${duration}ms).`
103
+ : `Appliance state is ${overallStatus.toUpperCase()}: ${issues.join("; ")}`;
104
+ return {
105
+ targetIp,
106
+ timestamp: new Date().toISOString(),
107
+ overallStatus,
108
+ summary,
109
+ httpHealth,
110
+ prometheus,
111
+ alarms,
112
+ oban,
113
+ sqlHealth,
114
+ diagnosticsDurationMs: duration
115
+ };
116
+ }
117
+ /**
118
+ * Collect HTTP /api/health status and payload.
119
+ */
120
+ async collectHttpHealth(targetIp, port, timeoutMs) {
121
+ const endpoint = `https://${targetIp}:${port}/api/health`;
122
+ const start = Date.now();
123
+ try {
124
+ const res = await request(endpoint, {
125
+ method: "GET",
126
+ dispatcher: this.insecureAgent,
127
+ headersTimeout: timeoutMs,
128
+ bodyTimeout: timeoutMs
129
+ });
130
+ const latencyMs = Date.now() - start;
131
+ const statusCode = res.statusCode;
132
+ const text = await res.body.text();
133
+ let details;
134
+ try {
135
+ details = JSON.parse(text);
136
+ }
137
+ catch {
138
+ details = { raw: text.slice(0, 500) };
139
+ }
140
+ let status = "ok";
141
+ if (statusCode === 200) {
142
+ status = "ok";
143
+ }
144
+ else if (statusCode === 503) {
145
+ status = "degraded";
146
+ }
147
+ else {
148
+ status = "unhealthy";
149
+ }
150
+ return {
151
+ endpoint,
152
+ statusCode,
153
+ latencyMs,
154
+ isReachable: true,
155
+ status,
156
+ details
157
+ };
158
+ }
159
+ catch (err) {
160
+ const msg = err instanceof Error ? err.message : String(err);
161
+ return {
162
+ endpoint,
163
+ statusCode: 0,
164
+ latencyMs: Date.now() - start,
165
+ isReachable: false,
166
+ status: "unreachable",
167
+ error: msg
168
+ };
169
+ }
170
+ }
171
+ /**
172
+ * Collect and parse Prometheus /metrics text exposition format.
173
+ */
174
+ async collectPrometheusMetrics(targetIp, port, timeoutMs) {
175
+ const endpoint = `https://${targetIp}:${port}/metrics`;
176
+ try {
177
+ const res = await request(endpoint, {
178
+ method: "GET",
179
+ dispatcher: this.insecureAgent,
180
+ headersTimeout: timeoutMs,
181
+ bodyTimeout: timeoutMs
182
+ });
183
+ if (res.statusCode !== 200) {
184
+ return {
185
+ endpoint,
186
+ isAvailable: false,
187
+ error: `HTTP ${res.statusCode} from /metrics`
188
+ };
189
+ }
190
+ const text = await res.body.text();
191
+ return this.parsePrometheusMetricsText(text, endpoint);
192
+ }
193
+ catch (err) {
194
+ const msg = err instanceof Error ? err.message : String(err);
195
+ return {
196
+ endpoint,
197
+ isAvailable: false,
198
+ error: msg
199
+ };
200
+ }
201
+ }
202
+ /**
203
+ * Parse Prometheus metrics text exposition into typed metrics object.
204
+ */
205
+ parsePrometheusMetricsText(text, endpoint) {
206
+ let beamMemoryBytes;
207
+ let etsMemoryBytes;
208
+ let processCount;
209
+ let obanFetchableDepth;
210
+ let ectoPoolSize;
211
+ let ectoPoolBusy;
212
+ let ectoPoolIdle;
213
+ const ctAnalyticalLaneBacklog = {};
214
+ let sampleCount = 0;
215
+ const lines = text.split("\n");
216
+ for (const rawLine of lines) {
217
+ const line = rawLine.trim();
218
+ if (!line || line.startsWith("#"))
219
+ continue;
220
+ // Parse metric line format: metric_name{label="val",...} 1234
221
+ const match = line.match(/^([a-zA-Z_:][a-zA-Z0-9_:]*)(?:\{([^}]+)\})?\s+([0-9.eE+-]+)/);
222
+ if (!match)
223
+ continue;
224
+ const metricName = match[1];
225
+ const labelsStr = match[2] || "";
226
+ const value = parseFloat(match[3]);
227
+ if (isNaN(value))
228
+ continue;
229
+ sampleCount++;
230
+ // Erlang VM Process Count
231
+ if (metricName === "erlang_vm_process_count" || metricName === "beam_process_count") {
232
+ processCount = Math.round(value);
233
+ }
234
+ // Memory: Total BEAM
235
+ if (metricName === "erlang_vm_memory_total" || metricName === "erlang_vm_memory_bytes_total") {
236
+ beamMemoryBytes = Math.round(value);
237
+ }
238
+ // Memory: ETS Tables
239
+ if (metricName === "erlang_vm_memory_ets_tables" || (metricName === "erlang_vm_memory_bytes" && labelsStr.includes('kind="ets"'))) {
240
+ etsMemoryBytes = Math.round(value);
241
+ }
242
+ // Oban Fetchable Depth & Analytical Lane Backlog
243
+ if (metricName === "ct_analytical_lane_backlog_depth" || metricName === "oban_backlog_depth") {
244
+ const queueMatch = labelsStr.match(/queue="([^"]+)"/);
245
+ const queue = queueMatch ? queueMatch[1] : "default";
246
+ ctAnalyticalLaneBacklog[queue] = value;
247
+ obanFetchableDepth = (obanFetchableDepth || 0) + value;
248
+ }
249
+ // Oban job state counts
250
+ if (metricName === "oban_jobs_state_total" && labelsStr.includes('state="available"')) {
251
+ obanFetchableDepth = (obanFetchableDepth || 0) + value;
252
+ }
253
+ // Ecto connection pool
254
+ if (metricName === "ecto_pool_size" || (metricName === "ecto_pool_connections" && labelsStr.includes('state="total"'))) {
255
+ ectoPoolSize = Math.round(value);
256
+ }
257
+ if (metricName === "ecto_pool_busy" || (metricName === "ecto_pool_connections" && labelsStr.includes('state="busy"'))) {
258
+ ectoPoolBusy = Math.round(value);
259
+ }
260
+ if (metricName === "ecto_pool_idle" || (metricName === "ecto_pool_connections" && labelsStr.includes('state="idle"'))) {
261
+ ectoPoolIdle = Math.round(value);
262
+ }
263
+ }
264
+ return {
265
+ endpoint,
266
+ isAvailable: true,
267
+ beamMemoryBytes,
268
+ beamMemoryFormatted: beamMemoryBytes ? formatBytes(beamMemoryBytes) : undefined,
269
+ etsMemoryBytes,
270
+ etsMemoryFormatted: etsMemoryBytes ? formatBytes(etsMemoryBytes) : undefined,
271
+ processCount,
272
+ obanFetchableDepth: obanFetchableDepth ?? 0,
273
+ ectoPoolSize,
274
+ ectoPoolBusy,
275
+ ectoPoolIdle,
276
+ ctAnalyticalLaneBacklog: Object.keys(ctAnalyticalLaneBacklog).length > 0 ? ctAnalyticalLaneBacklog : undefined,
277
+ rawMetricsCount: sampleCount
278
+ };
279
+ }
280
+ /**
281
+ * Execute mediated SSH query for deep DB, Oban, and Alarm state.
282
+ */
283
+ async collectSshDiagnostics(targetIp, sshPort, vmCredentials, timeoutMs, options) {
284
+ const executor = new ApplianceSshExecutor();
285
+ // Run SQL query in database container to retrieve composite JSON report
286
+ const sqlQuery = `
287
+ SELECT json_build_object(
288
+ 'alarms', (
289
+ SELECT coalesce(json_agg(t), '[]'::json) FROM (
290
+ SELECT id, severity, title, fingerprint, inserted_at
291
+ FROM alarm_events
292
+ WHERE resolved_at IS NULL
293
+ ORDER BY inserted_at DESC
294
+ LIMIT 20
295
+ ) t
296
+ ),
297
+ 'oban', (
298
+ SELECT coalesce(json_agg(t), '[]'::json) FROM (
299
+ SELECT state, queue, count(*)::int as count
300
+ FROM oban_jobs
301
+ GROUP BY state, queue
302
+ ) t
303
+ ),
304
+ 'sql_activity', (
305
+ SELECT coalesce(json_agg(t), '[]'::json) FROM (
306
+ SELECT state, count(*)::int as count
307
+ FROM pg_stat_activity
308
+ WHERE datname = current_database()
309
+ GROUP BY state
310
+ ) t
311
+ ),
312
+ 'long_queries', (
313
+ SELECT count(*)::int
314
+ FROM pg_stat_activity
315
+ WHERE state = 'active' AND now() - query_start > interval '30 seconds'
316
+ )
317
+ );
318
+ `.trim().replace(/\n/g, " ");
319
+ try {
320
+ const execResult = await executor.execute({
321
+ targetIp,
322
+ port: sshPort,
323
+ commandType: "db_diagnostics",
324
+ timeoutMs
325
+ });
326
+ if (execResult.exitCode !== 0 || !execResult.stdout) {
327
+ return {
328
+ alarms: { totalActive: 0, p0Count: 0, p1Count: 0, p2Count: 0, firingAlarms: [], status: "clear", error: "Database query exited with non-zero status" },
329
+ oban: { status: "healthy", fetchableDepth: 0, executingCount: 0, availableCount: 0, retryableCount: 0, discarded7dCount: 0, cancelledCount: 0, pausedQueues: [], queues: [] },
330
+ sqlHealth: { status: "healthy", totalConnections: 0, activeQueriesCount: 0, idleConnectionsCount: 0, idleInTransactionCount: 0, longRunningQueriesCount: 0, autovacuumLocksCount: 0 }
331
+ };
332
+ }
333
+ let parsed = {};
334
+ try {
335
+ parsed = JSON.parse(execResult.stdout.trim());
336
+ }
337
+ catch {
338
+ return {};
339
+ }
340
+ // 1. Process Alarms
341
+ const rawAlarms = Array.isArray(parsed.alarms) ? parsed.alarms : [];
342
+ let p0Count = 0;
343
+ let p1Count = 0;
344
+ let p2Count = 0;
345
+ const firingAlarms = [];
346
+ for (const a of rawAlarms) {
347
+ const sev = String(a.severity || "").toLowerCase();
348
+ if (sev === "p0" || sev === "critical")
349
+ p0Count++;
350
+ else if (sev === "p1" || sev === "major")
351
+ p1Count++;
352
+ else
353
+ p2Count++;
354
+ firingAlarms.push({
355
+ id: a.id,
356
+ severity: sev || "p2",
357
+ title: a.title || "Unlabeled Alarm",
358
+ fingerprint: a.fingerprint,
359
+ insertedAt: a.inserted_at
360
+ });
361
+ }
362
+ const alarmStatus = p0Count > 0 ? "critical" : (p1Count > 0 ? "warning" : "clear");
363
+ // 2. Process Oban
364
+ const rawOban = Array.isArray(parsed.oban) ? parsed.oban : [];
365
+ let executingCount = 0;
366
+ let availableCount = 0;
367
+ let retryableCount = 0;
368
+ let discarded7dCount = 0;
369
+ let cancelledCount = 0;
370
+ const queues = [];
371
+ for (const item of rawOban) {
372
+ const count = Number(item.count) || 0;
373
+ const state = String(item.state || "").toLowerCase();
374
+ const queue = String(item.queue || "default");
375
+ queues.push({ queue, state, count });
376
+ if (state === "executing")
377
+ executingCount += count;
378
+ else if (state === "available")
379
+ availableCount += count;
380
+ else if (state === "retryable")
381
+ retryableCount += count;
382
+ else if (state === "discarded")
383
+ discarded7dCount += count;
384
+ else if (state === "cancelled")
385
+ cancelledCount += count;
386
+ }
387
+ const fetchableDepth = availableCount + executingCount;
388
+ let obanStatus = "healthy";
389
+ if (fetchableDepth > 1000)
390
+ obanStatus = "backlogged";
391
+ else if (retryableCount > 20)
392
+ obanStatus = "degraded";
393
+ // 3. Process SQL Activity
394
+ const rawActivity = Array.isArray(parsed.sql_activity) ? parsed.sql_activity : [];
395
+ let activeQueriesCount = 0;
396
+ let idleConnectionsCount = 0;
397
+ let idleInTransactionCount = 0;
398
+ let totalConnections = 0;
399
+ for (const act of rawActivity) {
400
+ const count = Number(act.count) || 0;
401
+ const state = String(act.state || "").toLowerCase();
402
+ totalConnections += count;
403
+ if (state === "active")
404
+ activeQueriesCount += count;
405
+ else if (state === "idle")
406
+ idleConnectionsCount += count;
407
+ else if (state.includes("idle in transaction"))
408
+ idleInTransactionCount += count;
409
+ }
410
+ const longRunningQueriesCount = Number(parsed.long_queries) || 0;
411
+ let sqlStatus = "healthy";
412
+ if (longRunningQueriesCount > 5 || idleInTransactionCount > 5)
413
+ sqlStatus = "contended";
414
+ return {
415
+ alarms: {
416
+ totalActive: rawAlarms.length,
417
+ p0Count,
418
+ p1Count,
419
+ p2Count,
420
+ firingAlarms,
421
+ status: alarmStatus
422
+ },
423
+ oban: {
424
+ status: obanStatus,
425
+ fetchableDepth,
426
+ executingCount,
427
+ availableCount,
428
+ retryableCount,
429
+ discarded7dCount,
430
+ cancelledCount,
431
+ pausedQueues: [],
432
+ queues
433
+ },
434
+ sqlHealth: {
435
+ status: sqlStatus,
436
+ totalConnections,
437
+ activeQueriesCount,
438
+ idleConnectionsCount,
439
+ idleInTransactionCount,
440
+ longRunningQueriesCount,
441
+ autovacuumLocksCount: 0
442
+ }
443
+ };
444
+ }
445
+ catch (err) {
446
+ const msg = err instanceof Error ? err.message : String(err);
447
+ logger.warn(`Failed to collect SSH database diagnostics: ${msg}`);
448
+ return {};
449
+ }
450
+ }
451
+ }
452
+ //# sourceMappingURL=collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collector.js","sourceRoot":"","sources":["../../../src/diagnostics/collector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,103 @@
1
+ /**
2
+ * Call Telemetry Appliance Diagnostics & Telemetry Types
3
+ *
4
+ * Defines structured report models for multi-subsystem diagnostic inspection:
5
+ * HTTP /api/health, Prometheus /metrics, Oban job/queue health, Active Alarms, and SQL health assertions.
6
+ */
7
+ export interface HttpHealthReport {
8
+ endpoint: string;
9
+ statusCode: number;
10
+ latencyMs: number;
11
+ isReachable: boolean;
12
+ status: "ok" | "degraded" | "unhealthy" | "unreachable";
13
+ details?: Record<string, unknown>;
14
+ error?: string;
15
+ }
16
+ export interface PrometheusMetricsReport {
17
+ endpoint: string;
18
+ isAvailable: boolean;
19
+ beamMemoryBytes?: number;
20
+ beamMemoryFormatted?: string;
21
+ etsMemoryBytes?: number;
22
+ etsMemoryFormatted?: string;
23
+ processCount?: number;
24
+ obanFetchableDepth?: number;
25
+ ectoPoolSize?: number;
26
+ ectoPoolBusy?: number;
27
+ ectoPoolIdle?: number;
28
+ ctAnalyticalLaneBacklog?: Record<string, number>;
29
+ rawMetricsCount?: number;
30
+ error?: string;
31
+ }
32
+ export interface AlarmSummaryItem {
33
+ id?: string;
34
+ severity: "p0" | "p1" | "p2" | "info" | "warning" | "critical";
35
+ title: string;
36
+ fingerprint?: string;
37
+ source?: string;
38
+ insertedAt?: string;
39
+ occurrenceCount?: number;
40
+ }
41
+ export interface AlarmHealthReport {
42
+ totalActive: number;
43
+ p0Count: number;
44
+ p1Count: number;
45
+ p2Count: number;
46
+ firingAlarms: AlarmSummaryItem[];
47
+ status: "clear" | "warning" | "critical";
48
+ error?: string;
49
+ }
50
+ export interface ObanQueueItem {
51
+ queue: string;
52
+ state: string;
53
+ count: number;
54
+ }
55
+ export interface ObanHealthReport {
56
+ status: "healthy" | "backlogged" | "degraded" | "paused";
57
+ fetchableDepth: number;
58
+ executingCount: number;
59
+ availableCount: number;
60
+ retryableCount: number;
61
+ discarded7dCount: number;
62
+ cancelledCount: number;
63
+ pausedQueues: string[];
64
+ queues: ObanQueueItem[];
65
+ error?: string;
66
+ }
67
+ export interface SqlHealthReport {
68
+ status: "healthy" | "contended" | "exhausted" | "unknown";
69
+ totalConnections: number;
70
+ activeQueriesCount: number;
71
+ idleConnectionsCount: number;
72
+ idleInTransactionCount: number;
73
+ longRunningQueriesCount: number;
74
+ autovacuumLocksCount: number;
75
+ databaseSizeBytes?: number;
76
+ databaseSizeFormatted?: string;
77
+ error?: string;
78
+ }
79
+ export interface ApplianceDiagnosticsReport {
80
+ targetIp: string;
81
+ timestamp: string;
82
+ overallStatus: "healthy" | "degraded" | "critical" | "unreachable";
83
+ summary: string;
84
+ httpHealth?: HttpHealthReport;
85
+ prometheus?: PrometheusMetricsReport;
86
+ alarms?: AlarmHealthReport;
87
+ oban?: ObanHealthReport;
88
+ sqlHealth?: SqlHealthReport;
89
+ diagnosticsDurationMs: number;
90
+ }
91
+ export interface DiagnosticsCollectionOptions {
92
+ targetIp: string;
93
+ httpPort?: number;
94
+ sshPort?: number;
95
+ includeHttpHealth?: boolean;
96
+ includePrometheus?: boolean;
97
+ includeAlarms?: boolean;
98
+ includeOban?: boolean;
99
+ includeSqlHealth?: boolean;
100
+ timeoutMs?: number;
101
+ allowInsecureTls?: boolean;
102
+ }
103
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/diagnostics/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,MAAM,EAAE,IAAI,GAAG,UAAU,GAAG,WAAW,GAAG,aAAa,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,MAAM,EAAE,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,SAAS,GAAG,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,WAAW,GAAG,SAAS,CAAC;IAC1D,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,uBAAuB,EAAE,MAAM,CAAC;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,GAAG,aAAa,CAAC;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,IAAI,CAAC,EAAE,gBAAgB,CAAC;IACxB,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Call Telemetry Appliance Diagnostics & Telemetry Types
3
+ *
4
+ * Defines structured report models for multi-subsystem diagnostic inspection:
5
+ * HTTP /api/health, Prometheus /metrics, Oban job/queue health, Active Alarms, and SQL health assertions.
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/diagnostics/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -84,6 +84,7 @@ export declare class EsxiDriver implements IHypervisorDriver {
84
84
  readonly hostName: string;
85
85
  readonly hypervisorType: "esxi";
86
86
  readonly hostConfig: EsxiHostConfig;
87
+ readonly isMock: boolean;
87
88
  private client;
88
89
  private safetyEngine;
89
90
  constructor(hostConfig: EsxiHostConfig, client?: IEsxiClient, safetyEngine?: SafetyGuardrailEngine);
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/hypervisors/esxi/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/hypervisors/esxi/client.ts"],"names":[],"mappings":"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"}