@amqp-contract/worker 0.8.0 → 0.9.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 +41 -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 +42 -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
|
/**
|
|
@@ -361,30 +363,43 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
361
363
|
* Consume messages one at a time
|
|
362
364
|
*/
|
|
363
365
|
consumeSingle(consumerName, consumer, handler) {
|
|
364
|
-
|
|
366
|
+
const queueName = consumer.queue.name;
|
|
367
|
+
return _swan_io_boxed.Future.fromPromise(this.amqpClient.channel.consume(queueName, async (msg) => {
|
|
365
368
|
if (msg === null) {
|
|
366
369
|
this.logger?.warn("Consumer cancelled by server", {
|
|
367
370
|
consumerName: String(consumerName),
|
|
368
|
-
queueName
|
|
371
|
+
queueName
|
|
369
372
|
});
|
|
370
373
|
return;
|
|
371
374
|
}
|
|
375
|
+
const startTime = Date.now();
|
|
376
|
+
const span = (0, _amqp_contract_core.startConsumeSpan)(this.telemetry, queueName, String(consumerName), { "messaging.rabbitmq.message.delivery_tag": msg.fields.deliveryTag });
|
|
372
377
|
await this.parseAndValidateMessage(msg, consumer, consumerName).flatMapOk((validatedMessage) => handler(validatedMessage).flatMapOk(() => {
|
|
373
378
|
this.logger?.info("Message consumed successfully", {
|
|
374
379
|
consumerName: String(consumerName),
|
|
375
|
-
queueName
|
|
380
|
+
queueName
|
|
376
381
|
});
|
|
377
382
|
this.amqpClient.channel.ack(msg);
|
|
383
|
+
const durationMs = Date.now() - startTime;
|
|
384
|
+
(0, _amqp_contract_core.endSpanSuccess)(span);
|
|
385
|
+
(0, _amqp_contract_core.recordConsumeMetric)(this.telemetry, queueName, String(consumerName), true, durationMs);
|
|
378
386
|
return _swan_io_boxed.Future.value(_swan_io_boxed.Result.Ok(void 0));
|
|
379
387
|
}).flatMapError((handlerError) => {
|
|
380
388
|
this.logger?.error("Error processing message", {
|
|
381
389
|
consumerName: String(consumerName),
|
|
382
|
-
queueName
|
|
390
|
+
queueName,
|
|
383
391
|
errorType: handlerError.name,
|
|
384
392
|
error: handlerError.message
|
|
385
393
|
});
|
|
394
|
+
const durationMs = Date.now() - startTime;
|
|
395
|
+
(0, _amqp_contract_core.endSpanError)(span, handlerError);
|
|
396
|
+
(0, _amqp_contract_core.recordConsumeMetric)(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
386
397
|
return this.handleError(handlerError, msg, String(consumerName), consumer);
|
|
387
|
-
})).
|
|
398
|
+
})).tapError(() => {
|
|
399
|
+
const durationMs = Date.now() - startTime;
|
|
400
|
+
(0, _amqp_contract_core.endSpanError)(span, /* @__PURE__ */ new Error("Message validation failed"));
|
|
401
|
+
(0, _amqp_contract_core.recordConsumeMetric)(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
402
|
+
}).toPromise();
|
|
388
403
|
})).tapOk((reply) => {
|
|
389
404
|
this.consumerTags.add(reply.consumerTag);
|
|
390
405
|
}).mapError((error) => new TechnicalError(`Failed to start consuming for "${String(consumerName)}"`, error)).mapOk(() => void 0);
|
|
@@ -402,6 +417,7 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
402
417
|
const batchSize = options.batchSize;
|
|
403
418
|
const batchTimeout = options.batchTimeout ?? 1e3;
|
|
404
419
|
const timerKey = String(consumerName);
|
|
420
|
+
const queueName = consumer.queue.name;
|
|
405
421
|
let batch = [];
|
|
406
422
|
let isProcessing = false;
|
|
407
423
|
const processBatch = () => {
|
|
@@ -415,27 +431,36 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
415
431
|
this.batchTimers.delete(timerKey);
|
|
416
432
|
}
|
|
417
433
|
const messages = currentBatch.map((item) => item.message);
|
|
434
|
+
const batchCount = currentBatch.length;
|
|
435
|
+
const startTime = Date.now();
|
|
436
|
+
const span = (0, _amqp_contract_core.startConsumeSpan)(this.telemetry, queueName, String(consumerName), { "amqp.batch.size": batchCount });
|
|
418
437
|
this.logger?.info("Processing batch", {
|
|
419
438
|
consumerName: String(consumerName),
|
|
420
|
-
queueName
|
|
421
|
-
batchSize:
|
|
439
|
+
queueName,
|
|
440
|
+
batchSize: batchCount
|
|
422
441
|
});
|
|
423
442
|
return handler(messages).flatMapOk(() => {
|
|
424
443
|
for (const item of currentBatch) this.amqpClient.channel.ack(item.amqpMessage);
|
|
425
444
|
this.logger?.info("Batch processed successfully", {
|
|
426
445
|
consumerName: String(consumerName),
|
|
427
|
-
queueName
|
|
428
|
-
batchSize:
|
|
446
|
+
queueName,
|
|
447
|
+
batchSize: batchCount
|
|
429
448
|
});
|
|
449
|
+
const durationMs = Date.now() - startTime;
|
|
450
|
+
(0, _amqp_contract_core.endSpanSuccess)(span);
|
|
451
|
+
(0, _amqp_contract_core.recordConsumeMetric)(this.telemetry, queueName, String(consumerName), true, durationMs);
|
|
430
452
|
return _swan_io_boxed.Future.value(_swan_io_boxed.Result.Ok(void 0));
|
|
431
453
|
}).flatMapError((handlerError) => {
|
|
432
454
|
this.logger?.error("Error processing batch", {
|
|
433
455
|
consumerName: String(consumerName),
|
|
434
|
-
queueName
|
|
435
|
-
batchSize:
|
|
456
|
+
queueName,
|
|
457
|
+
batchSize: batchCount,
|
|
436
458
|
errorType: handlerError.name,
|
|
437
459
|
error: handlerError.message
|
|
438
460
|
});
|
|
461
|
+
const durationMs = Date.now() - startTime;
|
|
462
|
+
(0, _amqp_contract_core.endSpanError)(span, handlerError);
|
|
463
|
+
(0, _amqp_contract_core.recordConsumeMetric)(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
439
464
|
return this.handleBatchError(handlerError, currentBatch, String(consumerName), consumer);
|
|
440
465
|
}).tap(() => {
|
|
441
466
|
isProcessing = false;
|
|
@@ -450,11 +475,11 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
450
475
|
}, batchTimeout);
|
|
451
476
|
this.batchTimers.set(timerKey, timer);
|
|
452
477
|
};
|
|
453
|
-
return _swan_io_boxed.Future.fromPromise(this.amqpClient.channel.consume(
|
|
478
|
+
return _swan_io_boxed.Future.fromPromise(this.amqpClient.channel.consume(queueName, async (msg) => {
|
|
454
479
|
if (msg === null) {
|
|
455
480
|
this.logger?.warn("Consumer cancelled by server", {
|
|
456
481
|
consumerName: String(consumerName),
|
|
457
|
-
queueName
|
|
482
|
+
queueName
|
|
458
483
|
});
|
|
459
484
|
await processBatch().toPromise();
|
|
460
485
|
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
|
/**
|
|
@@ -361,30 +363,43 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
361
363
|
* Consume messages one at a time
|
|
362
364
|
*/
|
|
363
365
|
consumeSingle(consumerName, consumer, handler) {
|
|
364
|
-
|
|
366
|
+
const queueName = consumer.queue.name;
|
|
367
|
+
return Future.fromPromise(this.amqpClient.channel.consume(queueName, async (msg) => {
|
|
365
368
|
if (msg === null) {
|
|
366
369
|
this.logger?.warn("Consumer cancelled by server", {
|
|
367
370
|
consumerName: String(consumerName),
|
|
368
|
-
queueName
|
|
371
|
+
queueName
|
|
369
372
|
});
|
|
370
373
|
return;
|
|
371
374
|
}
|
|
375
|
+
const startTime = Date.now();
|
|
376
|
+
const span = startConsumeSpan(this.telemetry, queueName, String(consumerName), { "messaging.rabbitmq.message.delivery_tag": msg.fields.deliveryTag });
|
|
372
377
|
await this.parseAndValidateMessage(msg, consumer, consumerName).flatMapOk((validatedMessage) => handler(validatedMessage).flatMapOk(() => {
|
|
373
378
|
this.logger?.info("Message consumed successfully", {
|
|
374
379
|
consumerName: String(consumerName),
|
|
375
|
-
queueName
|
|
380
|
+
queueName
|
|
376
381
|
});
|
|
377
382
|
this.amqpClient.channel.ack(msg);
|
|
383
|
+
const durationMs = Date.now() - startTime;
|
|
384
|
+
endSpanSuccess(span);
|
|
385
|
+
recordConsumeMetric(this.telemetry, queueName, String(consumerName), true, durationMs);
|
|
378
386
|
return Future.value(Result.Ok(void 0));
|
|
379
387
|
}).flatMapError((handlerError) => {
|
|
380
388
|
this.logger?.error("Error processing message", {
|
|
381
389
|
consumerName: String(consumerName),
|
|
382
|
-
queueName
|
|
390
|
+
queueName,
|
|
383
391
|
errorType: handlerError.name,
|
|
384
392
|
error: handlerError.message
|
|
385
393
|
});
|
|
394
|
+
const durationMs = Date.now() - startTime;
|
|
395
|
+
endSpanError(span, handlerError);
|
|
396
|
+
recordConsumeMetric(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
386
397
|
return this.handleError(handlerError, msg, String(consumerName), consumer);
|
|
387
|
-
})).
|
|
398
|
+
})).tapError(() => {
|
|
399
|
+
const durationMs = Date.now() - startTime;
|
|
400
|
+
endSpanError(span, /* @__PURE__ */ new Error("Message validation failed"));
|
|
401
|
+
recordConsumeMetric(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
402
|
+
}).toPromise();
|
|
388
403
|
})).tapOk((reply) => {
|
|
389
404
|
this.consumerTags.add(reply.consumerTag);
|
|
390
405
|
}).mapError((error) => new TechnicalError(`Failed to start consuming for "${String(consumerName)}"`, error)).mapOk(() => void 0);
|
|
@@ -402,6 +417,7 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
402
417
|
const batchSize = options.batchSize;
|
|
403
418
|
const batchTimeout = options.batchTimeout ?? 1e3;
|
|
404
419
|
const timerKey = String(consumerName);
|
|
420
|
+
const queueName = consumer.queue.name;
|
|
405
421
|
let batch = [];
|
|
406
422
|
let isProcessing = false;
|
|
407
423
|
const processBatch = () => {
|
|
@@ -415,27 +431,36 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
415
431
|
this.batchTimers.delete(timerKey);
|
|
416
432
|
}
|
|
417
433
|
const messages = currentBatch.map((item) => item.message);
|
|
434
|
+
const batchCount = currentBatch.length;
|
|
435
|
+
const startTime = Date.now();
|
|
436
|
+
const span = startConsumeSpan(this.telemetry, queueName, String(consumerName), { "amqp.batch.size": batchCount });
|
|
418
437
|
this.logger?.info("Processing batch", {
|
|
419
438
|
consumerName: String(consumerName),
|
|
420
|
-
queueName
|
|
421
|
-
batchSize:
|
|
439
|
+
queueName,
|
|
440
|
+
batchSize: batchCount
|
|
422
441
|
});
|
|
423
442
|
return handler(messages).flatMapOk(() => {
|
|
424
443
|
for (const item of currentBatch) this.amqpClient.channel.ack(item.amqpMessage);
|
|
425
444
|
this.logger?.info("Batch processed successfully", {
|
|
426
445
|
consumerName: String(consumerName),
|
|
427
|
-
queueName
|
|
428
|
-
batchSize:
|
|
446
|
+
queueName,
|
|
447
|
+
batchSize: batchCount
|
|
429
448
|
});
|
|
449
|
+
const durationMs = Date.now() - startTime;
|
|
450
|
+
endSpanSuccess(span);
|
|
451
|
+
recordConsumeMetric(this.telemetry, queueName, String(consumerName), true, durationMs);
|
|
430
452
|
return Future.value(Result.Ok(void 0));
|
|
431
453
|
}).flatMapError((handlerError) => {
|
|
432
454
|
this.logger?.error("Error processing batch", {
|
|
433
455
|
consumerName: String(consumerName),
|
|
434
|
-
queueName
|
|
435
|
-
batchSize:
|
|
456
|
+
queueName,
|
|
457
|
+
batchSize: batchCount,
|
|
436
458
|
errorType: handlerError.name,
|
|
437
459
|
error: handlerError.message
|
|
438
460
|
});
|
|
461
|
+
const durationMs = Date.now() - startTime;
|
|
462
|
+
endSpanError(span, handlerError);
|
|
463
|
+
recordConsumeMetric(this.telemetry, queueName, String(consumerName), false, durationMs);
|
|
439
464
|
return this.handleBatchError(handlerError, currentBatch, String(consumerName), consumer);
|
|
440
465
|
}).tap(() => {
|
|
441
466
|
isProcessing = false;
|
|
@@ -450,11 +475,11 @@ var TypedAmqpWorker = class TypedAmqpWorker {
|
|
|
450
475
|
}, batchTimeout);
|
|
451
476
|
this.batchTimers.set(timerKey, timer);
|
|
452
477
|
};
|
|
453
|
-
return Future.fromPromise(this.amqpClient.channel.consume(
|
|
478
|
+
return Future.fromPromise(this.amqpClient.channel.consume(queueName, async (msg) => {
|
|
454
479
|
if (msg === null) {
|
|
455
480
|
this.logger?.warn("Consumer cancelled by server", {
|
|
456
481
|
consumerName: String(consumerName),
|
|
457
|
-
queueName
|
|
482
|
+
queueName
|
|
458
483
|
});
|
|
459
484
|
await processBatch().toPromise();
|
|
460
485
|
return;
|