bunqueue 2.6.55 → 2.6.56

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.
@@ -3,8 +3,8 @@
3
3
  * Main orchestrator that collects telemetry and sends it to bunqueue Cloud.
4
4
  *
5
5
  * Two channels:
6
- * 1. HTTP POST (periodic snapshots every N seconds)
7
- * 2. WebSocket (real-time event forwarding)
6
+ * 1. HTTP POST — all data (snapshots + events every N seconds)
7
+ * 2. WebSocket — commands only (dashboard bunqueue, bunqueue → command results)
8
8
  *
9
9
  * Zero overhead when disabled (BUNQUEUE_CLOUD_URL not set).
10
10
  */
@@ -24,8 +24,10 @@ export declare class CloudAgent {
24
24
  private snapshotCount;
25
25
  private stopped;
26
26
  private serverHandles?;
27
- /** Heavy data collected every N snapshots (default: every 6th = every 30s at 5s interval) */
27
+ /** Heavy data collected every N snapshots (default: every 6th = every 90s at 15s interval) */
28
28
  private readonly heavyEveryN;
29
+ /** Event buffer — flushed into each HTTP snapshot */
30
+ private readonly eventBuffer;
29
31
  constructor(queueManager: QueueManager, config: CloudConfig);
30
32
  /** Set server handles for connection stats */
31
33
  setServerHandles(handles: ServerHandles): void;
@@ -38,9 +40,9 @@ export declare class CloudAgent {
38
40
  /** Send snapshot immediately after a command (debounced 100ms to batch rapid commands) */
39
41
  private immediateSnapshotTimer;
40
42
  private sendImmediateSnapshot;
41
- /** Collect and send a snapshot. Prefers WS, falls back to HTTP. */
43
+ /** Collect and send a snapshot via HTTP. Events are always embedded. */
42
44
  private sendSnapshot;
43
- /** Subscribe to job events for WebSocket forwarding */
45
+ /** Subscribe to job events — buffer for next HTTP snapshot */
44
46
  private subscribeToEvents;
45
47
  /** Redact sensitive fields from job data */
46
48
  private redactData;
@@ -1 +1 @@
1
- {"version":3,"file":"cloudAgent.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cloud/cloudAgent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,SAAS,CAAC;AAGvD,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAM1E,qBAAa,UAAU;IAgBnB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAf/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,aAAa,CAA+C;IACpE,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAK;gBAGd,YAAY,EAAE,YAAY,EAC3C,MAAM,EAAE,WAAW;IAQrB,8CAA8C;IAC9C,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAI9C,8EAA8E;IAC9E,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAS/E,0BAA0B;IAC1B,KAAK,IAAI,IAAI;IA4Cb,gEAAgE;IAC1D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC3B,0FAA0F;IAC1F,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,qBAAqB;IAQ7B,mEAAmE;YACrD,YAAY;IAqC1B,uDAAuD;IACvD,OAAO,CAAC,iBAAiB;IA+BzB,4CAA4C;IAC5C,OAAO,CAAC,UAAU;IAclB,aAAa,IAAI,MAAM;CAGxB"}
1
+ {"version":3,"file":"cloudAgent.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cloud/cloudAgent.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,SAAS,CAAC;AAGvD,OAAO,EAAmB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQ1E,qBAAa,UAAU;IAkBnB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAjB/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAc;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAkB;IAC3C,OAAO,CAAC,aAAa,CAA+C;IACpE,OAAO,CAAC,iBAAiB,CAA6B;IACtD,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,8FAA8F;IAC9F,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAK;IACjC,qDAAqD;IACrD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAoB;gBAG7B,YAAY,EAAE,YAAY,EAC3C,MAAM,EAAE,WAAW;IAQrB,8CAA8C;IAC9C,gBAAgB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAI9C,8EAA8E;IAC9E,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI;IAS/E,0BAA0B;IAC1B,KAAK,IAAI,IAAI;IA2Cb,gEAAgE;IAC1D,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAoC3B,0FAA0F;IAC1F,OAAO,CAAC,sBAAsB,CAA8C;IAC5E,OAAO,CAAC,qBAAqB;IAQ7B,wEAAwE;YAC1D,YAAY;IA2B1B,8DAA8D;IAC9D,OAAO,CAAC,iBAAiB;IAiCzB,4CAA4C;IAC5C,OAAO,CAAC,UAAU;IAclB,aAAa,IAAI,MAAM;CAGxB"}
@@ -3,8 +3,8 @@
3
3
  * Main orchestrator that collects telemetry and sends it to bunqueue Cloud.
4
4
  *
5
5
  * Two channels:
6
- * 1. HTTP POST (periodic snapshots every N seconds)
7
- * 2. WebSocket (real-time event forwarding)
6
+ * 1. HTTP POST — all data (snapshots + events every N seconds)
7
+ * 2. WebSocket — commands only (dashboard bunqueue, bunqueue → command results)
8
8
  *
9
9
  * Zero overhead when disabled (BUNQUEUE_CLOUD_URL not set).
10
10
  */
@@ -15,6 +15,7 @@ import { HttpSender } from './httpSender';
15
15
  import { WsSender } from './wsSender';
16
16
  import { handleCommand } from './commandHandler';
17
17
  import { cloudLog } from './logger';
18
+ const EVENT_BUFFER_MAX = 1000;
18
19
  export class CloudAgent {
19
20
  queueManager;
20
21
  config;
@@ -28,8 +29,10 @@ export class CloudAgent {
28
29
  snapshotCount = 0;
29
30
  stopped = false;
30
31
  serverHandles;
31
- /** Heavy data collected every N snapshots (default: every 6th = every 30s at 5s interval) */
32
+ /** Heavy data collected every N snapshots (default: every 6th = every 90s at 15s interval) */
32
33
  heavyEveryN = 6;
34
+ /** Event buffer — flushed into each HTTP snapshot */
35
+ eventBuffer = [];
33
36
  constructor(queueManager, config) {
34
37
  this.queueManager = queueManager;
35
38
  this.config = config;
@@ -67,17 +70,14 @@ export class CloudAgent {
67
70
  void this.sendSnapshot();
68
71
  }, this.config.intervalMs);
69
72
  }
70
- // Channel 2: WebSocket events + remote commands
73
+ // Channel 2: WebSocket commands only (dashboard → bunqueue)
71
74
  if (this.wsSender) {
72
- // Register command handler if remote commands enabled
73
75
  if (this.config.remoteCommands) {
74
76
  cloudLog.info('Remote commands enabled');
75
77
  this.wsSender.setCommandHandler((cmd) => {
76
78
  handleCommand(this.queueManager, cmd)
77
79
  .then((result) => {
78
80
  this.wsSender?.sendRaw(result);
79
- // Send immediate snapshot after state-changing commands
80
- // so the dashboard reflects the change without waiting 15s
81
81
  if (result.success) {
82
82
  this.sendImmediateSnapshot();
83
83
  }
@@ -88,8 +88,9 @@ export class CloudAgent {
88
88
  });
89
89
  }
90
90
  this.wsSender.connect();
91
- this.subscribeToEvents();
92
91
  }
92
+ // Subscribe to events — buffer for next HTTP snapshot
93
+ this.subscribeToEvents();
93
94
  }
94
95
  /** Graceful shutdown: send final snapshot, close connections */
95
96
  async stop() {
@@ -106,7 +107,7 @@ export class CloudAgent {
106
107
  }
107
108
  // Send final shutdown snapshot (best-effort, 2s timeout)
108
109
  try {
109
- const snapshot = collectSnapshot({
110
+ const snapshot = await collectSnapshot({
110
111
  queueManager: this.queueManager,
111
112
  instanceId: this.instanceId,
112
113
  instanceName: this.config.instanceName,
@@ -134,12 +135,12 @@ export class CloudAgent {
134
135
  void this.sendSnapshot(true);
135
136
  }, 100);
136
137
  }
137
- /** Collect and send a snapshot. Prefers WS, falls back to HTTP. */
138
+ /** Collect and send a snapshot via HTTP. Events are always embedded. */
138
139
  async sendSnapshot(forceHeavy = false) {
139
140
  try {
140
141
  this.snapshotCount++;
141
142
  const includeHeavy = forceHeavy || this.snapshotCount % this.heavyEveryN === 1 || this.snapshotCount === 1;
142
- const snapshot = collectSnapshot({
143
+ const snapshot = await collectSnapshot({
143
144
  queueManager: this.queueManager,
144
145
  instanceId: this.instanceId,
145
146
  instanceName: this.config.instanceName,
@@ -148,18 +149,9 @@ export class CloudAgent {
148
149
  serverHandles: this.serverHandles,
149
150
  includeHeavy,
150
151
  });
151
- // WS connected send snapshot via WS
152
- if (this.wsSender?.isConnected()) {
153
- this.wsSender.sendRaw({ type: 'snapshot', ...snapshot });
154
- return;
155
- }
156
- // WS down → embed buffered events in HTTP snapshot and fall back
157
- if (this.wsSender) {
158
- const buffered = this.wsSender.drainBufferedEvents();
159
- if (buffered.length > 0) {
160
- snapshot.events = buffered;
161
- cloudLog.debug('Embedded events in HTTP snapshot (WS down)', { count: buffered.length });
162
- }
152
+ // Embed buffered events in snapshot
153
+ if (this.eventBuffer.length > 0) {
154
+ snapshot.events = this.eventBuffer.splice(0);
163
155
  }
164
156
  await this.httpSender.send(snapshot);
165
157
  }
@@ -167,11 +159,9 @@ export class CloudAgent {
167
159
  cloudLog.debug('Snapshot send failed', { error: String(err) });
168
160
  }
169
161
  }
170
- /** Subscribe to job events for WebSocket forwarding */
162
+ /** Subscribe to job events — buffer for next HTTP snapshot */
171
163
  subscribeToEvents() {
172
164
  this.unsubscribeEvents = this.queueManager.subscribe((event) => {
173
- if (!this.wsSender)
174
- return;
175
165
  // Apply event filter
176
166
  if (this.config.eventFilter.length > 0 &&
177
167
  !this.config.eventFilter.includes(event.eventType)) {
@@ -191,7 +181,11 @@ export class CloudAgent {
191
181
  delay: event.delay,
192
182
  },
193
183
  };
194
- this.wsSender.send(cloudEvent);
184
+ // Ring buffer — drop oldest when full
185
+ if (this.eventBuffer.length >= EVENT_BUFFER_MAX) {
186
+ this.eventBuffer.shift();
187
+ }
188
+ this.eventBuffer.push(cloudEvent);
195
189
  });
196
190
  }
197
191
  /** Redact sensitive fields from job data */
@@ -1 +1 @@
1
- {"version":3,"file":"cloudAgent.js","sourceRoot":"","sources":["../../../src/infrastructure/cloud/cloudAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cloudAgent.js","sourceRoot":"","sources":["../../../src/infrastructure/cloud/cloudAgent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * HTTP Sender
3
3
  * Posts snapshots to the remote dashboard via HTTP with retry and HMAC signing
4
+ * Uses msgpack + zstd encoding (same as WebSocket channel)
4
5
  */
5
6
  import type { CloudConfig, CloudSnapshot } from './types';
6
7
  export declare class HttpSender {
@@ -15,7 +16,7 @@ export declare class HttpSender {
15
16
  send(snapshot: CloudSnapshot): Promise<void>;
16
17
  /** Try to send buffered snapshots in batches */
17
18
  private flushBuffer;
18
- /** HTTP POST with auth headers and optional HMAC */
19
+ /** HTTP POST with auth headers and optional HMAC — sends zstd(msgpack) */
19
20
  private post;
20
21
  getBufferSize(): number;
21
22
  getCircuitState(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"httpSender.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cloud/httpSender.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK1D,qBAAa,UAAU;IAOT,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,OAAO,CAA0B;gBAEZ,MAAM,EAAE,WAAW;IAUhD,2CAA2C;IACrC,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBlD,gDAAgD;YAClC,WAAW;IAsBzB,oDAAoD;YACtC,IAAI;IA2ClB,aAAa,IAAI,MAAM;IAIvB,eAAe,IAAI,MAAM;CAG1B"}
1
+ {"version":3,"file":"httpSender.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cloud/httpSender.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK1D,qBAAa,UAAU;IAOT,OAAO,CAAC,QAAQ,CAAC,MAAM;IANnC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiB;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,OAAO,CAA0B;gBAEZ,MAAM,EAAE,WAAW;IAUhD,2CAA2C;IACrC,IAAI,CAAC,QAAQ,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAyBlD,gDAAgD;YAClC,WAAW;IAsBzB,0EAA0E;YAC5D,IAAI;IA6ClB,aAAa,IAAI,MAAM;IAIvB,eAAe,IAAI,MAAM;CAG1B"}
@@ -1,7 +1,9 @@
1
1
  /**
2
2
  * HTTP Sender
3
3
  * Posts snapshots to the remote dashboard via HTTP with retry and HMAC signing
4
+ * Uses msgpack + zstd encoding (same as WebSocket channel)
4
5
  */
6
+ import { pack } from 'msgpackr';
5
7
  import { CircuitBreaker } from './circuitBreaker';
6
8
  import { SnapshotBuffer } from './buffer';
7
9
  import { cloudLog } from './logger';
@@ -66,23 +68,25 @@ export class HttpSender {
66
68
  }
67
69
  }
68
70
  }
69
- /** HTTP POST with auth headers and optional HMAC */
71
+ /** HTTP POST with auth headers and optional HMAC — sends zstd(msgpack) */
70
72
  async post(url, body) {
71
- const json = JSON.stringify(body);
73
+ const msgpackBuf = pack(body);
74
+ const compressed = new Uint8Array(await Bun.zstdCompress(msgpackBuf));
72
75
  const headers = {
73
- 'Content-Type': 'application/json',
76
+ 'Content-Type': 'application/x-msgpack',
77
+ 'Content-Encoding': 'zstd',
74
78
  Authorization: `Bearer ${this.config.apiKey}`,
75
79
  'X-Timestamp': String(Date.now()),
76
80
  };
77
81
  if (this.config.signingSecret) {
78
82
  this.hmacKey ??= await crypto.subtle.importKey('raw', new TextEncoder().encode(this.config.signingSecret), { name: 'HMAC', hash: 'SHA-256' }, false, ['sign']);
79
- const sig = await crypto.subtle.sign('HMAC', this.hmacKey, new TextEncoder().encode(json));
83
+ const sig = await crypto.subtle.sign('HMAC', this.hmacKey, compressed);
80
84
  headers['X-Signature'] = Buffer.from(sig).toString('hex');
81
85
  }
82
86
  const res = await fetch(url, {
83
87
  method: 'POST',
84
88
  headers,
85
- body: json,
89
+ body: compressed,
86
90
  signal: AbortSignal.timeout(10_000),
87
91
  });
88
92
  if (!res.ok) {
@@ -1 +1 @@
1
- {"version":3,"file":"httpSender.js","sourceRoot":"","sources":["../../../src/infrastructure/cloud/httpSender.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpC,MAAM,OAAO,UAAU;IAOQ;IANZ,cAAc,CAAiB;IAC/B,MAAM,CAAiB;IACvB,SAAS,CAAS;IAClB,QAAQ,CAAS;IAC1B,OAAO,GAAqB,IAAI,CAAC;IAEzC,YAA6B,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;QAC9C,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CACtC,MAAM,CAAC,uBAAuB,EAC9B,MAAM,CAAC,qBAAqB,CAC7B,CAAC;QACF,IAAI,CAAC,MAAM,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,GAAG,MAAM,CAAC,GAAG,gBAAgB,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,GAAG,MAAM,CAAC,GAAG,sBAAsB,CAAC;IACtD,CAAC;IAED,2CAA2C;IAC3C,KAAK,CAAC,IAAI,CAAC,QAAuB;QAChC,wCAAwC;QACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC1C,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3B,QAAQ,CAAC,KAAK,CAAC,mBAAmB,EAAE;gBAClC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;gBAC1B,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;gBACvC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;aACnB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,gDAAgD;IACxC,KAAK,CAAC,WAAW;QACvB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;YAAE,OAAO;QAE9C,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,MAAM;YAE9B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;gBAChC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACxF,CAAC;YAAC,MAAM,CAAC;gBACP,gEAAgE;gBAChE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC3C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC7B,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;gBAChC,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAED,oDAAoD;IAC5C,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,IAAa;QAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAClC,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;YAC7C,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAClC,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,KAAK,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAC5C,KAAK,EACL,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EACnD,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EACjC,KAAK,EACL,CAAC,MAAM,CAAC,CACT,CAAC;YACF,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3F,OAAO,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI;YACV,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC;SACpC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,QAAQ,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;YAExD,wEAAwE;YACxE,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBAC7C,QAAQ,CAAC,KAAK,CAAC,2BAA2B,EAAE;oBAC1C,MAAM,EAAE,GAAG,CAAC,MAAM;oBAClB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;iBAC7B,CAAC,CAAC;YACL,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;IAC1B,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"httpSender.js","sourceRoot":"","sources":["../../../src/infrastructure/cloud/httpSender.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,13 @@
1
1
  /**
2
2
  * Snapshot Collector
3
- * Two-tier collection: light (every 5s) + heavy (every 30s)
3
+ * Two-tier collection: light (every 15s) + heavy (every 90s)
4
4
  *
5
5
  * Light: stats, throughput, latency, memory, connections — O(SHARD_COUNT)
6
6
  * Heavy: recentJobs, dlqEntries, topErrors, workerDetails, queueConfigs, webhooks — O(queues × shards)
7
- * Queues are always collected but use a single pass with cached counts.
8
7
  */
9
8
  import type { QueueManager } from '../../application/queueManager';
10
9
  import type { CloudSnapshot } from './types';
11
- /** Optional server handles for connection stats + backup */
10
+ /** Optional server handles for connection stats + backup + storage */
12
11
  export interface ServerHandles {
13
12
  getConnectionCount: () => number;
14
13
  getWsClientCount: () => number;
@@ -21,6 +20,10 @@ export interface ServerHandles {
21
20
  retention: number;
22
21
  isRunning: boolean;
23
22
  } | null;
23
+ getSqliteStats?: () => {
24
+ dbSizeBytes: number;
25
+ writeBufferPending: number;
26
+ } | null;
24
27
  }
25
28
  /** Parameters for snapshot collection */
26
29
  export interface CollectSnapshotParams {
@@ -30,9 +33,8 @@ export interface CollectSnapshotParams {
30
33
  startedAt: number;
31
34
  sequenceId: number;
32
35
  serverHandles?: ServerHandles;
33
- /** Include heavy data (recentJobs, dlqEntries, topErrors, workerDetails, queueConfigs, webhooks) */
34
36
  includeHeavy: boolean;
35
37
  }
36
38
  /** Collect a snapshot. Light data always fresh, heavy data cached between refreshes. */
37
- export declare function collectSnapshot(params: CollectSnapshotParams): CloudSnapshot;
39
+ export declare function collectSnapshot(params: CollectSnapshotParams): Promise<CloudSnapshot>;
38
40
  //# sourceMappingURL=snapshotCollector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshotCollector.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cloud/snapshotCollector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAKnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAK7C,4DAA4D;AAC5D,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,MAAM,CAAC;IACjC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;KACpB,GAAG,IAAI,CAAC;CACV;AAED,yCAAyC;AACzC,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,oGAAoG;IACpG,YAAY,EAAE,OAAO,CAAC;CACvB;AAsBD,wFAAwF;AACxF,wBAAgB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,aAAa,CAoJ5E"}
1
+ {"version":3,"file":"snapshotCollector.d.ts","sourceRoot":"","sources":["../../../src/infrastructure/cloud/snapshotCollector.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAKnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA4B7C,sEAAsE;AACtE,MAAM,WAAW,aAAa;IAC5B,kBAAkB,EAAE,MAAM,MAAM,CAAC;IACjC,gBAAgB,EAAE,MAAM,MAAM,CAAC;IAC/B,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM;QACtB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,OAAO,CAAC;KACpB,GAAG,IAAI,CAAC;IACT,cAAc,CAAC,EAAE,MAAM;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACnF;AAED,yCAAyC;AACzC,MAAM,WAAW,qBAAqB;IACpC,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,YAAY,EAAE,OAAO,CAAC;CACvB;AAsBD,wFAAwF;AACxF,wBAAsB,eAAe,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CAyJ3F"}
@@ -1,18 +1,25 @@
1
1
  /**
2
2
  * Snapshot Collector
3
- * Two-tier collection: light (every 5s) + heavy (every 30s)
3
+ * Two-tier collection: light (every 15s) + heavy (every 90s)
4
4
  *
5
5
  * Light: stats, throughput, latency, memory, connections — O(SHARD_COUNT)
6
6
  * Heavy: recentJobs, dlqEntries, topErrors, workerDetails, queueConfigs, webhooks — O(queues × shards)
7
- * Queues are always collected but use a single pass with cached counts.
8
7
  */
9
- import { hostname } from 'os';
8
+ import { hostname, arch, platform, cpus } from 'os';
10
9
  import { throughputTracker } from '../../application/throughputTracker';
11
10
  import { latencyTracker } from '../../application/latencyTracker';
12
11
  import { getTaskErrorStats } from '../../application/backgroundTasks';
13
12
  import { VERSION } from '../../shared/version';
13
+ import { collectRecentJobs, collectDlqEntries, collectTopErrors, collectQueueConfigs, collectWebhooks, collectQueueThroughput, collectWorkerUtilization, collectDurationHistogram, collectQueueWaitTime, collectQueueRetryRate, collectBacklogVelocity, collectStallDetails, collectPriorityDistribution, } from './snapshotHelpers';
14
14
  /** Cached hostname — computed once */
15
15
  const HOST = hostname();
16
+ /** Cached runtime info — computed once */
17
+ const RUNTIME = {
18
+ bunVersion: typeof Bun !== 'undefined' ? Bun.version : 'unknown',
19
+ os: platform(),
20
+ arch: arch(),
21
+ cpus: cpus().length,
22
+ };
16
23
  /** Cached heavy data — reused between snapshots until refreshed */
17
24
  let cachedHeavy = {
18
25
  recentJobs: [],
@@ -24,7 +31,7 @@ let cachedHeavy = {
24
31
  s3Backup: null,
25
32
  };
26
33
  /** Collect a snapshot. Light data always fresh, heavy data cached between refreshes. */
27
- export function collectSnapshot(params) {
34
+ export async function collectSnapshot(params) {
28
35
  const { queueManager, instanceId, instanceName, startedAt, sequenceId, serverHandles } = params;
29
36
  // ─── Light data (O(SHARD_COUNT), every snapshot) ───
30
37
  const stats = queueManager.getStats();
@@ -35,8 +42,6 @@ export function collectSnapshot(params) {
35
42
  const averages = latencyTracker.getAverages();
36
43
  const storage = queueManager.getStorageStatus();
37
44
  const mem = process.memoryUsage();
38
- // Queues: single pass — listQueues + getQueueJobCounts + perQueueStats for DLQ
39
- // Avoids getQueuesSummary() which internally calls getQueueJobCounts but drops totalCompleted/totalFailed
40
45
  const queueNames = queueManager.listQueues();
41
46
  const perQueue = queueManager.getPerQueueStats();
42
47
  const queues = queueNames.map((name) => {
@@ -52,7 +57,6 @@ export function collectSnapshot(params) {
52
57
  totalFailed: counts.totalFailed,
53
58
  };
54
59
  });
55
- // Crons (cheap, in-memory list)
56
60
  const crons = queueManager.listCrons().map((c) => ({
57
61
  name: c.name,
58
62
  queue: c.queue,
@@ -60,13 +64,11 @@ export function collectSnapshot(params) {
60
64
  nextRun: c.nextRun,
61
65
  executions: c.executions,
62
66
  maxLimit: c.maxLimit,
67
+ lastRun: c.executions > 0 && c.repeatEvery ? c.nextRun - c.repeatEvery : null,
63
68
  }));
64
69
  // ─── Heavy data (only when requested) ───
65
70
  if (params.includeHeavy) {
66
- // recentJobs: only queues with current activity (not historical)
67
- // completed/failed jobs are fetched from ALL queues since they're in-memory bounded sets
68
71
  const activeQueues = queues.filter((q) => q.waiting > 0 || q.active > 0 || q.delayed > 0);
69
- // Include all queues for completed/failed snapshot since getJobs handles the state filter
70
72
  const allQueuesForJobs = queues.length <= 20 ? queues : activeQueues;
71
73
  const dlqQueues = queues.filter((q) => q.dlq > 0);
72
74
  cachedHeavy = {
@@ -86,7 +88,7 @@ export function collectSnapshot(params) {
86
88
  failedJobs: w.failedJobs,
87
89
  currentJob: w.currentJob,
88
90
  })),
89
- queueConfigs: collectQueueConfigs(queueManager, queueNames),
91
+ queueConfigs: collectQueueConfigs(queueManager, new Set(queueNames)),
90
92
  webhooks: collectWebhooks(queueManager),
91
93
  s3Backup: serverHandles?.getBackupStatus?.() ?? null,
92
94
  };
@@ -146,157 +148,18 @@ export function collectSnapshot(params) {
146
148
  ws: serverHandles?.getWsClientCount() ?? 0,
147
149
  sse: serverHandles?.getSseClientCount() ?? 0,
148
150
  },
149
- // Heavy data (fresh or cached)
151
+ // Analytics
152
+ queueThroughput: collectQueueThroughput(queues),
153
+ durationHistogram: collectDurationHistogram(cachedHeavy.recentJobs),
154
+ workerUtilization: collectWorkerUtilization(queueManager),
155
+ sqliteStats: serverHandles?.getSqliteStats?.() ?? null,
156
+ runtime: RUNTIME,
157
+ queueWaitTime: collectQueueWaitTime(cachedHeavy.recentJobs),
158
+ queueRetryRate: collectQueueRetryRate(cachedHeavy.recentJobs),
159
+ queueBacklogVelocity: collectBacklogVelocity(queues),
160
+ stallDetails: await collectStallDetails(queueManager),
161
+ queuePriorityDistribution: collectPriorityDistribution(cachedHeavy.recentJobs),
150
162
  ...cachedHeavy,
151
163
  };
152
164
  }
153
- // ─── Heavy data collectors (only called every ~30s) ───
154
- /** Collect recent jobs — only from active queues */
155
- function collectRecentJobs(queueManager, activeQueueNames) {
156
- if (activeQueueNames.length === 0)
157
- return [];
158
- const jobs = [];
159
- const perQueue = Math.max(1, Math.floor(50 / activeQueueNames.length));
160
- for (const name of activeQueueNames) {
161
- try {
162
- const queueJobs = queueManager.getJobs(name, {
163
- state: ['waiting', 'active', 'delayed', 'completed', 'failed'],
164
- start: 0,
165
- end: perQueue - 1,
166
- });
167
- for (const j of queueJobs) {
168
- const data = j.data;
169
- const state = j.completedAt
170
- ? 'completed'
171
- : j.startedAt
172
- ? 'active'
173
- : j.runAt > Date.now()
174
- ? 'delayed'
175
- : 'waiting';
176
- jobs.push({
177
- id: String(j.id),
178
- name: data?.name ?? 'default',
179
- queue: j.queue,
180
- state,
181
- data,
182
- priority: j.priority,
183
- createdAt: j.createdAt,
184
- startedAt: j.startedAt ?? undefined,
185
- completedAt: j.completedAt ?? undefined,
186
- failedReason: state === 'active' && j.attempts > 0
187
- ? `Retry ${j.attempts}/${j.maxAttempts}`
188
- : undefined,
189
- attempts: j.attempts,
190
- maxAttempts: j.maxAttempts,
191
- duration: j.completedAt && j.startedAt ? j.completedAt - j.startedAt : undefined,
192
- progress: j.progress > 0 ? j.progress : undefined,
193
- });
194
- }
195
- }
196
- catch {
197
- // Skip queue on error
198
- }
199
- }
200
- return jobs.sort((a, b) => b.createdAt - a.createdAt).slice(0, 50);
201
- }
202
- /** Collect DLQ entries — only from queues with DLQ > 0 */
203
- function collectDlqEntries(queueManager, dlqQueueNames) {
204
- if (dlqQueueNames.length === 0)
205
- return [];
206
- const entries = [];
207
- for (const name of dlqQueueNames) {
208
- try {
209
- const dlq = queueManager.getDlqEntries(name);
210
- for (const e of dlq.slice(0, 20)) {
211
- entries.push({
212
- jobId: String(e.job.id),
213
- queue: e.job.queue,
214
- reason: e.reason,
215
- error: e.error,
216
- enteredAt: e.enteredAt,
217
- retryCount: e.retryCount,
218
- attempts: e.job.attempts,
219
- });
220
- }
221
- }
222
- catch {
223
- // Skip
224
- }
225
- }
226
- return entries.sort((a, b) => b.enteredAt - a.enteredAt).slice(0, 50);
227
- }
228
- /** Collect per-queue config */
229
- function collectQueueConfigs(queueManager, queueNames) {
230
- const configs = {};
231
- const perQueue = queueManager.getPerQueueStats();
232
- for (const name of queueNames) {
233
- try {
234
- const stall = queueManager.getStallConfig(name);
235
- const dlq = queueManager.getDlqConfig(name);
236
- const pq = perQueue.get(name);
237
- configs[name] = {
238
- paused: queueManager.isPaused(name),
239
- rateLimit: null,
240
- concurrencyLimit: null,
241
- concurrencyActive: pq?.active ?? 0,
242
- stallConfig: { stallInterval: stall.stallInterval, maxStalls: stall.maxStalls },
243
- dlqConfig: { maxRetries: dlq.maxAutoRetries, maxAge: dlq.maxAge ?? 0 },
244
- };
245
- }
246
- catch {
247
- // Skip
248
- }
249
- }
250
- return configs;
251
- }
252
- /** Collect webhook delivery stats */
253
- function collectWebhooks(queueManager) {
254
- try {
255
- return queueManager.webhookManager.list().map((w) => ({
256
- id: w.id,
257
- url: w.url,
258
- events: w.events,
259
- queue: w.queue,
260
- enabled: w.enabled,
261
- successCount: w.successCount,
262
- failureCount: w.failureCount,
263
- lastTriggered: w.lastTriggered,
264
- }));
265
- }
266
- catch {
267
- return [];
268
- }
269
- }
270
- /** Collect top errors — only from queues with DLQ entries */
271
- function collectTopErrors(queueManager, dlqQueueNames) {
272
- if (dlqQueueNames.length === 0)
273
- return [];
274
- const errorMap = new Map();
275
- const allEntries = dlqQueueNames.flatMap((name) => {
276
- try {
277
- return queueManager.getDlqEntries(name);
278
- }
279
- catch {
280
- return [];
281
- }
282
- });
283
- for (const e of allEntries) {
284
- const msg = e.error ?? e.reason;
285
- const existing = errorMap.get(msg);
286
- if (existing) {
287
- existing.count++;
288
- if (e.enteredAt > existing.lastSeen) {
289
- existing.lastSeen = e.enteredAt;
290
- existing.queue = e.job.queue;
291
- }
292
- }
293
- else {
294
- errorMap.set(msg, { count: 1, queue: e.job.queue, lastSeen: e.enteredAt });
295
- }
296
- }
297
- return [...errorMap.entries()]
298
- .map(([message, data]) => ({ message, ...data }))
299
- .sort((a, b) => b.count - a.count)
300
- .slice(0, 20);
301
- }
302
165
  //# sourceMappingURL=snapshotCollector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"snapshotCollector.js","sourceRoot":"","sources":["../../../src/infrastructure/cloud/snapshotCollector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"snapshotCollector.js","sourceRoot":"","sources":["../../../src/infrastructure/cloud/snapshotCollector.ts"],"names":[],"mappings":"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"}