@amqp-contract/worker 0.8.0 → 0.10.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.
- package/dist/index.cjs +42 -16
- package/dist/index.d.cts +10 -2
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +10 -2
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +43 -17
- package/dist/index.mjs.map +1 -1
- package/docs/index.md +52 -51
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -141,10 +141,12 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
141
141
|
batchTimers = /* @__PURE__ */ new Map();
|
|
142
142
|
consumerTags = /* @__PURE__ */ new Set();
|
|
143
143
|
retryConfig;
|
|
144
|
-
|
|
144
|
+
telemetry;
|
|
145
|
+
constructor(contract, amqpClient, handlers, logger, retryOptions, telemetry) {
|
|
145
146
|
this.contract = contract;
|
|
146
147
|
this.amqpClient = amqpClient;
|
|
147
148
|
this.logger = logger;
|
|
149
|
+
this.telemetry = telemetry ?? _amqp_contract_core.defaultTelemetryProvider;
|
|
148
150
|
this.actualHandlers = {};
|
|
149
151
|
this.consumerOptions = {};
|
|
150
152
|
const handlersRecord = handlers;
|
|
@@ -190,11 +192,11 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
190
192
|
* }).resultToPromise();
|
|
191
193
|
* ```
|
|
192
194
|
*/
|
|
193
|
-
static create({ contract, handlers, urls, connectionOptions, logger, retry }) {
|
|
195
|
+
static create({ contract, handlers, urls, connectionOptions, logger, retry, telemetry }) {
|
|
194
196
|
const worker = new TypedAmqpWorker(contract, new _amqp_contract_core.AmqpClient(contract, {
|
|
195
197
|
urls,
|
|
196
198
|
connectionOptions
|
|
197
|
-
}), handlers, logger, retry);
|
|
199
|
+
}), handlers, logger, retry, telemetry);
|
|
198
200
|
return worker.waitForConnectionReady().flatMapOk(() => worker.setupWaitQueues()).flatMapOk(() => worker.consumeAll()).mapOk(() => worker);
|
|
199
201
|
}
|
|
200
202
|
/**
|
|
@@ -250,6 +252,7 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
250
252
|
deadLetterRoutingKey: queueName
|
|
251
253
|
});
|
|
252
254
|
await channel.bindQueue(waitQueueName, dlxName, `${queueName}-wait`);
|
|
255
|
+
await channel.bindQueue(queueName, dlxName, queueName);
|
|
253
256
|
this.logger?.info("Wait queue created and bound", {
|
|
254
257
|
consumerName: String(consumerName),
|
|
255
258
|
queueName,
|
|
@@ -361,30 +364,43 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
361
364
|
* Consume messages one at a time
|
|
362
365
|
*/
|
|
363
366
|
consumeSingle(consumerName, consumer, handler) {
|
|
364
|
-
|
|
367
|
+
const queueName = consumer.queue.name;
|
|
368
|
+
return _swan_io_boxed.Future.fromPromise(this.amqpClient.channel.consume(queueName, async (msg) => {
|
|
365
369
|
if (msg === null) {
|
|
366
370
|
this.logger?.warn("Consumer cancelled by server", {
|
|
367
371
|
consumerName: String(consumerName),
|
|
368
|
-
queueName
|
|
372
|
+
queueName
|
|
369
373
|
});
|
|
370
374
|
return;
|
|
371
375
|
}
|
|
376
|
+
const startTime = Date.now();
|
|
377
|
+
const span = (0, _amqp_contract_core.startConsumeSpan)(this.telemetry, queueName, String(consumerName), { "messaging.rabbitmq.message.delivery_tag": msg.fields.deliveryTag });
|
|
372
378
|
await this.parseAndValidateMessage(msg, consumer, consumerName).flatMapOk((validatedMessage) => handler(validatedMessage).flatMapOk(() => {
|
|
373
379
|
this.logger?.info("Message consumed successfully", {
|
|
374
380
|
consumerName: String(consumerName),
|
|
375
|
-
queueName
|
|
381
|
+
queueName
|
|
376
382
|
});
|
|
377
383
|
this.amqpClient.channel.ack(msg);
|
|
384
|
+
const durationMs = Date.now() - startTime;
|
|
385
|
+
(0, _amqp_contract_core.endSpanSuccess)(span);
|
|
386
|
+
(0, _amqp_contract_core.recordConsumeMetric)(this.telemetry, queueName, String(consumerName), true, durationMs);
|
|
378
387
|
return _swan_io_boxed.Future.value(_swan_io_boxed.Result.Ok(void 0));
|
|
379
388
|
}).flatMapError((handlerError) => {
|
|
380
389
|
this.logger?.error("Error processing message", {
|
|
381
390
|
consumerName: String(consumerName),
|
|
382
|
-
queueName
|
|
391
|
+
queueName,
|
|
383
392
|
errorType: handlerError.name,
|
|
384
393
|
error: handlerError.message
|
|
385
394
|
});
|
|
395
|
+
const durationMs = Date.now() - startTime;
|
|
396
|
+
(0, _amqp_contract_core.endSpanError)(span, handlerError);
|
|
397
|
+
(0, _amqp_contract_core.recordConsumeMetric)(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
386
398
|
return this.handleError(handlerError, msg, String(consumerName), consumer);
|
|
387
|
-
})).
|
|
399
|
+
})).tapError(() => {
|
|
400
|
+
const durationMs = Date.now() - startTime;
|
|
401
|
+
(0, _amqp_contract_core.endSpanError)(span, /* @__PURE__ */ new Error("Message validation failed"));
|
|
402
|
+
(0, _amqp_contract_core.recordConsumeMetric)(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
403
|
+
}).toPromise();
|
|
388
404
|
})).tapOk((reply) => {
|
|
389
405
|
this.consumerTags.add(reply.consumerTag);
|
|
390
406
|
}).mapError((error) => new TechnicalError(`Failed to start consuming for "${String(consumerName)}"`, error)).mapOk(() => void 0);
|
|
@@ -402,6 +418,7 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
402
418
|
const batchSize = options.batchSize;
|
|
403
419
|
const batchTimeout = options.batchTimeout ?? 1e3;
|
|
404
420
|
const timerKey = String(consumerName);
|
|
421
|
+
const queueName = consumer.queue.name;
|
|
405
422
|
let batch = [];
|
|
406
423
|
let isProcessing = false;
|
|
407
424
|
const processBatch = () => {
|
|
@@ -415,27 +432,36 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
415
432
|
this.batchTimers.delete(timerKey);
|
|
416
433
|
}
|
|
417
434
|
const messages = currentBatch.map((item) => item.message);
|
|
435
|
+
const batchCount = currentBatch.length;
|
|
436
|
+
const startTime = Date.now();
|
|
437
|
+
const span = (0, _amqp_contract_core.startConsumeSpan)(this.telemetry, queueName, String(consumerName), { "amqp.batch.size": batchCount });
|
|
418
438
|
this.logger?.info("Processing batch", {
|
|
419
439
|
consumerName: String(consumerName),
|
|
420
|
-
queueName
|
|
421
|
-
batchSize:
|
|
440
|
+
queueName,
|
|
441
|
+
batchSize: batchCount
|
|
422
442
|
});
|
|
423
443
|
return handler(messages).flatMapOk(() => {
|
|
424
444
|
for (const item of currentBatch) this.amqpClient.channel.ack(item.amqpMessage);
|
|
425
445
|
this.logger?.info("Batch processed successfully", {
|
|
426
446
|
consumerName: String(consumerName),
|
|
427
|
-
queueName
|
|
428
|
-
batchSize:
|
|
447
|
+
queueName,
|
|
448
|
+
batchSize: batchCount
|
|
429
449
|
});
|
|
450
|
+
const durationMs = Date.now() - startTime;
|
|
451
|
+
(0, _amqp_contract_core.endSpanSuccess)(span);
|
|
452
|
+
(0, _amqp_contract_core.recordConsumeMetric)(this.telemetry, queueName, String(consumerName), true, durationMs);
|
|
430
453
|
return _swan_io_boxed.Future.value(_swan_io_boxed.Result.Ok(void 0));
|
|
431
454
|
}).flatMapError((handlerError) => {
|
|
432
455
|
this.logger?.error("Error processing batch", {
|
|
433
456
|
consumerName: String(consumerName),
|
|
434
|
-
queueName
|
|
435
|
-
batchSize:
|
|
457
|
+
queueName,
|
|
458
|
+
batchSize: batchCount,
|
|
436
459
|
errorType: handlerError.name,
|
|
437
460
|
error: handlerError.message
|
|
438
461
|
});
|
|
462
|
+
const durationMs = Date.now() - startTime;
|
|
463
|
+
(0, _amqp_contract_core.endSpanError)(span, handlerError);
|
|
464
|
+
(0, _amqp_contract_core.recordConsumeMetric)(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
439
465
|
return this.handleBatchError(handlerError, currentBatch, String(consumerName), consumer);
|
|
440
466
|
}).tap(() => {
|
|
441
467
|
isProcessing = false;
|
|
@@ -450,11 +476,11 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
450
476
|
}, batchTimeout);
|
|
451
477
|
this.batchTimers.set(timerKey, timer);
|
|
452
478
|
};
|
|
453
|
-
return _swan_io_boxed.Future.fromPromise(this.amqpClient.channel.consume(
|
|
479
|
+
return _swan_io_boxed.Future.fromPromise(this.amqpClient.channel.consume(queueName, async (msg) => {
|
|
454
480
|
if (msg === null) {
|
|
455
481
|
this.logger?.warn("Consumer cancelled by server", {
|
|
456
482
|
consumerName: String(consumerName),
|
|
457
|
-
queueName
|
|
483
|
+
queueName
|
|
458
484
|
});
|
|
459
485
|
await processBatch().toPromise();
|
|
460
486
|
return;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Logger } from "@amqp-contract/core";
|
|
1
|
+
import { Logger, TelemetryProvider } from "@amqp-contract/core";
|
|
2
2
|
import { AmqpConnectionManagerOptions, ConnectionUrl } from "amqp-connection-manager";
|
|
3
3
|
import { ConsumerDefinition, ContractDefinition, InferConsumerNames } from "@amqp-contract/contract";
|
|
4
4
|
import { Future, Result } from "@swan-io/boxed";
|
|
@@ -262,6 +262,12 @@ type CreateWorkerOptions<TContract extends ContractDefinition> = {
|
|
|
262
262
|
logger?: Logger | undefined;
|
|
263
263
|
/** Retry configuration - when undefined, uses legacy behavior (immediate requeue) */
|
|
264
264
|
retry?: RetryOptions | undefined;
|
|
265
|
+
/**
|
|
266
|
+
* Optional telemetry provider for tracing and metrics.
|
|
267
|
+
* If not provided, uses the default provider which attempts to load OpenTelemetry.
|
|
268
|
+
* OpenTelemetry instrumentation is automatically enabled if @opentelemetry/api is installed.
|
|
269
|
+
*/
|
|
270
|
+
telemetry?: TelemetryProvider | undefined;
|
|
265
271
|
};
|
|
266
272
|
/**
|
|
267
273
|
* Type-safe AMQP worker for consuming messages from RabbitMQ.
|
|
@@ -316,6 +322,7 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
|
|
|
316
322
|
private readonly batchTimers;
|
|
317
323
|
private readonly consumerTags;
|
|
318
324
|
private readonly retryConfig;
|
|
325
|
+
private readonly telemetry;
|
|
319
326
|
private constructor();
|
|
320
327
|
/**
|
|
321
328
|
* Create a type-safe AMQP worker from a contract.
|
|
@@ -348,7 +355,8 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
|
|
|
348
355
|
urls,
|
|
349
356
|
connectionOptions,
|
|
350
357
|
logger,
|
|
351
|
-
retry
|
|
358
|
+
retry,
|
|
359
|
+
telemetry
|
|
352
360
|
}: CreateWorkerOptions<TContract>): Future<Result<TypedAmqpWorker<TContract>, TechnicalError>>;
|
|
353
361
|
/**
|
|
354
362
|
* Close the AMQP channel and connection.
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/errors.ts","../src/types.ts","../src/worker.ts","../src/handlers.ts"],"sourcesContent":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../src/errors.ts","../src/types.ts","../src/worker.ts","../src/handlers.ts"],"sourcesContent":[],"mappings":"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1B,SFrF0B,CAAA,CAAA,CAAA,QAAA,EEuFjD,SFvFiD,EAAA,YAAA,EEwF7C,KFxF6C,EAAA,OAAA,EEyFlD,mCFzFkD,CEyFd,SFzFc,EEyFH,KFzFG,CAAA,EAAA,OAAA,EAAA;EAAM,QAAA,CAAA,EAAA,MAAA;EAYvD,SAAA,EAAA,MAAA;EACQ,YAAA,CAAA,EAAA,MAAA;CACe,CAAA,EE6EhC,mCF7EgC,CE6EI,SF7EJ,EE6Ee,KF7Ef,CAAA;;;;;;;;;;AAanC;;;;;;;;;;;;;;AAkBA;;;;;;AACwC,iBE8FxB,cF9FwB,CAAA,kBE8FS,kBF9FT,CAAA,CAAA,QAAA,EE+F5B,SF/F4B,EAAA,QAAA,EEgG5B,+BFhG4B,CEgGI,SFhGJ,CAAA,CAAA,EEiGrC,+BFjGqC,CEiGL,SFjGK,CAAA;;AAqBxC;;KEwFK,aFtF8B,CAAA,kBEuFf,kBFvFe,EAAA,cEwFnB,kBFxFmB,CEwFA,SFxFA,CAAA,CAAA,GAAA,CAAA,OAAA,EEyFrB,wBFzFqB,CEyFI,SFzFJ,EEyFe,KFzFf,CAAA,EAAA,GEyF0B,OFzF1B,CAAA,IAAA,CAAA;;;;KE8F9B,kBF7FS,CAAA,kBE8FM,kBF9FN,EAAA,cE+FE,kBF/FF,CE+FqB,SF/FrB,CAAA,CAAA,GAAA,CAAA,QAAA,EEgGC,KFhGD,CEgGO,wBFhGP,CEgGgC,SFhGhC,EEgG2C,KFhG3C,CAAA,CAAA,EAAA,GEgGuD,OFhGvD,CAAA,IAAA,CAAA;;;AASd;;;;;;;;;;AAUA;;;;;;;;;;;;;;AAmBA;;;;;;;;AAWA;;AAEmC,iBEmFnB,mBFnFmB,CAAA,kBEoFf,kBFpFe,EAAA,cEqFnB,kBFrFmB,CEqFA,SFrFA,CAAA,CAAA,CAAA,QAAA,EEuFvB,SFvFuB,EAAA,YAAA,EEwFnB,KFxFmB,EAAA,OAAA,EEyFxB,aFzFwB,CEyFV,SFzFU,EEyFC,KFzFD,CAAA,CAAA,EE0FhC,mCF1FgC,CE0FI,SF1FJ,EE0Fe,KF1Ff,CAAA;AAAnB,iBE2FA,mBF3FA,CAAA,kBE4FI,kBF5FJ,EAAA,cE6FA,kBF7FA,CE6FmB,SF7FnB,CAAA,CAAA,CAAA,QAAA,EE+FJ,SF/FI,EAAA,YAAA,EEgGA,KFhGA,EAAA,OAAA,EEiGL,aFjGK,CEiGS,SFjGT,EEiGoB,KFjGpB,CAAA,EAAA,OAAA,EAAA;EACqB,QAAA,CAAA,EAAA,MAAA;EAAW,SAAA,CAAA,EAAA,KAAA;EAA5C,YAAA,CAAA,EAAA,KAAA;CAAgC,CAAA,EEkGjC,mCFlGiC,CEkGG,SFlGH,EEkGc,KFlGd,CAAA;AAKxB,iBE8FI,mBF9F2B,CAAA,kBE+FvB,kBF/FuB,EAAA,cEgG3B,kBFhG2B,CEgGR,SFhGQ,CAAA,CAAA,CAAA,QAAA,EEkG/B,SFlG+B,EAAA,YAAA,EEmG3B,KFnG2B,EAAA,OAAA,EEoGhC,kBFpGgC,CEoGb,SFpGa,EEoGF,KFpGE,CAAA,EAAA,OAAA,EAAA;EACvB,QAAA,CAAA,EAAA,MAAA;EACe,SAAA,EAAA,MAAA;EAAnB,YAAA,CAAA,EAAA,MAAA;CAC0B,CAAA,EEmGvC,mCFnGuC,CEmGH,SFnGG,EEmGQ,KFnGR,CAAA;;;;AAK1C,KEsHK,kBFtHO,CAAA,kBEuHQ,kBFvHuB,EAAA,cEwH3B,kBFxH2B,CEwHR,SFxHQ,CAAA,CAAA,GE0HvC,aF1HuC,CE0HzB,SF1HyB,EE0Hd,KF1Hc,CAAA,GAAA,SAAA,CE4HrC,aF3Hc,CE2HA,SF3HA,EE2HW,KF3HX,CAAA,EACe;EAAnB,QAAA,CAAA,EAAA,MAAA;EAC0B,SAAA,CAAA,EAAA,KAAA;EAAW,YAAA,CAAA,EAAA,KAAA;AAAjD,CAAA,CAAqC,GAAA,SAAA,CE6HnC,kBFxHM,CEwHa,SFxHb,EEwHwB,KFxHG,CAAA,EAAmB;EACtB,QAAA,CAAA,EAAA,MAAA;EAAlC,SAAA,EAAA,MAAA;EAAiC,YAAA,CAAA,EAAA,MAAA;;;AC5JnC;AAoEA;KCsNK,cDtN6C,CAAA,kBCsNZ,kBDtNY,CAAA,GAAA,QCuN1C,kBDrNI,CCqNe,SDrNf,CAAA,GCqN4B,kBDrN5B,CCqN+C,SDrN/C,ECqN0D,CDrN1D,CAAA,EAOgC;;;;;;;;AAyD5C;;;;;;;;;;;;;;;;;;;;;;;;ACxDgB,iBA+OA,oBA/Oa,CAAA,kBA+O0B,kBA/O1B,CAAA,CAAA,QAAA,EAgPjB,SAhPiB,EAAA,QAAA,EAiPjB,cAjPiB,CAiPF,SAjPE,CAAA,CAAA,EAkP1B,+BAlP0B,CAkPM,SAlPN,CAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Logger } from "@amqp-contract/core";
|
|
1
|
+
import { Logger, TelemetryProvider } from "@amqp-contract/core";
|
|
2
2
|
import { Future, Result } from "@swan-io/boxed";
|
|
3
3
|
import { AmqpConnectionManagerOptions, ConnectionUrl } from "amqp-connection-manager";
|
|
4
4
|
import { ConsumerDefinition, ContractDefinition, InferConsumerNames } from "@amqp-contract/contract";
|
|
@@ -262,6 +262,12 @@ type CreateWorkerOptions<TContract extends ContractDefinition> = {
|
|
|
262
262
|
logger?: Logger | undefined;
|
|
263
263
|
/** Retry configuration - when undefined, uses legacy behavior (immediate requeue) */
|
|
264
264
|
retry?: RetryOptions | undefined;
|
|
265
|
+
/**
|
|
266
|
+
* Optional telemetry provider for tracing and metrics.
|
|
267
|
+
* If not provided, uses the default provider which attempts to load OpenTelemetry.
|
|
268
|
+
* OpenTelemetry instrumentation is automatically enabled if @opentelemetry/api is installed.
|
|
269
|
+
*/
|
|
270
|
+
telemetry?: TelemetryProvider | undefined;
|
|
265
271
|
};
|
|
266
272
|
/**
|
|
267
273
|
* Type-safe AMQP worker for consuming messages from RabbitMQ.
|
|
@@ -316,6 +322,7 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
|
|
|
316
322
|
private readonly batchTimers;
|
|
317
323
|
private readonly consumerTags;
|
|
318
324
|
private readonly retryConfig;
|
|
325
|
+
private readonly telemetry;
|
|
319
326
|
private constructor();
|
|
320
327
|
/**
|
|
321
328
|
* Create a type-safe AMQP worker from a contract.
|
|
@@ -348,7 +355,8 @@ declare class TypedAmqpWorker<TContract extends ContractDefinition> {
|
|
|
348
355
|
urls,
|
|
349
356
|
connectionOptions,
|
|
350
357
|
logger,
|
|
351
|
-
retry
|
|
358
|
+
retry,
|
|
359
|
+
telemetry
|
|
352
360
|
}: CreateWorkerOptions<TContract>): Future<Result<TypedAmqpWorker<TContract>, TechnicalError>>;
|
|
353
361
|
/**
|
|
354
362
|
* Close the AMQP channel and connection.
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/errors.ts","../src/types.ts","../src/worker.ts","../src/handlers.ts"],"sourcesContent":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../src/errors.ts","../src/types.ts","../src/worker.ts","../src/handlers.ts"],"sourcesContent":[],"mappings":"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1B,SFrF0B,CAAA,CAAA,CAAA,QAAA,EEuFjD,SFvFiD,EAAA,YAAA,EEwF7C,KFxF6C,EAAA,OAAA,EEyFlD,mCFzFkD,CEyFd,SFzFc,EEyFH,KFzFG,CAAA,EAAA,OAAA,EAAA;EAAM,QAAA,CAAA,EAAA,MAAA;EAYvD,SAAA,EAAA,MAAA;EACQ,YAAA,CAAA,EAAA,MAAA;CACe,CAAA,EE6EhC,mCF7EgC,CE6EI,SF7EJ,EE6Ee,KF7Ef,CAAA;;;;;;;;;;AAanC;;;;;;;;;;;;;;AAkBA;;;;;;AACwC,iBE8FxB,cF9FwB,CAAA,kBE8FS,kBF9FT,CAAA,CAAA,QAAA,EE+F5B,SF/F4B,EAAA,QAAA,EEgG5B,+BFhG4B,CEgGI,SFhGJ,CAAA,CAAA,EEiGrC,+BFjGqC,CEiGL,SFjGK,CAAA;;AAqBxC;;KEwFK,aFtF8B,CAAA,kBEuFf,kBFvFe,EAAA,cEwFnB,kBFxFmB,CEwFA,SFxFA,CAAA,CAAA,GAAA,CAAA,OAAA,EEyFrB,wBFzFqB,CEyFI,SFzFJ,EEyFe,KFzFf,CAAA,EAAA,GEyF0B,OFzF1B,CAAA,IAAA,CAAA;;;;KE8F9B,kBF7FS,CAAA,kBE8FM,kBF9FN,EAAA,cE+FE,kBF/FF,CE+FqB,SF/FrB,CAAA,CAAA,GAAA,CAAA,QAAA,EEgGC,KFhGD,CEgGO,wBFhGP,CEgGgC,SFhGhC,EEgG2C,KFhG3C,CAAA,CAAA,EAAA,GEgGuD,OFhGvD,CAAA,IAAA,CAAA;;;AASd;;;;;;;;;;AAUA;;;;;;;;;;;;;;AAmBA;;;;;;;;AAWA;;AAEmC,iBEmFnB,mBFnFmB,CAAA,kBEoFf,kBFpFe,EAAA,cEqFnB,kBFrFmB,CEqFA,SFrFA,CAAA,CAAA,CAAA,QAAA,EEuFvB,SFvFuB,EAAA,YAAA,EEwFnB,KFxFmB,EAAA,OAAA,EEyFxB,aFzFwB,CEyFV,SFzFU,EEyFC,KFzFD,CAAA,CAAA,EE0FhC,mCF1FgC,CE0FI,SF1FJ,EE0Fe,KF1Ff,CAAA;AAAnB,iBE2FA,mBF3FA,CAAA,kBE4FI,kBF5FJ,EAAA,cE6FA,kBF7FA,CE6FmB,SF7FnB,CAAA,CAAA,CAAA,QAAA,EE+FJ,SF/FI,EAAA,YAAA,EEgGA,KFhGA,EAAA,OAAA,EEiGL,aFjGK,CEiGS,SFjGT,EEiGoB,KFjGpB,CAAA,EAAA,OAAA,EAAA;EACqB,QAAA,CAAA,EAAA,MAAA;EAAW,SAAA,CAAA,EAAA,KAAA;EAA5C,YAAA,CAAA,EAAA,KAAA;CAAgC,CAAA,EEkGjC,mCFlGiC,CEkGG,SFlGH,EEkGc,KFlGd,CAAA;AAKxB,iBE8FI,mBF9F2B,CAAA,kBE+FvB,kBF/FuB,EAAA,cEgG3B,kBFhG2B,CEgGR,SFhGQ,CAAA,CAAA,CAAA,QAAA,EEkG/B,SFlG+B,EAAA,YAAA,EEmG3B,KFnG2B,EAAA,OAAA,EEoGhC,kBFpGgC,CEoGb,SFpGa,EEoGF,KFpGE,CAAA,EAAA,OAAA,EAAA;EACvB,QAAA,CAAA,EAAA,MAAA;EACe,SAAA,EAAA,MAAA;EAAnB,YAAA,CAAA,EAAA,MAAA;CAC0B,CAAA,EEmGvC,mCFnGuC,CEmGH,SFnGG,EEmGQ,KFnGR,CAAA;;;;AAK1C,KEsHK,kBFtHO,CAAA,kBEuHQ,kBFvHuB,EAAA,cEwH3B,kBFxH2B,CEwHR,SFxHQ,CAAA,CAAA,GE0HvC,aF1HuC,CE0HzB,SF1HyB,EE0Hd,KF1Hc,CAAA,GAAA,SAAA,CE4HrC,aF3Hc,CE2HA,SF3HA,EE2HW,KF3HX,CAAA,EACe;EAAnB,QAAA,CAAA,EAAA,MAAA;EAC0B,SAAA,CAAA,EAAA,KAAA;EAAW,YAAA,CAAA,EAAA,KAAA;AAAjD,CAAA,CAAqC,GAAA,SAAA,CE6HnC,kBFxHM,CEwHa,SFxHb,EEwHwB,KFxHG,CAAA,EAAmB;EACtB,QAAA,CAAA,EAAA,MAAA;EAAlC,SAAA,EAAA,MAAA;EAAiC,YAAA,CAAA,EAAA,MAAA;;;AC5JnC;AAoEA;KCsNK,cDtN6C,CAAA,kBCsNZ,kBDtNY,CAAA,GAAA,QCuN1C,kBDrNI,CCqNe,SDrNf,CAAA,GCqN4B,kBDrN5B,CCqN+C,SDrN/C,ECqN0D,CDrN1D,CAAA,EAOgC;;;;;;;;AAyD5C;;;;;;;;;;;;;;;;;;;;;;;;ACxDgB,iBA+OA,oBA/Oa,CAAA,kBA+O0B,kBA/O1B,CAAA,CAAA,QAAA,EAgPjB,SAhPiB,EAAA,QAAA,EAiPjB,cAjPiB,CAiPF,SAjPE,CAAA,CAAA,EAkP1B,+BAlP0B,CAkPM,SAlPN,CAAA"}
|
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AmqpClient } from "@amqp-contract/core";
|
|
1
|
+
import { AmqpClient, defaultTelemetryProvider, endSpanError, endSpanSuccess, recordConsumeMetric, startConsumeSpan } from "@amqp-contract/core";
|
|
2
2
|
import { Future, Result } from "@swan-io/boxed";
|
|
3
3
|
import { gunzip, inflate } from "node:zlib";
|
|
4
4
|
import { promisify } from "node:util";
|
|
@@ -141,10 +141,12 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
141
141
|
batchTimers = /* @__PURE__ */ new Map();
|
|
142
142
|
consumerTags = /* @__PURE__ */ new Set();
|
|
143
143
|
retryConfig;
|
|
144
|
-
|
|
144
|
+
telemetry;
|
|
145
|
+
constructor(contract, amqpClient, handlers, logger, retryOptions, telemetry) {
|
|
145
146
|
this.contract = contract;
|
|
146
147
|
this.amqpClient = amqpClient;
|
|
147
148
|
this.logger = logger;
|
|
149
|
+
this.telemetry = telemetry ?? defaultTelemetryProvider;
|
|
148
150
|
this.actualHandlers = {};
|
|
149
151
|
this.consumerOptions = {};
|
|
150
152
|
const handlersRecord = handlers;
|
|
@@ -190,11 +192,11 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
190
192
|
* }).resultToPromise();
|
|
191
193
|
* ```
|
|
192
194
|
*/
|
|
193
|
-
static create({ contract, handlers, urls, connectionOptions, logger, retry }) {
|
|
195
|
+
static create({ contract, handlers, urls, connectionOptions, logger, retry, telemetry }) {
|
|
194
196
|
const worker = new TypedAmqpWorker(contract, new AmqpClient(contract, {
|
|
195
197
|
urls,
|
|
196
198
|
connectionOptions
|
|
197
|
-
}), handlers, logger, retry);
|
|
199
|
+
}), handlers, logger, retry, telemetry);
|
|
198
200
|
return worker.waitForConnectionReady().flatMapOk(() => worker.setupWaitQueues()).flatMapOk(() => worker.consumeAll()).mapOk(() => worker);
|
|
199
201
|
}
|
|
200
202
|
/**
|
|
@@ -250,6 +252,7 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
250
252
|
deadLetterRoutingKey: queueName
|
|
251
253
|
});
|
|
252
254
|
await channel.bindQueue(waitQueueName, dlxName, `${queueName}-wait`);
|
|
255
|
+
await channel.bindQueue(queueName, dlxName, queueName);
|
|
253
256
|
this.logger?.info("Wait queue created and bound", {
|
|
254
257
|
consumerName: String(consumerName),
|
|
255
258
|
queueName,
|
|
@@ -361,30 +364,43 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
361
364
|
* Consume messages one at a time
|
|
362
365
|
*/
|
|
363
366
|
consumeSingle(consumerName, consumer, handler) {
|
|
364
|
-
|
|
367
|
+
const queueName = consumer.queue.name;
|
|
368
|
+
return Future.fromPromise(this.amqpClient.channel.consume(queueName, async (msg) => {
|
|
365
369
|
if (msg === null) {
|
|
366
370
|
this.logger?.warn("Consumer cancelled by server", {
|
|
367
371
|
consumerName: String(consumerName),
|
|
368
|
-
queueName
|
|
372
|
+
queueName
|
|
369
373
|
});
|
|
370
374
|
return;
|
|
371
375
|
}
|
|
376
|
+
const startTime = Date.now();
|
|
377
|
+
const span = startConsumeSpan(this.telemetry, queueName, String(consumerName), { "messaging.rabbitmq.message.delivery_tag": msg.fields.deliveryTag });
|
|
372
378
|
await this.parseAndValidateMessage(msg, consumer, consumerName).flatMapOk((validatedMessage) => handler(validatedMessage).flatMapOk(() => {
|
|
373
379
|
this.logger?.info("Message consumed successfully", {
|
|
374
380
|
consumerName: String(consumerName),
|
|
375
|
-
queueName
|
|
381
|
+
queueName
|
|
376
382
|
});
|
|
377
383
|
this.amqpClient.channel.ack(msg);
|
|
384
|
+
const durationMs = Date.now() - startTime;
|
|
385
|
+
endSpanSuccess(span);
|
|
386
|
+
recordConsumeMetric(this.telemetry, queueName, String(consumerName), true, durationMs);
|
|
378
387
|
return Future.value(Result.Ok(void 0));
|
|
379
388
|
}).flatMapError((handlerError) => {
|
|
380
389
|
this.logger?.error("Error processing message", {
|
|
381
390
|
consumerName: String(consumerName),
|
|
382
|
-
queueName
|
|
391
|
+
queueName,
|
|
383
392
|
errorType: handlerError.name,
|
|
384
393
|
error: handlerError.message
|
|
385
394
|
});
|
|
395
|
+
const durationMs = Date.now() - startTime;
|
|
396
|
+
endSpanError(span, handlerError);
|
|
397
|
+
recordConsumeMetric(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
386
398
|
return this.handleError(handlerError, msg, String(consumerName), consumer);
|
|
387
|
-
})).
|
|
399
|
+
})).tapError(() => {
|
|
400
|
+
const durationMs = Date.now() - startTime;
|
|
401
|
+
endSpanError(span, /* @__PURE__ */ new Error("Message validation failed"));
|
|
402
|
+
recordConsumeMetric(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
403
|
+
}).toPromise();
|
|
388
404
|
})).tapOk((reply) => {
|
|
389
405
|
this.consumerTags.add(reply.consumerTag);
|
|
390
406
|
}).mapError((error) => new TechnicalError(`Failed to start consuming for "${String(consumerName)}"`, error)).mapOk(() => void 0);
|
|
@@ -402,6 +418,7 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
402
418
|
const batchSize = options.batchSize;
|
|
403
419
|
const batchTimeout = options.batchTimeout ?? 1e3;
|
|
404
420
|
const timerKey = String(consumerName);
|
|
421
|
+
const queueName = consumer.queue.name;
|
|
405
422
|
let batch = [];
|
|
406
423
|
let isProcessing = false;
|
|
407
424
|
const processBatch = () => {
|
|
@@ -415,27 +432,36 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
415
432
|
this.batchTimers.delete(timerKey);
|
|
416
433
|
}
|
|
417
434
|
const messages = currentBatch.map((item) => item.message);
|
|
435
|
+
const batchCount = currentBatch.length;
|
|
436
|
+
const startTime = Date.now();
|
|
437
|
+
const span = startConsumeSpan(this.telemetry, queueName, String(consumerName), { "amqp.batch.size": batchCount });
|
|
418
438
|
this.logger?.info("Processing batch", {
|
|
419
439
|
consumerName: String(consumerName),
|
|
420
|
-
queueName
|
|
421
|
-
batchSize:
|
|
440
|
+
queueName,
|
|
441
|
+
batchSize: batchCount
|
|
422
442
|
});
|
|
423
443
|
return handler(messages).flatMapOk(() => {
|
|
424
444
|
for (const item of currentBatch) this.amqpClient.channel.ack(item.amqpMessage);
|
|
425
445
|
this.logger?.info("Batch processed successfully", {
|
|
426
446
|
consumerName: String(consumerName),
|
|
427
|
-
queueName
|
|
428
|
-
batchSize:
|
|
447
|
+
queueName,
|
|
448
|
+
batchSize: batchCount
|
|
429
449
|
});
|
|
450
|
+
const durationMs = Date.now() - startTime;
|
|
451
|
+
endSpanSuccess(span);
|
|
452
|
+
recordConsumeMetric(this.telemetry, queueName, String(consumerName), true, durationMs);
|
|
430
453
|
return Future.value(Result.Ok(void 0));
|
|
431
454
|
}).flatMapError((handlerError) => {
|
|
432
455
|
this.logger?.error("Error processing batch", {
|
|
433
456
|
consumerName: String(consumerName),
|
|
434
|
-
queueName
|
|
435
|
-
batchSize:
|
|
457
|
+
queueName,
|
|
458
|
+
batchSize: batchCount,
|
|
436
459
|
errorType: handlerError.name,
|
|
437
460
|
error: handlerError.message
|
|
438
461
|
});
|
|
462
|
+
const durationMs = Date.now() - startTime;
|
|
463
|
+
endSpanError(span, handlerError);
|
|
464
|
+
recordConsumeMetric(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
439
465
|
return this.handleBatchError(handlerError, currentBatch, String(consumerName), consumer);
|
|
440
466
|
}).tap(() => {
|
|
441
467
|
isProcessing = false;
|
|
@@ -450,11 +476,11 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
450
476
|
}, batchTimeout);
|
|
451
477
|
this.batchTimers.set(timerKey, timer);
|
|
452
478
|
};
|
|
453
|
-
return Future.fromPromise(this.amqpClient.channel.consume(
|
|
479
|
+
return Future.fromPromise(this.amqpClient.channel.consume(queueName, async (msg) => {
|
|
454
480
|
if (msg === null) {
|
|
455
481
|
this.logger?.warn("Consumer cancelled by server", {
|
|
456
482
|
consumerName: String(consumerName),
|
|
457
|
-
queueName
|
|
483
|
+
queueName
|
|
458
484
|
});
|
|
459
485
|
await processBatch().toPromise();
|
|
460
486
|
return;
|