@rsdk/core 4.2.0-next.0 → 4.2.0-next.2
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/CHANGELOG.md +10 -0
- package/dist/index.d.ts +2 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/platform.context.js +5 -5
- package/dist/platform.context.js.map +1 -1
- package/dist/platform.module.js +6 -1
- package/dist/platform.module.js.map +1 -1
- package/dist/tracing/auto-instrumentations.config.js +2 -3
- package/dist/tracing/auto-instrumentations.config.js.map +1 -1
- package/dist/tracing/grpc.headers.d.ts +11 -0
- package/dist/tracing/grpc.headers.js +24 -0
- package/dist/tracing/grpc.headers.js.map +1 -0
- package/dist/tracing/http.headers.d.ts +11 -0
- package/dist/tracing/http.headers.js +22 -0
- package/dist/tracing/http.headers.js.map +1 -0
- package/dist/tracing/index.d.ts +0 -1
- package/dist/tracing/index.js +0 -1
- package/dist/tracing/index.js.map +1 -1
- package/dist/tracing/open-telemetry.interceptor.d.ts +5 -0
- package/dist/tracing/open-telemetry.interceptor.js +83 -0
- package/dist/tracing/open-telemetry.interceptor.js.map +1 -0
- package/dist/tracing/request-metadata.module.js +1 -5
- package/dist/tracing/request-metadata.module.js.map +1 -1
- package/dist/tracing/services/instrumentation.service.d.ts +0 -1
- package/dist/tracing/services/instrumentation.service.js +0 -7
- package/dist/tracing/services/instrumentation.service.js.map +1 -1
- package/dist/tracing/services/request-id.provider.d.ts +11 -0
- package/dist/tracing/services/request-id.provider.js +13 -0
- package/dist/tracing/services/request-id.provider.js.map +1 -0
- package/dist/tracing/services/trace.injector.d.ts +4 -4
- package/dist/tracing/services/trace.injector.js +1 -132
- package/dist/tracing/services/trace.injector.js.map +1 -1
- package/dist/tracing/tracing.interceptor.d.ts +6 -5
- package/dist/tracing/tracing.interceptor.js +92 -7
- package/dist/tracing/tracing.interceptor.js.map +1 -1
- package/dist/tracing/tracing.module.d.ts +2 -2
- package/dist/tracing/tracing.module.js +8 -9
- package/dist/tracing/tracing.module.js.map +1 -1
- package/package.json +11 -10
- package/src/index.ts +1 -3
- package/src/platform.context.ts +5 -5
- package/src/platform.module.ts +7 -1
- package/src/tracing/auto-instrumentations.config.ts +2 -3
- package/src/tracing/grpc.headers.ts +29 -0
- package/src/tracing/http.headers.ts +32 -0
- package/src/tracing/index.ts +0 -1
- package/src/tracing/open-telemetry.interceptor.ts +114 -0
- package/src/tracing/request-metadata.module.ts +1 -6
- package/src/tracing/services/instrumentation.service.ts +0 -11
- package/src/tracing/services/request-id.provider.ts +21 -0
- package/src/tracing/services/trace.injector.ts +4 -170
- package/src/tracing/tracing.interceptor.ts +131 -5
- package/src/tracing/tracing.module.ts +10 -12
- package/dist/tracing/services/request-metadata.injector.d.ts +0 -6
- package/dist/tracing/services/request-metadata.injector.js +0 -123
- package/dist/tracing/services/request-metadata.injector.js.map +0 -1
- package/dist/tracing/services/request-metadata.storage.d.ts +0 -32
- package/dist/tracing/services/request-metadata.storage.js +0 -64
- package/dist/tracing/services/request-metadata.storage.js.map +0 -1
- package/src/tracing/services/request-metadata.injector.ts +0 -157
- package/src/tracing/services/request-metadata.storage.ts +0 -69
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [4.2.0-next.2](https://github.com/R-Vision/rsdk/compare/v4.2.0-next.1...v4.2.0-next.2) (2024-02-02)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @rsdk/core
|
|
9
|
+
|
|
10
|
+
## [4.2.0-next.1](https://github.com/R-Vision/rsdk/compare/v4.2.0-next.0...v4.2.0-next.1) (2024-02-02)
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
* rework work with async context ([#201](https://github.com/R-Vision/rsdk/issues/201)) ([26de1a8](https://github.com/R-Vision/rsdk/commit/26de1a814692bcd082c2f1aaedad1215ec0df1a0))
|
|
15
|
+
|
|
6
16
|
## [4.2.0-next.0](https://github.com/R-Vision/rsdk/compare/v4.1.0...v4.2.0-next.0) (2024-02-02)
|
|
7
17
|
|
|
8
18
|
### Features
|
package/dist/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { APP_SCOPE } from './app-metadata/app-metadata.const';
|
|
|
3
3
|
export { Manifest } from './manifest/manifest';
|
|
4
4
|
export { ProtocolDetector } from './transport/protocol.detector';
|
|
5
5
|
export { X_REQUEST_ID } from './tracing/constants';
|
|
6
|
-
export {
|
|
6
|
+
export { TracingModule, saveAsyncHooksContext, createSpan, ActiveSpanModule, ActiveSpanStorage, Span, } from './tracing';
|
|
7
7
|
export { FileSystemCheckOptions, FileSystemIndicator, PingCheckOptions, PingIndicator, } from './health/indicators.abstract';
|
|
8
8
|
export { HealthChecksService } from './health/health.service';
|
|
9
9
|
export { CheckSummary } from './health/types';
|
|
@@ -24,3 +24,4 @@ export * from './app-metadata/decorators';
|
|
|
24
24
|
export * from './app-metadata/app-metadata.const';
|
|
25
25
|
export { getTransportId } from './transport/get-transport-id';
|
|
26
26
|
export { X_B3_PARENT_SPAN_ID, X_B3_SPAN_ID, X_B3_TRACE_ID, } from '@opentelemetry/propagator-b3';
|
|
27
|
+
export { RequestIdProvider } from './tracing/services/request-id.provider';
|
package/dist/index.js
CHANGED
|
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.X_B3_TRACE_ID = exports.X_B3_SPAN_ID = exports.X_B3_PARENT_SPAN_ID = exports.getTransportId = exports.PlatformApp = exports.register = exports.Summary = exports.MetricsModule = exports.Metric = exports.Histogram = exports.Gauge = exports.Counter = exports.InjectLogger = exports.PlatformContext = exports.ConfigTag = exports.CheckResult = exports.Indicator = exports.getLoggerToken = exports.HealthChecksService = exports.PingIndicator = exports.FileSystemIndicator = exports.Span = exports.ActiveSpanStorage = exports.ActiveSpanModule = exports.createSpan = exports.saveAsyncHooksContext = exports.TracingModule = exports.
|
|
17
|
+
exports.RequestIdProvider = exports.X_B3_TRACE_ID = exports.X_B3_SPAN_ID = exports.X_B3_PARENT_SPAN_ID = exports.getTransportId = exports.PlatformApp = exports.register = exports.Summary = exports.MetricsModule = exports.Metric = exports.Histogram = exports.Gauge = exports.Counter = exports.InjectLogger = exports.PlatformContext = exports.ConfigTag = exports.CheckResult = exports.Indicator = exports.getLoggerToken = exports.HealthChecksService = exports.PingIndicator = exports.FileSystemIndicator = exports.Span = exports.ActiveSpanStorage = exports.ActiveSpanModule = exports.createSpan = exports.saveAsyncHooksContext = exports.TracingModule = exports.X_REQUEST_ID = exports.ProtocolDetector = exports.Manifest = exports.APP_SCOPE = void 0;
|
|
18
18
|
require("./unhandled-rejection.handler");
|
|
19
19
|
var app_metadata_const_1 = require("./app-metadata/app-metadata.const");
|
|
20
20
|
Object.defineProperty(exports, "APP_SCOPE", { enumerable: true, get: function () { return app_metadata_const_1.APP_SCOPE; } });
|
|
@@ -25,7 +25,6 @@ Object.defineProperty(exports, "ProtocolDetector", { enumerable: true, get: func
|
|
|
25
25
|
var constants_1 = require("./tracing/constants");
|
|
26
26
|
Object.defineProperty(exports, "X_REQUEST_ID", { enumerable: true, get: function () { return constants_1.X_REQUEST_ID; } });
|
|
27
27
|
var tracing_1 = require("./tracing");
|
|
28
|
-
Object.defineProperty(exports, "RequestMetadataStorage", { enumerable: true, get: function () { return tracing_1.RequestMetadataStorage; } });
|
|
29
28
|
Object.defineProperty(exports, "TracingModule", { enumerable: true, get: function () { return tracing_1.TracingModule; } });
|
|
30
29
|
Object.defineProperty(exports, "saveAsyncHooksContext", { enumerable: true, get: function () { return tracing_1.saveAsyncHooksContext; } });
|
|
31
30
|
Object.defineProperty(exports, "createSpan", { enumerable: true, get: function () { return tracing_1.createSpan; } });
|
|
@@ -71,4 +70,6 @@ var propagator_b3_1 = require("@opentelemetry/propagator-b3");
|
|
|
71
70
|
Object.defineProperty(exports, "X_B3_PARENT_SPAN_ID", { enumerable: true, get: function () { return propagator_b3_1.X_B3_PARENT_SPAN_ID; } });
|
|
72
71
|
Object.defineProperty(exports, "X_B3_SPAN_ID", { enumerable: true, get: function () { return propagator_b3_1.X_B3_SPAN_ID; } });
|
|
73
72
|
Object.defineProperty(exports, "X_B3_TRACE_ID", { enumerable: true, get: function () { return propagator_b3_1.X_B3_TRACE_ID; } });
|
|
73
|
+
var request_id_provider_1 = require("./tracing/services/request-id.provider");
|
|
74
|
+
Object.defineProperty(exports, "RequestIdProvider", { enumerable: true, get: function () { return request_id_provider_1.RequestIdProvider; } });
|
|
74
75
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAuC;AAEvC,wEAA8D;AAArD,+GAAA,SAAS,OAAA;AAElB,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,mEAAiE;AAAxD,qHAAA,gBAAgB,OAAA;AAEzB,iDAAmD;AAA1C,yGAAA,YAAY,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,yCAAuC;AAEvC,wEAA8D;AAArD,+GAAA,SAAS,OAAA;AAElB,gDAA+C;AAAtC,oGAAA,QAAQ,OAAA;AAEjB,mEAAiE;AAAxD,qHAAA,gBAAgB,OAAA;AAEzB,iDAAmD;AAA1C,yGAAA,YAAY,OAAA;AACrB,qCAOmB;AANjB,wGAAA,aAAa,OAAA;AACb,gHAAA,qBAAqB,OAAA;AACrB,qGAAA,UAAU,OAAA;AACV,2GAAA,gBAAgB,OAAA;AAChB,4GAAA,iBAAiB,OAAA;AACjB,+FAAA,IAAI,OAAA;AAGN,oEAKsC;AAHpC,0HAAA,mBAAmB,OAAA;AAEnB,oHAAA,aAAa,OAAA;AAGf,0DAA8D;AAArD,qHAAA,mBAAmB,OAAA;AAI5B,6CAAmD;AAA1C,yGAAA,cAAc,OAAA;AAEvB,6EAAkE;AAAzD,gHAAA,SAAS,OAAA;AAIlB,4CAA+C;AAAtC,sGAAA,WAAW,OAAA;AAEpB,sDAAkD;AAAzC,yGAAA,SAAS,OAAA;AAElB,uDAAqD;AAA5C,mHAAA,eAAe,OAAA;AAExB,2CAAyB;AAEzB,+CAA6B;AAE7B,wDAAsC;AAEtC,qCAAyC;AAAhC,uGAAA,YAAY,OAAA;AAErB,qCASmB;AAPjB,kGAAA,OAAO,OAAA;AACP,gGAAA,KAAK,OAAA;AACL,oGAAA,SAAS,OAAA;AACT,iGAAA,MAAM,OAAA;AACN,wGAAA,aAAa,OAAA;AACb,kGAAA,OAAO,OAAA;AACP,mGAAA,QAAQ,OAAA;AAGV,mDAAiD;AAAxC,2GAAA,WAAW,OAAA;AAEpB,0CAAwB;AAExB,4DAA0C;AAE1C,oEAAkD;AAClD,iEAA8D;AAArD,kHAAA,cAAc,OAAA;AAEvB,8DAIsC;AAHpC,oHAAA,mBAAmB,OAAA;AACnB,6GAAA,YAAY,OAAA;AACZ,8GAAA,aAAa,OAAA;AAEf,8EAA2E;AAAlE,wHAAA,iBAAiB,OAAA"}
|
package/dist/platform.context.js
CHANGED
|
@@ -48,16 +48,16 @@ class PlatformContext {
|
|
|
48
48
|
const manifestData = manifest_1.Manifest.getData(this.options.manifestPath);
|
|
49
49
|
const { name, description, version } = manifestData;
|
|
50
50
|
const appName = this.strictnessOptions?.forceAppName ?? name;
|
|
51
|
+
const regexrResult = app_name_const_1.APP_NAME_PATTERN.exec(name);
|
|
52
|
+
const appScope = regexrResult?.[1] ?? 'test-scope';
|
|
51
53
|
if (this.strictnessOptions?.skipAssertAppName) {
|
|
52
54
|
this.logger.warn('app name asserting was skipped');
|
|
53
55
|
}
|
|
54
56
|
else {
|
|
55
57
|
(0, app_metadata_1.assertAppName)(appName);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
if (!regexrResult || !appScope) {
|
|
60
|
-
throw new exceptions_1.InvalidAppNameException(name);
|
|
58
|
+
if (!regexrResult || !appScope) {
|
|
59
|
+
throw new exceptions_1.InvalidAppNameException(name);
|
|
60
|
+
}
|
|
61
61
|
}
|
|
62
62
|
const extendedOptions = {
|
|
63
63
|
appScope,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.context.js","sourceRoot":"","sources":["../src/platform.context.ts"],"names":[],"mappings":";;;AAKA,2CAA8C;AAE9C,mCAA+C;AAE/C,kEAAiE;AACjE,0DAAoE;AACpE,yFAAoF;AACpF,kDAA+C;AAC/C,iDAA+C;AAE/C,6DAAyD;AACzD,6CAGsB;AACtB,uCAA8C;AAC9C,2DAAsD;AAQtD,mCAMiB;AAEjB;;GAEG;AACH,MAAa,eAAe;IAmBf;IACA;IAnBF,MAAM,GAAG,uBAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtC,aAAa,GAAG,IAAI,GAAG,EAA6C,CAAC;IAE5D,aAAa,CAA6B;IACnD,UAAU,CAAoB;IAE9B,gBAAgB,CAA2B;IAEnD;;;;;;;;OAQG;IACH,YACW,OAAwB,EACxB,iBAKR;QANQ,YAAO,GAAP,OAAO,CAAiB;QACxB,sBAAiB,GAAjB,iBAAiB,CAKzB;QAED,eAAe,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QACtD,eAAe,CAAC,yBAAyB,CAAC,OAAO,CAAC,CAAC;QAEnD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC,uBAAe,CAAC,CAAC;QACjE,IAAI,CAAC,UAAU,GAAG,IAAI,sCAAiB,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,OAAO,IAAI,CAAC,gBAAgB,CAAC;QAC/B,CAAC;QACD,MAAM,YAAY,GAAG,mBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACjE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,EAAE,YAAY,IAAI,IAAI,CAAC;QAC7D,
|
|
1
|
+
{"version":3,"file":"platform.context.js","sourceRoot":"","sources":["../src/platform.context.ts"],"names":[],"mappings":"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"}
|
package/dist/platform.module.js
CHANGED
|
@@ -15,6 +15,7 @@ var PlatformModule_1;
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.PlatformModule = void 0;
|
|
17
17
|
const common_1 = require("@nestjs/common");
|
|
18
|
+
const actx_1 = require("@rsdk/actx");
|
|
18
19
|
const plugin_module_1 = require("./plugin/plugin.module");
|
|
19
20
|
const transport_module_1 = require("./transport/transport.module");
|
|
20
21
|
const app_metadata_1 = require("./app-metadata");
|
|
@@ -29,12 +30,16 @@ let PlatformModule = PlatformModule_1 = class PlatformModule {
|
|
|
29
30
|
}
|
|
30
31
|
static forRoot(options) {
|
|
31
32
|
const imports = [
|
|
33
|
+
/**
|
|
34
|
+
* Последовательность принципиально важна так как в этом модуле происходит инициализация глобального асинхронного контекста (AsyncLocalStorage)
|
|
35
|
+
*/
|
|
36
|
+
actx_1.AsyncContextModule,
|
|
37
|
+
tracing_1.TracingModule.forRoot({ appName: options.name, processing: 'simple' }),
|
|
32
38
|
// Plugins
|
|
33
39
|
plugin_module_1.PlatformPluginModule.forOptions(options),
|
|
34
40
|
// Infrastructure
|
|
35
41
|
app_metadata_1.AppMetadataModule.forRoot(options),
|
|
36
42
|
config_1.PlatformConfigModule.forRoot(options),
|
|
37
|
-
tracing_1.TracingModule.forRoot({ appName: options.name, processing: 'simple' }),
|
|
38
43
|
logging_1.LoggerInitializingModule,
|
|
39
44
|
...(options.modules ?? []),
|
|
40
45
|
];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform.module.js","sourceRoot":"","sources":["../src/platform.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2CAAwC;
|
|
1
|
+
{"version":3,"file":"platform.module.js","sourceRoot":"","sources":["../src/platform.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,2CAAwC;AAExC,qCAAgD;AAGhD,0DAA8D;AAC9D,mEAAuE;AACvE,iDAAmD;AACnD,qCAAgD;AAChD,6CAAiD;AACjD,uCAAqD;AACrD,uCAA0C;AAG1C,IAAa,cAAc,sBAA3B,MAAa,cAAc;IAEoB;IAD7C,YAC6C,OAAgC;QAAhC,YAAO,GAAP,OAAO,CAAyB;IAC1E,CAAC;IAEJ,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC7C,MAAM,OAAO,GAAoC;YAC/C;;eAEG;YACH,yBAAkB;YAClB,uBAAa,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,CAAC;YAEtE,UAAU;YACV,oCAAoB,CAAC,UAAU,CAAC,OAAO,CAAC;YAExC,iBAAiB;YACjB,gCAAiB,CAAC,OAAO,CAAC,OAAO,CAAC;YAClC,6BAAoB,CAAC,OAAO,CAAC,OAAO,CAAC;YACrC,kCAAwB;YACxB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;SAC3B,CAAC;QAEF,oCAAoC;QACpC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,0CAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,OAAO;YACP,SAAS,EAAE;gBACT;oBACE,OAAO,EAAE,yBAAyB;oBAClC,QAAQ,EAAE,OAAO;iBAClB;aACF;YACD,OAAO,EAAE,CAAC,yBAAyB,CAAC;SACrC,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,QAA4B;QACpC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,8BAAiB,CACzB,mEAAmE,CACpE,CAAC;QACJ,CAAC;QAED,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;YAChD,MAAM,EAAE,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF,CAAA;AApDY,wCAAc;yBAAd,cAAc;IAEtB,WAAA,IAAA,eAAM,EAAC,yBAAyB,CAAC,CAAA;;GAFzB,cAAc,CAoD1B"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.autoInstumentationOptions = void 0;
|
|
4
4
|
const auto_instrumentations_node_1 = require("@opentelemetry/auto-instrumentations-node");
|
|
5
5
|
const node_http_1 = require("node:http");
|
|
6
|
-
const
|
|
6
|
+
const request_id_provider_1 = require("./services/request-id.provider");
|
|
7
7
|
exports.autoInstumentationOptions = (0, auto_instrumentations_node_1.getNodeAutoInstrumentations)({
|
|
8
8
|
'@opentelemetry/instrumentation-aws-sdk': {
|
|
9
9
|
responseHook: (span, { response }) => {
|
|
@@ -35,8 +35,7 @@ exports.autoInstumentationOptions = (0, auto_instrumentations_node_1.getNodeAuto
|
|
|
35
35
|
'@opentelemetry/instrumentation-pino': {
|
|
36
36
|
enabled: true,
|
|
37
37
|
logHook: (_span, record) => {
|
|
38
|
-
record['request_id'] =
|
|
39
|
-
request_metadata_storage_1.RequestMetadataStorage.getInstance()?.getRequestMetadata().requestId;
|
|
38
|
+
record['request_id'] = request_id_provider_1.RequestIdProvider.get();
|
|
40
39
|
},
|
|
41
40
|
},
|
|
42
41
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-instrumentations.config.js","sourceRoot":"","sources":["../../src/tracing/auto-instrumentations.config.ts"],"names":[],"mappings":";;;AAAA,0FAAwF;AACxF,yCAA2D;AAE3D,
|
|
1
|
+
{"version":3,"file":"auto-instrumentations.config.js","sourceRoot":"","sources":["../../src/tracing/auto-instrumentations.config.ts"],"names":[],"mappings":";;;AAAA,0FAAwF;AACxF,yCAA2D;AAE3D,wEAAmE;AAEtD,QAAA,yBAAyB,GAAU,IAAA,wDAA2B,EAAC;IAC1E,wCAAwC,EAAE;QACxC,YAAY,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YACnC,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,CAAC;gBAC1C,IAAI,CAAC,YAAY,CACf,gBAAgB,EAChB,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CACtC,CAAC;YACJ,CAAC;QACH,CAAC;KACF;IACD,wCAAwC,EAAE;QACxC,WAAW,EAAE,IAAI;KAClB;IACD,qCAAqC,EAAE;QACrC,WAAW,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;YAC7B,IAAI,OAAO,YAAY,2BAAe,EAAE,CAAC;gBACvC,IAAI,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;oBAClC,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;iBAAM,IACL,OAAO,YAAY,yBAAa;gBAChC,OAAO,CAAC,GAAG,CAAC,MAAM;gBAClB,OAAO,CAAC,GAAG,CAAC,GAAG,EACf,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;KACF;IACD,mCAAmC,EAAE;QACnC,yBAAyB,EAAE,IAAI;KAChC;IACD,qCAAqC,EAAE;QACrC,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;YACzB,MAAM,CAAC,YAAY,CAAC,GAAG,uCAAiB,CAAC,GAAG,EAAE,CAAC;QACjD,CAAC;KACF;CACF,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Metadata } from '@grpc/grpc-js';
|
|
2
|
+
import type { MaybeReadonlyArray } from '@rsdk/common.node';
|
|
3
|
+
/**
|
|
4
|
+
* @description хелпер для нормализованного извлечения заголовков из grpc запроса
|
|
5
|
+
*/
|
|
6
|
+
export declare class GrpcHeaders {
|
|
7
|
+
private metadata;
|
|
8
|
+
constructor(metadata: Metadata);
|
|
9
|
+
get<K extends string>(key: MaybeReadonlyArray<K>): Record<K, string | undefined>;
|
|
10
|
+
get(key: string): string | undefined;
|
|
11
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GrpcHeaders = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @description хелпер для нормализованного извлечения заголовков из grpc запроса
|
|
6
|
+
*/
|
|
7
|
+
class GrpcHeaders {
|
|
8
|
+
metadata;
|
|
9
|
+
constructor(metadata) {
|
|
10
|
+
this.metadata = metadata;
|
|
11
|
+
}
|
|
12
|
+
get(key) {
|
|
13
|
+
if (Array.isArray(key)) {
|
|
14
|
+
return Object.fromEntries(key.map((k) => [k, this.get(k)]));
|
|
15
|
+
}
|
|
16
|
+
const requestIdMetadata = this.metadata.get(key);
|
|
17
|
+
if (requestIdMetadata.length > 0) {
|
|
18
|
+
return requestIdMetadata[0].toString();
|
|
19
|
+
}
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.GrpcHeaders = GrpcHeaders;
|
|
24
|
+
//# sourceMappingURL=grpc.headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grpc.headers.js","sourceRoot":"","sources":["../../src/tracing/grpc.headers.ts"],"names":[],"mappings":";;;AAGA;;GAEG;AACH,MAAa,WAAW;IACF;IAApB,YAAoB,QAAkB;QAAlB,aAAQ,GAAR,QAAQ,CAAU;IAAG,CAAC;IAM1C,GAAG,CACD,GAAwC;QAExC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAGzD,CAAC;QACJ,CAAC;QACD,MAAM,iBAAiB,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAa,CAAC,CAAC;QAC3D,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,OAAO,iBAAiB,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QACzC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;CACF;AAtBD,kCAsBC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MaybeReadonlyArray } from '@rsdk/common.node';
|
|
2
|
+
/**
|
|
3
|
+
* @description хелпер для нормализованного извлечения заголовков из http запроса
|
|
4
|
+
*/
|
|
5
|
+
export declare class HttpHeaders {
|
|
6
|
+
private headers;
|
|
7
|
+
constructor(headers: Record<string, string>);
|
|
8
|
+
get<K extends string>(key: MaybeReadonlyArray<K>): Record<K, string | undefined>;
|
|
9
|
+
get(key: string): string | undefined;
|
|
10
|
+
private normalizedHeaders;
|
|
11
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpHeaders = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* @description хелпер для нормализованного извлечения заголовков из http запроса
|
|
6
|
+
*/
|
|
7
|
+
class HttpHeaders {
|
|
8
|
+
headers;
|
|
9
|
+
constructor(headers) {
|
|
10
|
+
this.headers = headers;
|
|
11
|
+
this.normalizedHeaders = Object.fromEntries(Object.entries(headers).map(([k, v]) => [k.toLowerCase(), v]));
|
|
12
|
+
}
|
|
13
|
+
get(key) {
|
|
14
|
+
if (Array.isArray(key)) {
|
|
15
|
+
return Object.fromEntries(key.map((k) => [k, this.get(k)]));
|
|
16
|
+
}
|
|
17
|
+
return this.normalizedHeaders[key.toLowerCase()];
|
|
18
|
+
}
|
|
19
|
+
normalizedHeaders;
|
|
20
|
+
}
|
|
21
|
+
exports.HttpHeaders = HttpHeaders;
|
|
22
|
+
//# sourceMappingURL=http.headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.headers.js","sourceRoot":"","sources":["../../src/tracing/http.headers.ts"],"names":[],"mappings":";;;AAEA;;GAEG;AACH,MAAa,WAAW;IACF;IAApB,YAAoB,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;QACjD,IAAI,CAAC,iBAAiB,GAAG,MAAM,CAAC,WAAW,CACzC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,CAC9D,CAAC;IACJ,CAAC;IAQD,GAAG,CACD,GAAwC;QAExC,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAGzD,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,iBAAiB,CAAE,GAAc,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/D,CAAC;IAEO,iBAAiB,CAAyB;CACnD;AA1BD,kCA0BC"}
|
package/dist/tracing/index.d.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
export * from './active-span.module';
|
|
2
2
|
export * from './request-metadata.module';
|
|
3
3
|
export * from './services/active-span.storage';
|
|
4
|
-
export * from './services/request-metadata.storage';
|
|
5
4
|
export * from './tracing.module';
|
|
6
5
|
export * from './utils/create-span';
|
|
7
6
|
export * from './utils/save-async-hooks-context';
|
package/dist/tracing/index.js
CHANGED
|
@@ -17,7 +17,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./active-span.module"), exports);
|
|
18
18
|
__exportStar(require("./request-metadata.module"), exports);
|
|
19
19
|
__exportStar(require("./services/active-span.storage"), exports);
|
|
20
|
-
__exportStar(require("./services/request-metadata.storage"), exports);
|
|
21
20
|
__exportStar(require("./tracing.module"), exports);
|
|
22
21
|
__exportStar(require("./utils/create-span"), exports);
|
|
23
22
|
__exportStar(require("./utils/save-async-hooks-context"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,4DAA0C;AAC1C,iEAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,4DAA0C;AAC1C,iEAA+C;AAC/C,mDAAiC;AACjC,sDAAoC;AACpC,mEAAiD;AACjD,+CAA6B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
|
|
2
|
+
import { Observable } from 'rxjs';
|
|
3
|
+
export declare class OpenTelemetryInterceptor implements NestInterceptor {
|
|
4
|
+
intercept(_context: ExecutionContext, next: CallHandler<any>): Observable<any> | Promise<Observable<any>>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenTelemetryInterceptor = void 0;
|
|
4
|
+
const api_1 = require("@opentelemetry/api");
|
|
5
|
+
const propagator_b3_1 = require("@opentelemetry/propagator-b3");
|
|
6
|
+
const sdk_node_1 = require("@opentelemetry/sdk-node");
|
|
7
|
+
const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
|
|
8
|
+
const rxjs_1 = require("rxjs");
|
|
9
|
+
const request_id_provider_1 = require("./services/request-id.provider");
|
|
10
|
+
const services_1 = require("./services");
|
|
11
|
+
class OpenTelemetryInterceptor {
|
|
12
|
+
intercept(_context, next) {
|
|
13
|
+
const tracer = api_1.trace.getTracer('@rsdk/open-telemetry', '1.0.0');
|
|
14
|
+
const spanName = services_1.TraceInjector.createSpanName(OpenTelemetryInterceptor.name, 'intercept');
|
|
15
|
+
/**
|
|
16
|
+
* Создаем новый спан
|
|
17
|
+
*/
|
|
18
|
+
const span = tracer.startSpan(spanName, {});
|
|
19
|
+
const openTelemetryValues = request_id_provider_1.OpenTelemetryProvider.getOrThrow();
|
|
20
|
+
const parentSpanId = openTelemetryValues[propagator_b3_1.X_B3_PARENT_SPAN_ID];
|
|
21
|
+
if (parentSpanId) {
|
|
22
|
+
span.parentSpanId = parentSpanId;
|
|
23
|
+
}
|
|
24
|
+
const spanId = openTelemetryValues[propagator_b3_1.X_B3_SPAN_ID];
|
|
25
|
+
/**
|
|
26
|
+
* После создания контекста ранее при входе в приложение, у нас новый спан ид
|
|
27
|
+
* мы перетираем значением которе получили через заголовок
|
|
28
|
+
* в рамках приложения он корректный, но при переходе из одного приложения в другой - слетает
|
|
29
|
+
* и чтобы 100% все было норм, мы всегда патчим его
|
|
30
|
+
*/
|
|
31
|
+
if (spanId) {
|
|
32
|
+
span.spanContext().spanId = spanId;
|
|
33
|
+
}
|
|
34
|
+
const traceId = openTelemetryValues[propagator_b3_1.X_B3_TRACE_ID];
|
|
35
|
+
/**
|
|
36
|
+
* Патчим трайс ид, причина выше
|
|
37
|
+
*/
|
|
38
|
+
if (traceId) {
|
|
39
|
+
span.spanContext().traceId = traceId;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Обычно самая первая точка входа это фронтовый запрос, который содержит некие заголовки хттп
|
|
43
|
+
* мы их кладем в рутовый спан
|
|
44
|
+
*/
|
|
45
|
+
if (openTelemetryValues.http) {
|
|
46
|
+
span.setAttribute(semantic_conventions_1.SemanticAttributes.HTTP_METHOD, openTelemetryValues.http.httpMethod);
|
|
47
|
+
span.setAttribute(semantic_conventions_1.SemanticAttributes.HTTP_URL, openTelemetryValues.http.httpUrl);
|
|
48
|
+
span.setAttribute(semantic_conventions_1.SemanticAttributes.HTTP_ROUTE, openTelemetryValues.http.httpRoute);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Чтобы пробросить пропатченный спан нужно запустить две строчки ниже:
|
|
52
|
+
* 1) создаем контекст в котором активный спан перебиваем новым
|
|
53
|
+
* 2) созданный контекст ставим основным и в нем запускаем под процесс
|
|
54
|
+
*/
|
|
55
|
+
const spanContext = sdk_node_1.api.trace.setSpan(sdk_node_1.api.context.active(), span);
|
|
56
|
+
return new rxjs_1.Observable((observer) => {
|
|
57
|
+
sdk_node_1.api.context.with(spanContext, () => {
|
|
58
|
+
next
|
|
59
|
+
.handle()
|
|
60
|
+
.pipe((0, rxjs_1.mergeMap)((result) => {
|
|
61
|
+
services_1.TraceInjector.enrich(span, result);
|
|
62
|
+
span.end();
|
|
63
|
+
return (0, rxjs_1.of)(result);
|
|
64
|
+
}), (0, rxjs_1.catchError)((error) => {
|
|
65
|
+
services_1.TraceInjector.recordAndRethrow(error, span);
|
|
66
|
+
span.end();
|
|
67
|
+
return (0, rxjs_1.throwError)(() => error);
|
|
68
|
+
}))
|
|
69
|
+
.subscribe({
|
|
70
|
+
complete: () => {
|
|
71
|
+
observer.complete();
|
|
72
|
+
},
|
|
73
|
+
error: (error) => {
|
|
74
|
+
observer.error(error);
|
|
75
|
+
},
|
|
76
|
+
next: (res) => observer.next(res),
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
exports.OpenTelemetryInterceptor = OpenTelemetryInterceptor;
|
|
83
|
+
//# sourceMappingURL=open-telemetry.interceptor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"open-telemetry.interceptor.js","sourceRoot":"","sources":["../../src/tracing/open-telemetry.interceptor.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.RequestMetadataModule = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
|
-
const request_metadata_storage_1 = require("./services/request-metadata.storage");
|
|
12
11
|
/**
|
|
13
12
|
* Модуль для хранения и получения данных из аскин локал стораджа
|
|
14
13
|
*/
|
|
@@ -17,9 +16,6 @@ let RequestMetadataModule = class RequestMetadataModule {
|
|
|
17
16
|
exports.RequestMetadataModule = RequestMetadataModule;
|
|
18
17
|
exports.RequestMetadataModule = RequestMetadataModule = __decorate([
|
|
19
18
|
(0, common_1.Global)(),
|
|
20
|
-
(0, common_1.Module)({
|
|
21
|
-
providers: [request_metadata_storage_1.RequestMetadataStorage],
|
|
22
|
-
exports: [request_metadata_storage_1.RequestMetadataStorage],
|
|
23
|
-
})
|
|
19
|
+
(0, common_1.Module)({})
|
|
24
20
|
], RequestMetadataModule);
|
|
25
21
|
//# sourceMappingURL=request-metadata.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-metadata.module.js","sourceRoot":"","sources":["../../src/tracing/request-metadata.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAEhD
|
|
1
|
+
{"version":3,"file":"request-metadata.module.js","sourceRoot":"","sources":["../../src/tracing/request-metadata.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAEhD;;GAEG;AAGI,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;CAAG,CAAA;AAAxB,sDAAqB;gCAArB,qBAAqB;IAFjC,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,qBAAqB,CAAG"}
|
|
@@ -9,15 +9,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
exports.InstrumentationService = void 0;
|
|
10
10
|
const common_1 = require("@nestjs/common");
|
|
11
11
|
const tracing_interceptor_1 = require("../tracing.interceptor");
|
|
12
|
-
const request_metadata_injector_1 = require("./request-metadata.injector");
|
|
13
12
|
const trace_injector_1 = require("./trace.injector");
|
|
14
13
|
let InstrumentationService = class InstrumentationService {
|
|
15
|
-
injectWrapRequestMetadataInjector() {
|
|
16
|
-
/**
|
|
17
|
-
* Оборачиваем интерцептор в логику которая несет с собою асинк локал сторадж с requestId
|
|
18
|
-
*/
|
|
19
|
-
request_metadata_injector_1.RequestMetadataInjector.wrap(tracing_interceptor_1.TracingInterceptor.prototype, tracing_interceptor_1.TracingInterceptor.prototype['intercept']);
|
|
20
|
-
}
|
|
21
14
|
injectWrapTraceInjector() {
|
|
22
15
|
/**
|
|
23
16
|
* Оборачиваем интерцептор в логику которая несет с собою асинк локал сторадж с traceId, spanId
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrumentation.service.js","sourceRoot":"","sources":["../../../src/tracing/services/instrumentation.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAE5C,gEAA4D;AAE5D,
|
|
1
|
+
{"version":3,"file":"instrumentation.service.js","sourceRoot":"","sources":["../../../src/tracing/services/instrumentation.service.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4C;AAE5C,gEAA4D;AAE5D,qDAAiD;AAG1C,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IAC1B,uBAAuB;QAC5B;;WAEG;QACH,8BAAa,CAAC,IAAI,CAChB,wCAAkB,CAAC,SAAS,EAC5B,wCAAkB,CAAC,SAAS,CAAC,WAAW,CAAC,EACzC,SAAS,EACT,IAAI,CACL,CAAC;IACJ,CAAC;CACF,CAAA;AAZY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;GACA,sBAAsB,CAYlC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const RequestIdProvider: import("@rsdk/actx").AsyncContextProvider<string>;
|
|
2
|
+
export declare const OpenTelemetryProvider: import("@rsdk/actx").AsyncContextProvider<{
|
|
3
|
+
http?: {
|
|
4
|
+
httpMethod: string;
|
|
5
|
+
httpUrl: string;
|
|
6
|
+
httpRoute: string;
|
|
7
|
+
};
|
|
8
|
+
"x-b3-spanid"?: string;
|
|
9
|
+
"x-b3-traceid"?: string;
|
|
10
|
+
"x-b3-parentspanid"?: string;
|
|
11
|
+
}>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OpenTelemetryProvider = exports.RequestIdProvider = void 0;
|
|
4
|
+
const actx_1 = require("@rsdk/actx");
|
|
5
|
+
exports.RequestIdProvider = (0, actx_1.createAsyncContextProvider)({
|
|
6
|
+
name: 'RequestId',
|
|
7
|
+
rewritable: false,
|
|
8
|
+
});
|
|
9
|
+
exports.OpenTelemetryProvider = (0, actx_1.createAsyncContextProvider)({
|
|
10
|
+
name: 'OpenTelemetryPropagation',
|
|
11
|
+
rewritable: false,
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=request-id.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-id.provider.js","sourceRoot":"","sources":["../../../src/tracing/services/request-id.provider.ts"],"names":[],"mappings":";;;AAKA,qCAAwD;AAE3C,QAAA,iBAAiB,GAAG,IAAA,iCAA0B,EAAS;IAClE,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,KAAK;CAClB,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAG,IAAA,iCAA0B,EAK5D;IACD,IAAI,EAAE,0BAA0B;IAChC,UAAU,EAAE,KAAK;CAClB,CAAC,CAAC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type { AttributeValue } from '@opentelemetry/api';
|
|
1
|
+
import type { AttributeValue, Span } from '@opentelemetry/api';
|
|
2
2
|
export declare class TraceInjector {
|
|
3
3
|
static wrap(cls: any, original: Function, descriptor?: TypedPropertyDescriptor<any>, isTracingInterceptor?: boolean): void;
|
|
4
4
|
static toAttribute(data: unknown): AttributeValue;
|
|
5
5
|
private static createWrapper;
|
|
6
|
-
|
|
6
|
+
static createSpanName(className: string, methodName: string): string;
|
|
7
7
|
private static isWrapped;
|
|
8
8
|
private static nowSpan;
|
|
9
9
|
private static setWrapped;
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
static recordAndRethrow(error: unknown, span: Span): void;
|
|
11
|
+
static enrich(span: Span, data: unknown): unknown;
|
|
12
12
|
}
|