@rsdk/nats.transport 5.12.0-next.4 → 5.12.0-next.6
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/jetstream/nats-jetstream.headers.js +7 -2
- package/dist/jetstream/nats-jetstream.headers.js.map +1 -1
- package/dist/jetstream/nats-jetstream.otel.d.ts +29 -0
- package/dist/jetstream/nats-jetstream.otel.js +77 -0
- package/dist/jetstream/nats-jetstream.otel.js.map +1 -0
- package/dist/jetstream/server.js +22 -14
- package/dist/jetstream/server.js.map +1 -1
- package/package.json +8 -3
- package/src/jetstream/nats-jetstream.headers.ts +9 -2
- package/src/jetstream/nats-jetstream.otel.ts +88 -0
- package/src/jetstream/server.ts +25 -14
|
@@ -13,11 +13,16 @@ class NatsJetstreamHeaders {
|
|
|
13
13
|
if (!server_1.NatsJetStreamServer.isNatsContext(natsCtx)) {
|
|
14
14
|
throw new core_1.InputException('Unexpected call with non Nats ArgumentHost');
|
|
15
15
|
}
|
|
16
|
-
|
|
16
|
+
//@ts-expect-error Случился подвох с типами со стороны библиотеки.
|
|
17
|
+
// На самом деле в natsCtx.message.headers лежат не только хедеры, но и прочий мусор.
|
|
18
|
+
// Кроме того, в natsCtx.message.headers?.headers лежит Map, поэтому такой костыль.
|
|
19
|
+
const natsHeaders = natsCtx.message.headers?.headers;
|
|
20
|
+
const natsHeadersArray = natsHeaders ? [...natsHeaders] : [];
|
|
21
|
+
this.normalizedHeaders = Object.fromEntries(natsHeadersArray.map(([k, v]) => [
|
|
17
22
|
Array.isArray(k)
|
|
18
23
|
? k[0].toString().toLowerCase()
|
|
19
24
|
: k.toString().toLowerCase(),
|
|
20
|
-
v,
|
|
25
|
+
Array.isArray(v) ? v[0] : v,
|
|
21
26
|
]));
|
|
22
27
|
}
|
|
23
28
|
get(key) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nats-jetstream.headers.js","sourceRoot":"","sources":["../../src/jetstream/nats-jetstream.headers.ts"],"names":[],"mappings":";;;AAEA,qCAA4C;AAE5C,qCAA+C;AAE/C;;GAEG;AACH,MAAa,oBAAoB;IACd,iBAAiB,CAAyB;IAE3D,YAAY,GAAqB;QAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,CAAC,4BAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,qBAAc,CAAC,4CAA4C,CAAC,CAAC;QACzE,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"nats-jetstream.headers.js","sourceRoot":"","sources":["../../src/jetstream/nats-jetstream.headers.ts"],"names":[],"mappings":";;;AAEA,qCAA4C;AAE5C,qCAA+C;AAE/C;;GAEG;AACH,MAAa,oBAAoB;IACd,iBAAiB,CAAyB;IAE3D,YAAY,GAAqB;QAC/B,MAAM,OAAO,GAAG,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAErC,IAAI,CAAC,4BAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,MAAM,IAAI,qBAAc,CAAC,4CAA4C,CAAC,CAAC;QACzE,CAAC;QAED,kEAAkE;QAClE,qFAAqF;QACrF,mFAAmF;QAEnF,MAAM,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC;QACrD,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAE7D,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,CACzC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;YAC/B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;gBACd,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;gBAC/B,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,WAAW,EAAE;YAC9B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5B,CAAC,CACH,CAAC;IACJ,CAAC;IAED,GAAG,CAAC,GAAW;QACb,OAAO,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;IACnD,CAAC;CACF;AA9BD,oDA8BC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Context, Span } from '@opentelemetry/api';
|
|
2
|
+
import type { MsgHdrs } from 'nats';
|
|
3
|
+
/**
|
|
4
|
+
* Инструментация OpenTelemetry для NATS JetStream.
|
|
5
|
+
* Graceful degradation: если @opentelemetry/api не установлен — ничего не делает.
|
|
6
|
+
*/
|
|
7
|
+
export declare class NatsJetStreamOtelInstrumentation {
|
|
8
|
+
private readonly api;
|
|
9
|
+
constructor();
|
|
10
|
+
/**
|
|
11
|
+
* Извлекает otel Context из NATS-заголовков (W3C traceparent/tracestate).
|
|
12
|
+
* Возвращает ROOT_CONTEXT если otel недоступен или заголовков нет.
|
|
13
|
+
*/
|
|
14
|
+
extractContext(headers: MsgHdrs | undefined): Context;
|
|
15
|
+
/**
|
|
16
|
+
* Создаёт дочерний SpanKind.CONSUMER спан с именем `nats.consume <subject>`.
|
|
17
|
+
* Возвращает null если otel недоступен.
|
|
18
|
+
*/
|
|
19
|
+
startConsumerSpan(subject: string, parentCtx: Context): Span | null;
|
|
20
|
+
/**
|
|
21
|
+
* Запускает callback внутри otel-контекста с активным спаном.
|
|
22
|
+
* Если otel недоступен или span равен null — вызывает callback напрямую.
|
|
23
|
+
*/
|
|
24
|
+
runInContext<T>(parentCtx: Context, span: Span | null, callback: () => T): T;
|
|
25
|
+
/**
|
|
26
|
+
* Завершает спан. При наличии ошибки — записывает её и устанавливает статус ERROR.
|
|
27
|
+
*/
|
|
28
|
+
endSpan(span: Span | null, error?: unknown): void;
|
|
29
|
+
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NatsJetStreamOtelInstrumentation = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Инструментация OpenTelemetry для NATS JetStream.
|
|
6
|
+
* Graceful degradation: если @opentelemetry/api не установлен — ничего не делает.
|
|
7
|
+
*/
|
|
8
|
+
class NatsJetStreamOtelInstrumentation {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
+
api;
|
|
11
|
+
constructor() {
|
|
12
|
+
try {
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
14
|
+
this.api = require('@opentelemetry/api');
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
this.api = null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Извлекает otel Context из NATS-заголовков (W3C traceparent/tracestate).
|
|
22
|
+
* Возвращает ROOT_CONTEXT если otel недоступен или заголовков нет.
|
|
23
|
+
*/
|
|
24
|
+
extractContext(headers) {
|
|
25
|
+
if (!this.api || !headers) {
|
|
26
|
+
return this.api?.ROOT_CONTEXT ?? {};
|
|
27
|
+
}
|
|
28
|
+
const { propagation, ROOT_CONTEXT } = this.api;
|
|
29
|
+
return propagation.extract(ROOT_CONTEXT, headers, {
|
|
30
|
+
get(carrier, key) {
|
|
31
|
+
return carrier.get(key) || undefined;
|
|
32
|
+
},
|
|
33
|
+
keys(carrier) {
|
|
34
|
+
return [...carrier.keys()];
|
|
35
|
+
},
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Создаёт дочерний SpanKind.CONSUMER спан с именем `nats.consume <subject>`.
|
|
40
|
+
* Возвращает null если otel недоступен.
|
|
41
|
+
*/
|
|
42
|
+
startConsumerSpan(subject, parentCtx) {
|
|
43
|
+
if (!this.api)
|
|
44
|
+
return null;
|
|
45
|
+
const { trace, SpanKind } = this.api;
|
|
46
|
+
const tracer = trace.getTracer('rsdk:nats.transport');
|
|
47
|
+
return tracer.startSpan(`nats.consume ${subject}`, { kind: SpanKind.CONSUMER }, parentCtx);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Запускает callback внутри otel-контекста с активным спаном.
|
|
51
|
+
* Если otel недоступен или span равен null — вызывает callback напрямую.
|
|
52
|
+
*/
|
|
53
|
+
runInContext(parentCtx, span, callback) {
|
|
54
|
+
if (!this.api || !span)
|
|
55
|
+
return callback();
|
|
56
|
+
const { context, trace } = this.api;
|
|
57
|
+
return context.with(trace.setSpan(parentCtx, span), callback);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Завершает спан. При наличии ошибки — записывает её и устанавливает статус ERROR.
|
|
61
|
+
*/
|
|
62
|
+
endSpan(span, error) {
|
|
63
|
+
if (!span || !this.api)
|
|
64
|
+
return;
|
|
65
|
+
const { SpanStatusCode } = this.api;
|
|
66
|
+
if (error instanceof Error) {
|
|
67
|
+
span.recordException(error);
|
|
68
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
span.setStatus({ code: SpanStatusCode.OK });
|
|
72
|
+
}
|
|
73
|
+
span.end();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
exports.NatsJetStreamOtelInstrumentation = NatsJetStreamOtelInstrumentation;
|
|
77
|
+
//# sourceMappingURL=nats-jetstream.otel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nats-jetstream.otel.js","sourceRoot":"","sources":["../../src/jetstream/nats-jetstream.otel.ts"],"names":[],"mappings":";;;AAGA;;;GAGG;AACH,MAAa,gCAAgC;IAC3C,8DAA8D;IAC7C,GAAG,CAA6B;IAEjD;QACE,IAAI,CAAC;YACH,iEAAiE;YACjE,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC;QAClB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,cAAc,CAAC,OAA4B;QACzC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,GAAG,EAAE,YAAY,IAAK,EAAc,CAAC;QACnD,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAE/C,OAAO,WAAW,CAAC,OAAO,CAAC,YAAY,EAAE,OAAO,EAAE;YAChD,GAAG,CAAC,OAAgB,EAAE,GAAW;gBAC/B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,SAAS,CAAC;YACvC,CAAC;YACD,IAAI,CAAC,OAAgB;gBACnB,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YAC7B,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,iBAAiB,CAAC,OAAe,EAAE,SAAkB;QACnD,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAEtD,OAAO,MAAM,CAAC,SAAS,CACrB,gBAAgB,OAAO,EAAE,EACzB,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,EAAE,EAC3B,SAAS,CACV,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,YAAY,CAAI,SAAkB,EAAE,IAAiB,EAAE,QAAiB;QACtE,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI;YAAE,OAAO,QAAQ,EAAE,CAAC;QAE1C,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAEpC,OAAO,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,QAAQ,CAAC,CAAC;IAChE,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,IAAiB,EAAE,KAAe;QACxC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG;YAAE,OAAO;QAE/B,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;QAEpC,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,CAAC;IACb,CAAC;CACF;AAhFD,4EAgFC"}
|
package/dist/jetstream/server.js
CHANGED
|
@@ -12,6 +12,7 @@ const lodash_1 = require("lodash");
|
|
|
12
12
|
const nats_1 = require("nats");
|
|
13
13
|
const rxjs_1 = require("rxjs");
|
|
14
14
|
const events_deserializer_1 = require("../events.deserializer");
|
|
15
|
+
const nats_jetstream_otel_1 = require("./nats-jetstream.otel");
|
|
15
16
|
/**
|
|
16
17
|
* Класс, реализующий сервер NATS JetStream.
|
|
17
18
|
*/
|
|
@@ -327,29 +328,36 @@ class NatsJetStreamServer extends microservices_1.Server {
|
|
|
327
328
|
*/
|
|
328
329
|
async handleEventMessages(consumer, mapping, consumerName) {
|
|
329
330
|
const msgs = await consumer.consume();
|
|
331
|
+
const otel = new nats_jetstream_otel_1.NatsJetStreamOtelInstrumentation();
|
|
330
332
|
/**
|
|
331
333
|
* Слушаем все сообщения консьюмера
|
|
332
334
|
* @type {Promise<void>}
|
|
333
335
|
*/
|
|
334
336
|
const done = (async () => {
|
|
335
337
|
for await (const msg of msgs) {
|
|
338
|
+
const parentCtx = otel.extractContext(msg.headers);
|
|
339
|
+
const span = otel.startConsumerSpan(msg.subject, parentCtx);
|
|
336
340
|
try {
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
341
|
+
await otel.runInContext(parentCtx, span, async () => {
|
|
342
|
+
const { data, pattern } = this.deserializer.deserialize(msg);
|
|
343
|
+
const context = new nestjs_nats_jetstream_transport_1.NatsJetStreamContext([msg]);
|
|
344
|
+
const contract = mapping.get(this.getTypePart(pattern));
|
|
345
|
+
if (!contract) {
|
|
346
|
+
throw new core_1.NotFoundException(`Unknown ${events_common_1.X_TYPE_HEADER} header`);
|
|
347
|
+
}
|
|
348
|
+
const resultOrStream = await contract.handler(data, context);
|
|
349
|
+
if ((0, rxjs_1.isObservable)(resultOrStream)) {
|
|
350
|
+
const connectableSource = (0, rxjs_1.connectable)(resultOrStream, {
|
|
351
|
+
connector: () => new rxjs_1.Subject(),
|
|
352
|
+
resetOnDisconnect: false,
|
|
353
|
+
});
|
|
354
|
+
connectableSource.connect();
|
|
355
|
+
}
|
|
356
|
+
});
|
|
357
|
+
otel.endSpan(span);
|
|
351
358
|
}
|
|
352
359
|
catch (error) {
|
|
360
|
+
otel.endSpan(span, error);
|
|
353
361
|
this.logger.error(error.message, error.stack);
|
|
354
362
|
// specifies that you failed to process the server and instructs
|
|
355
363
|
// the server to not send it again (to any consumer)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/jetstream/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/jetstream/server.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rsdk/nats.transport",
|
|
3
|
-
"version": "5.12.0-next.
|
|
3
|
+
"version": "5.12.0-next.6",
|
|
4
4
|
"description": "Nats NestJS Transport",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"license": "Apache License 2.0",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
"dependencies": {
|
|
14
14
|
"@nestjs-plugins/nestjs-nats-jetstream-transport": "^2.2.6",
|
|
15
15
|
"lodash": "^4.17.21",
|
|
16
|
-
"nats": "~2.
|
|
16
|
+
"nats": "~2.29.3"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
19
|
"@nestjs/common": "^10.4.20",
|
|
@@ -36,6 +36,11 @@
|
|
|
36
36
|
"reflect-metadata": "^0.1.12 || ^0.2.0",
|
|
37
37
|
"rxjs": "^7.1.0"
|
|
38
38
|
},
|
|
39
|
+
"peerDependenciesMeta": {
|
|
40
|
+
"@opentelemetry/api": {
|
|
41
|
+
"optional": true
|
|
42
|
+
}
|
|
43
|
+
},
|
|
39
44
|
"nx": {},
|
|
40
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "32103725bddbe5e7e99074ba40b5032dc14cf60c"
|
|
41
46
|
}
|
|
@@ -17,12 +17,19 @@ export class NatsJetstreamHeaders implements GenericHeaders {
|
|
|
17
17
|
throw new InputException('Unexpected call with non Nats ArgumentHost');
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
//@ts-expect-error Случился подвох с типами со стороны библиотеки.
|
|
21
|
+
// На самом деле в natsCtx.message.headers лежат не только хедеры, но и прочий мусор.
|
|
22
|
+
// Кроме того, в natsCtx.message.headers?.headers лежит Map, поэтому такой костыль.
|
|
23
|
+
|
|
24
|
+
const natsHeaders = natsCtx.message.headers?.headers;
|
|
25
|
+
const natsHeadersArray = natsHeaders ? [...natsHeaders] : [];
|
|
26
|
+
|
|
20
27
|
this.normalizedHeaders = Object.fromEntries(
|
|
21
|
-
|
|
28
|
+
natsHeadersArray.map(([k, v]) => [
|
|
22
29
|
Array.isArray(k)
|
|
23
30
|
? k[0].toString().toLowerCase()
|
|
24
31
|
: k.toString().toLowerCase(),
|
|
25
|
-
v,
|
|
32
|
+
Array.isArray(v) ? v[0] : v,
|
|
26
33
|
]),
|
|
27
34
|
);
|
|
28
35
|
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import type { Context, Span } from '@opentelemetry/api';
|
|
2
|
+
import type { MsgHdrs } from 'nats';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Инструментация OpenTelemetry для NATS JetStream.
|
|
6
|
+
* Graceful degradation: если @opentelemetry/api не установлен — ничего не делает.
|
|
7
|
+
*/
|
|
8
|
+
export class NatsJetStreamOtelInstrumentation {
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
+
private readonly api: Record<string, any> | null;
|
|
11
|
+
|
|
12
|
+
constructor() {
|
|
13
|
+
try {
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
15
|
+
this.api = require('@opentelemetry/api');
|
|
16
|
+
} catch {
|
|
17
|
+
this.api = null;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Извлекает otel Context из NATS-заголовков (W3C traceparent/tracestate).
|
|
23
|
+
* Возвращает ROOT_CONTEXT если otel недоступен или заголовков нет.
|
|
24
|
+
*/
|
|
25
|
+
extractContext(headers: MsgHdrs | undefined): Context {
|
|
26
|
+
if (!this.api || !headers) {
|
|
27
|
+
return this.api?.ROOT_CONTEXT ?? ({} as Context);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
const { propagation, ROOT_CONTEXT } = this.api;
|
|
31
|
+
|
|
32
|
+
return propagation.extract(ROOT_CONTEXT, headers, {
|
|
33
|
+
get(carrier: MsgHdrs, key: string): string | undefined {
|
|
34
|
+
return carrier.get(key) || undefined;
|
|
35
|
+
},
|
|
36
|
+
keys(carrier: MsgHdrs): string[] {
|
|
37
|
+
return [...carrier.keys()];
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Создаёт дочерний SpanKind.CONSUMER спан с именем `nats.consume <subject>`.
|
|
44
|
+
* Возвращает null если otel недоступен.
|
|
45
|
+
*/
|
|
46
|
+
startConsumerSpan(subject: string, parentCtx: Context): Span | null {
|
|
47
|
+
if (!this.api) return null;
|
|
48
|
+
|
|
49
|
+
const { trace, SpanKind } = this.api;
|
|
50
|
+
const tracer = trace.getTracer('rsdk:nats.transport');
|
|
51
|
+
|
|
52
|
+
return tracer.startSpan(
|
|
53
|
+
`nats.consume ${subject}`,
|
|
54
|
+
{ kind: SpanKind.CONSUMER },
|
|
55
|
+
parentCtx,
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Запускает callback внутри otel-контекста с активным спаном.
|
|
61
|
+
* Если otel недоступен или span равен null — вызывает callback напрямую.
|
|
62
|
+
*/
|
|
63
|
+
runInContext<T>(parentCtx: Context, span: Span | null, callback: () => T): T {
|
|
64
|
+
if (!this.api || !span) return callback();
|
|
65
|
+
|
|
66
|
+
const { context, trace } = this.api;
|
|
67
|
+
|
|
68
|
+
return context.with(trace.setSpan(parentCtx, span), callback);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Завершает спан. При наличии ошибки — записывает её и устанавливает статус ERROR.
|
|
73
|
+
*/
|
|
74
|
+
endSpan(span: Span | null, error?: unknown): void {
|
|
75
|
+
if (!span || !this.api) return;
|
|
76
|
+
|
|
77
|
+
const { SpanStatusCode } = this.api;
|
|
78
|
+
|
|
79
|
+
if (error instanceof Error) {
|
|
80
|
+
span.recordException(error);
|
|
81
|
+
span.setStatus({ code: SpanStatusCode.ERROR, message: error.message });
|
|
82
|
+
} else {
|
|
83
|
+
span.setStatus({ code: SpanStatusCode.OK });
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
span.end();
|
|
87
|
+
}
|
|
88
|
+
}
|
package/src/jetstream/server.ts
CHANGED
|
@@ -34,6 +34,7 @@ import { connectable, isObservable, Subject } from 'rxjs';
|
|
|
34
34
|
|
|
35
35
|
import { EventsDeserializer } from '../events.deserializer';
|
|
36
36
|
|
|
37
|
+
import { NatsJetStreamOtelInstrumentation } from './nats-jetstream.otel';
|
|
37
38
|
import type {
|
|
38
39
|
ConsumerInfo,
|
|
39
40
|
ConsumersMap,
|
|
@@ -566,6 +567,7 @@ export class NatsJetStreamServer
|
|
|
566
567
|
consumerName: string,
|
|
567
568
|
): Promise<void> {
|
|
568
569
|
const msgs = await consumer.consume();
|
|
570
|
+
const otel = new NatsJetStreamOtelInstrumentation();
|
|
569
571
|
|
|
570
572
|
/**
|
|
571
573
|
* Слушаем все сообщения консьюмера
|
|
@@ -573,25 +575,34 @@ export class NatsJetStreamServer
|
|
|
573
575
|
*/
|
|
574
576
|
const done = (async (): Promise<void> => {
|
|
575
577
|
for await (const msg of msgs) {
|
|
578
|
+
const parentCtx = otel.extractContext(msg.headers);
|
|
579
|
+
const span = otel.startConsumerSpan(msg.subject, parentCtx);
|
|
580
|
+
|
|
576
581
|
try {
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
582
|
+
await otel.runInContext(parentCtx, span, async () => {
|
|
583
|
+
const { data, pattern } = this.deserializer.deserialize(msg);
|
|
584
|
+
const context = new NatsJetStreamContext([msg]);
|
|
585
|
+
const contract = mapping.get(this.getTypePart(pattern));
|
|
580
586
|
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
587
|
+
if (!contract) {
|
|
588
|
+
throw new NotFoundException(`Unknown ${X_TYPE_HEADER} header`);
|
|
589
|
+
}
|
|
584
590
|
|
|
585
|
-
|
|
586
|
-
if (isObservable(resultOrStream)) {
|
|
587
|
-
const connectableSource = connectable(resultOrStream, {
|
|
588
|
-
connector: () => new Subject(),
|
|
589
|
-
resetOnDisconnect: false,
|
|
590
|
-
});
|
|
591
|
+
const resultOrStream = await contract.handler(data, context);
|
|
591
592
|
|
|
592
|
-
|
|
593
|
-
|
|
593
|
+
if (isObservable(resultOrStream)) {
|
|
594
|
+
const connectableSource = connectable(resultOrStream, {
|
|
595
|
+
connector: () => new Subject(),
|
|
596
|
+
resetOnDisconnect: false,
|
|
597
|
+
});
|
|
598
|
+
|
|
599
|
+
connectableSource.connect();
|
|
600
|
+
}
|
|
601
|
+
});
|
|
602
|
+
|
|
603
|
+
otel.endSpan(span);
|
|
594
604
|
} catch (error: any) {
|
|
605
|
+
otel.endSpan(span, error);
|
|
595
606
|
this.logger.error(error.message, error.stack);
|
|
596
607
|
|
|
597
608
|
// specifies that you failed to process the server and instructs
|