@autofleet/rabbit 3.0.1-beta1 → 3.0.1-beta10
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.js +35 -6
- package/package.json +2 -2
- package/src/index.ts +39 -7
package/dist/index.js
CHANGED
|
@@ -126,14 +126,24 @@ class RabbitMq {
|
|
|
126
126
|
static getPublishOptions(customHeaders = {}) {
|
|
127
127
|
const trace = zehut_1.getCurrentPayload();
|
|
128
128
|
const user = trace?.context?.get(consts_1.USER_OBJECT);
|
|
129
|
-
const
|
|
129
|
+
const traceId = trace?.context?.get(consts_1.TRACING_HEADER);
|
|
130
|
+
const outbreakTrace = zehut_1.outbreak.getCurrentContext();
|
|
131
|
+
const obj = Object.fromEntries(trace?.context);
|
|
132
|
+
const jsonString = JSON.stringify(obj);
|
|
133
|
+
logger_1.default.info('getPublishOptions', {
|
|
134
|
+
traceId,
|
|
135
|
+
user,
|
|
136
|
+
traceId2: outbreakTrace?.context?.get(consts_1.TRACING_HEADER),
|
|
137
|
+
traceContextSize: trace?.context?.size,
|
|
138
|
+
jsonString,
|
|
139
|
+
});
|
|
130
140
|
return {
|
|
131
141
|
timestamp: moment_1.default().unix(),
|
|
132
142
|
headers: {
|
|
133
143
|
creationTimestamp: moment_1.default().valueOf(),
|
|
134
144
|
...customHeaders,
|
|
135
145
|
[consts_1.USER_TRACING_HEADER]: user?.id,
|
|
136
|
-
[consts_1.TRACING_HEADER]: outbreakTrace?.context?.get(consts_1.TRACING_HEADER),
|
|
146
|
+
[consts_1.TRACING_HEADER]: traceId || outbreakTrace?.context?.get(consts_1.TRACING_HEADER),
|
|
137
147
|
},
|
|
138
148
|
};
|
|
139
149
|
}
|
|
@@ -343,18 +353,37 @@ class RabbitMq {
|
|
|
343
353
|
const parsedMessage = RabbitMq.parseMsg(msg);
|
|
344
354
|
const releaseLock = await this.lockRedisIfNeeded(parsedMessage, optionsWithDefaults);
|
|
345
355
|
const trace = zehut_1.newTrace(zehut_1.traceTypes.RABBIT);
|
|
346
|
-
|
|
347
|
-
trace?.context?.set(consts_1.TRACING_HEADER, traceId);
|
|
348
|
-
}
|
|
356
|
+
const outbreakTrace = zehut_1.outbreak.newTrace(zehut_1.traceTypes.RABBIT);
|
|
349
357
|
if (userId && enableRabbitTrace) {
|
|
350
358
|
try {
|
|
351
|
-
await
|
|
359
|
+
await Promise.all([
|
|
360
|
+
zehut_1.createOrSetRabbitTrace(trace, userId),
|
|
361
|
+
zehut_1.createOrSetRabbitTrace(outbreakTrace, userId),
|
|
362
|
+
]);
|
|
352
363
|
}
|
|
353
364
|
catch (e) {
|
|
354
365
|
logger_1.default.error('rabbit: failed to setRabbitTrace', { userId, e });
|
|
355
366
|
await this.nack(channel, queue, optionsWithDefaults, { messageTtl: deadMessageTtl }, msg, releaseLock)(msg);
|
|
356
367
|
}
|
|
357
368
|
}
|
|
369
|
+
logger_1.default.info('rabbit consume - first trace', {
|
|
370
|
+
trace,
|
|
371
|
+
outbreakTrace,
|
|
372
|
+
user: trace?.context?.get(consts_1.USER_OBJECT),
|
|
373
|
+
});
|
|
374
|
+
if (traceId) {
|
|
375
|
+
trace?.context?.set(consts_1.TRACING_HEADER, traceId);
|
|
376
|
+
outbreakTrace?.context.set(consts_1.TRACING_HEADER, traceId);
|
|
377
|
+
logger_1.default.info('rabbit consume - second trace', {
|
|
378
|
+
trace,
|
|
379
|
+
outbreakTrace,
|
|
380
|
+
user: trace?.context?.get(consts_1.USER_OBJECT),
|
|
381
|
+
traceId: trace?.context?.get(consts_1.TRACING_HEADER),
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
logger_1.default.info('rabbit consume - third trace', {
|
|
385
|
+
trace: zehut_1.getCurrentPayload(),
|
|
386
|
+
});
|
|
358
387
|
if (auditContext) {
|
|
359
388
|
await auditContext(queue);
|
|
360
389
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@autofleet/rabbit",
|
|
3
|
-
"version": "3.0.1-
|
|
3
|
+
"version": "3.0.1-beta10",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
18
|
"@autofleet/logger": "^1.2.8",
|
|
19
|
-
"@autofleet/zehut": "^3.0.1-
|
|
19
|
+
"@autofleet/zehut": "^3.0.1-beta3",
|
|
20
20
|
"@types/amqplib": "0.8.2",
|
|
21
21
|
"@types/uuid": "^8.3.3",
|
|
22
22
|
"amqp-connection-manager": "4.1.9",
|
package/src/index.ts
CHANGED
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
ConfirmChannel, ConsumeMessage, Options, Replies,
|
|
10
10
|
} from 'amqplib';
|
|
11
11
|
import {
|
|
12
|
-
getCurrentPayload, newTrace, traceTypes, createOrSetRabbitTrace,
|
|
12
|
+
getCurrentPayload, newTrace, traceTypes, createOrSetRabbitTrace, outbreak,
|
|
13
13
|
} from '@autofleet/zehut';
|
|
14
14
|
import logger from './logger';
|
|
15
15
|
import RabbitError from './lib/rabbitError';
|
|
@@ -114,14 +114,24 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
114
114
|
static getPublishOptions(customHeaders: CustomMessageHeaders = {}) {
|
|
115
115
|
const trace = getCurrentPayload();
|
|
116
116
|
const user = trace?.context?.get(USER_OBJECT);
|
|
117
|
-
const
|
|
117
|
+
const traceId = trace?.context?.get(TRACING_HEADER);
|
|
118
|
+
const outbreakTrace = outbreak.getCurrentContext();
|
|
119
|
+
const obj = Object.fromEntries(trace?.context);
|
|
120
|
+
const jsonString = JSON.stringify(obj);
|
|
121
|
+
logger.info('getPublishOptions', {
|
|
122
|
+
traceId,
|
|
123
|
+
user,
|
|
124
|
+
traceId2: outbreakTrace?.context?.get(TRACING_HEADER),
|
|
125
|
+
traceContextSize: trace?.context?.size,
|
|
126
|
+
jsonString,
|
|
127
|
+
});
|
|
118
128
|
return {
|
|
119
129
|
timestamp: moment().unix(),
|
|
120
130
|
headers: {
|
|
121
131
|
creationTimestamp: moment().valueOf(),
|
|
122
132
|
...customHeaders,
|
|
123
133
|
[USER_TRACING_HEADER]: user?.id,
|
|
124
|
-
[TRACING_HEADER]: outbreakTrace?.context?.get(TRACING_HEADER),
|
|
134
|
+
[TRACING_HEADER]: traceId || outbreakTrace?.context?.get(TRACING_HEADER),
|
|
125
135
|
},
|
|
126
136
|
};
|
|
127
137
|
}
|
|
@@ -487,18 +497,40 @@ class RabbitMq implements IAfRabbitMq {
|
|
|
487
497
|
const parsedMessage = RabbitMq.parseMsg(msg);
|
|
488
498
|
const releaseLock = await this.lockRedisIfNeeded(parsedMessage, optionsWithDefaults);
|
|
489
499
|
const trace = newTrace(traceTypes.RABBIT);
|
|
490
|
-
|
|
491
|
-
(trace as any)?.context?.set(TRACING_HEADER, traceId);
|
|
492
|
-
}
|
|
500
|
+
const outbreakTrace = outbreak.newTrace(traceTypes.RABBIT);
|
|
493
501
|
if (userId && enableRabbitTrace) {
|
|
494
502
|
try {
|
|
495
|
-
await
|
|
503
|
+
await Promise.all([
|
|
504
|
+
createOrSetRabbitTrace(trace, userId),
|
|
505
|
+
createOrSetRabbitTrace(outbreakTrace, userId),
|
|
506
|
+
]);
|
|
496
507
|
} catch (e) {
|
|
497
508
|
logger.error('rabbit: failed to setRabbitTrace', { userId, e });
|
|
498
509
|
await this.nack(channel, queue, optionsWithDefaults, { messageTtl: deadMessageTtl }, msg, releaseLock)(msg);
|
|
499
510
|
}
|
|
500
511
|
}
|
|
501
512
|
|
|
513
|
+
logger.info('rabbit consume - first trace', {
|
|
514
|
+
trace,
|
|
515
|
+
outbreakTrace,
|
|
516
|
+
user: trace?.context?.get(USER_OBJECT),
|
|
517
|
+
});
|
|
518
|
+
|
|
519
|
+
if (traceId) {
|
|
520
|
+
(trace as any)?.context?.set(TRACING_HEADER, traceId);
|
|
521
|
+
(outbreakTrace as any)?.context.set(TRACING_HEADER, traceId);
|
|
522
|
+
logger.info('rabbit consume - second trace', {
|
|
523
|
+
trace,
|
|
524
|
+
outbreakTrace,
|
|
525
|
+
user: trace?.context?.get(USER_OBJECT),
|
|
526
|
+
traceId: trace?.context?.get(TRACING_HEADER),
|
|
527
|
+
// traceId2: outbreakTrace?.context?.get(TRACING_HEADER),
|
|
528
|
+
});
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
logger.info('rabbit consume - third trace', {
|
|
532
|
+
trace: getCurrentPayload(),
|
|
533
|
+
});
|
|
502
534
|
if (auditContext) {
|
|
503
535
|
await auditContext(queue);
|
|
504
536
|
}
|