@rsdk/core 4.2.4 → 4.3.0-next.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.
Files changed (102) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/index.d.ts +1 -2
  3. package/dist/index.js +1 -5
  4. package/dist/index.js.map +1 -1
  5. package/dist/noop.http-adapter.d.ts +2 -0
  6. package/dist/noop.http-adapter.js +6 -0
  7. package/dist/noop.http-adapter.js.map +1 -1
  8. package/dist/platform.module.d.ts +3 -3
  9. package/dist/platform.module.js +23 -23
  10. package/dist/platform.module.js.map +1 -1
  11. package/dist/tracing/decorators/span.decorator.js +5 -6
  12. package/dist/tracing/decorators/span.decorator.js.map +1 -1
  13. package/dist/tracing/index.d.ts +0 -2
  14. package/dist/tracing/index.js +0 -2
  15. package/dist/tracing/index.js.map +1 -1
  16. package/dist/tracing/services/index.d.ts +0 -1
  17. package/dist/tracing/services/index.js +0 -1
  18. package/dist/tracing/services/index.js.map +1 -1
  19. package/dist/tracing/services/trace.injector.d.ts +4 -4
  20. package/dist/tracing/services/trace.injector.js +38 -68
  21. package/dist/tracing/services/trace.injector.js.map +1 -1
  22. package/dist/tracing/tracing.interceptor.d.ts +3 -5
  23. package/dist/tracing/tracing.interceptor.js +15 -91
  24. package/dist/tracing/tracing.interceptor.js.map +1 -1
  25. package/dist/tracing/tracing.module.d.ts +4 -16
  26. package/dist/tracing/tracing.module.js +18 -82
  27. package/dist/tracing/tracing.module.js.map +1 -1
  28. package/dist/tracing/types.d.ts +11 -0
  29. package/dist/tracing/types.js +23 -0
  30. package/dist/tracing/types.js.map +1 -0
  31. package/dist/tracing/utils/save-async-hooks-context.js +2 -3
  32. package/dist/tracing/utils/save-async-hooks-context.js.map +1 -1
  33. package/dist/transport/protocol.detector.d.ts +1 -0
  34. package/dist/transport/protocol.detector.js +5 -2
  35. package/dist/transport/protocol.detector.js.map +1 -1
  36. package/dist/transport/transport.module.js +1 -1
  37. package/dist/transport/transport.module.js.map +1 -1
  38. package/dist/types/constants.d.ts +2 -0
  39. package/dist/types/constants.js +6 -0
  40. package/dist/types/constants.js.map +1 -0
  41. package/dist/types/index.d.ts +2 -0
  42. package/dist/types/index.js +5 -1
  43. package/dist/types/index.js.map +1 -1
  44. package/dist/types/plugins.d.ts +5 -0
  45. package/dist/types/plugins.js.map +1 -1
  46. package/dist/types/tracing.headers-extractor.d.ts +15 -0
  47. package/dist/types/tracing.headers-extractor.js +67 -0
  48. package/dist/types/tracing.headers-extractor.js.map +1 -0
  49. package/dist/types/transports.d.ts +6 -1
  50. package/dist/types/transports.js.map +1 -1
  51. package/package.json +13 -12
  52. package/src/index.ts +0 -3
  53. package/src/noop.http-adapter.ts +8 -0
  54. package/src/platform.module.ts +20 -25
  55. package/src/tracing/decorators/span.decorator.ts +6 -6
  56. package/src/tracing/index.ts +0 -2
  57. package/src/tracing/services/index.ts +0 -1
  58. package/src/tracing/services/trace.injector.ts +49 -92
  59. package/src/tracing/tracing.interceptor.ts +7 -127
  60. package/src/tracing/tracing.module.ts +19 -104
  61. package/src/tracing/types.ts +28 -0
  62. package/src/tracing/utils/save-async-hooks-context.ts +2 -3
  63. package/src/transport/protocol.detector.ts +6 -2
  64. package/src/transport/transport.module.ts +1 -1
  65. package/src/types/constants.ts +2 -0
  66. package/src/types/index.ts +2 -0
  67. package/src/types/plugins.ts +6 -0
  68. package/src/types/tracing.headers-extractor.ts +51 -0
  69. package/src/types/transports.ts +8 -1
  70. package/tsconfig.build.json +1 -1
  71. package/dist/tracing/active-span.module.d.ts +0 -5
  72. package/dist/tracing/active-span.module.js +0 -25
  73. package/dist/tracing/active-span.module.js.map +0 -1
  74. package/dist/tracing/auto-instrumentations.config.d.ts +0 -1
  75. package/dist/tracing/auto-instrumentations.config.js +0 -42
  76. package/dist/tracing/auto-instrumentations.config.js.map +0 -1
  77. package/dist/tracing/grpc.headers.d.ts +0 -11
  78. package/dist/tracing/grpc.headers.js +0 -24
  79. package/dist/tracing/grpc.headers.js.map +0 -1
  80. package/dist/tracing/http.headers.d.ts +0 -11
  81. package/dist/tracing/http.headers.js +0 -22
  82. package/dist/tracing/http.headers.js.map +0 -1
  83. package/dist/tracing/open-telemetry.interceptor.d.ts +0 -5
  84. package/dist/tracing/open-telemetry.interceptor.js +0 -83
  85. package/dist/tracing/open-telemetry.interceptor.js.map +0 -1
  86. package/dist/tracing/services/active-span.storage.d.ts +0 -17
  87. package/dist/tracing/services/active-span.storage.js +0 -46
  88. package/dist/tracing/services/active-span.storage.js.map +0 -1
  89. package/dist/tracing/services/instrumentation.service.d.ts +0 -3
  90. package/dist/tracing/services/instrumentation.service.js +0 -25
  91. package/dist/tracing/services/instrumentation.service.js.map +0 -1
  92. package/dist/tracing/services/request-id.provider.d.ts +0 -11
  93. package/dist/tracing/services/request-id.provider.js +0 -13
  94. package/dist/tracing/services/request-id.provider.js.map +0 -1
  95. package/src/tracing/active-span.module.ts +0 -13
  96. package/src/tracing/auto-instrumentations.config.ts +0 -44
  97. package/src/tracing/grpc.headers.ts +0 -29
  98. package/src/tracing/http.headers.ts +0 -32
  99. package/src/tracing/open-telemetry.interceptor.ts +0 -114
  100. package/src/tracing/services/active-span.storage.ts +0 -32
  101. package/src/tracing/services/instrumentation.service.ts +0 -20
  102. package/src/tracing/services/request-id.provider.ts +0 -21
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.3.0-next.0](https://github.com/R-Vision/rsdk/compare/v4.2.5-next.0...v4.3.0-next.0) (2024-03-19)
7
+
8
+ ### Features
9
+
10
+ * reworked cli system ([745ebf5](https://github.com/R-Vision/rsdk/commit/745ebf53635de135a4a9083f47ce833efe2d4411))
11
+
12
+ ## [4.2.5-next.0](https://github.com/R-Vision/rsdk/compare/v4.2.4...v4.2.5-next.0) (2024-03-04)
13
+
14
+ **Note:** Version bump only for package @rsdk/core
15
+
6
16
  ## [4.2.4](https://github.com/R-Vision/rsdk/compare/v4.2.3...v4.2.4) (2024-02-28)
7
17
 
8
18
  ### Bug Fixes
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 { TracingModule, saveAsyncHooksContext, createSpan, ActiveSpanModule, ActiveSpanStorage, Span, } from './tracing';
6
+ export { TracingModule, saveAsyncHooksContext, createSpan, 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,4 +24,3 @@ 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.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;
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.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; } });
@@ -28,8 +28,6 @@ var tracing_1 = require("./tracing");
28
28
  Object.defineProperty(exports, "TracingModule", { enumerable: true, get: function () { return tracing_1.TracingModule; } });
29
29
  Object.defineProperty(exports, "saveAsyncHooksContext", { enumerable: true, get: function () { return tracing_1.saveAsyncHooksContext; } });
30
30
  Object.defineProperty(exports, "createSpan", { enumerable: true, get: function () { return tracing_1.createSpan; } });
31
- Object.defineProperty(exports, "ActiveSpanModule", { enumerable: true, get: function () { return tracing_1.ActiveSpanModule; } });
32
- Object.defineProperty(exports, "ActiveSpanStorage", { enumerable: true, get: function () { return tracing_1.ActiveSpanStorage; } });
33
31
  Object.defineProperty(exports, "Span", { enumerable: true, get: function () { return tracing_1.Span; } });
34
32
  var indicators_abstract_1 = require("./health/indicators.abstract");
35
33
  Object.defineProperty(exports, "FileSystemIndicator", { enumerable: true, get: function () { return indicators_abstract_1.FileSystemIndicator; } });
@@ -70,6 +68,4 @@ var propagator_b3_1 = require("@opentelemetry/propagator-b3");
70
68
  Object.defineProperty(exports, "X_B3_PARENT_SPAN_ID", { enumerable: true, get: function () { return propagator_b3_1.X_B3_PARENT_SPAN_ID; } });
71
69
  Object.defineProperty(exports, "X_B3_SPAN_ID", { enumerable: true, get: function () { return propagator_b3_1.X_B3_SPAN_ID; } });
72
70
  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; } });
75
71
  //# 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;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"}
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,qCAKmB;AAJjB,wGAAA,aAAa,OAAA;AACb,gHAAA,qBAAqB,OAAA;AACrB,qGAAA,UAAU,OAAA;AACV,+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"}
@@ -1,6 +1,8 @@
1
1
  import { AbstractHttpAdapter } from '@nestjs/core';
2
2
  export declare class NoopHttpAdapter<T> extends AbstractHttpAdapter<T> {
3
3
  get(): void;
4
+ getHeader(): any;
5
+ appendHeader(): any;
4
6
  post(): void;
5
7
  put(): void;
6
8
  patch(): void;
@@ -11,6 +11,12 @@ class NoopHttpAdapter extends core_1.AbstractHttpAdapter {
11
11
  get() {
12
12
  throw new exceptions_1.NoHttpException();
13
13
  }
14
+ getHeader() {
15
+ throw new exceptions_1.NoHttpException();
16
+ }
17
+ appendHeader() {
18
+ throw new exceptions_1.NoHttpException();
19
+ }
14
20
  post() {
15
21
  throw new exceptions_1.NoHttpException();
16
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"noop.http-adapter.js","sourceRoot":"","sources":["../src/noop.http-adapter.ts"],"names":[],"mappings":";;;AAAA,iDAAiD;AACjD,uCAAmD;AAEnD,6CAA+C;AAE/C,kBAAkB;AAClB,gEAAgE;AAChE,MAAM,IAAI,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;AAE5B,MAAa,eAAmB,SAAQ,0BAAsB;IACnD,GAAG;QACV,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,IAAI;QACX,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,GAAG;QACV,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,KAAK;QACZ,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,IAAI;QACX,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,MAAM;QACb,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,GAAG;QACV,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,GAAG;QACV,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,EAAE,CAAC;IACT,CAAC;IAED,cAAc;QACZ,IAAI,EAAE,CAAC;IACT,CAAC;IAED,eAAe;QACb,IAAI,EAAE,CAAC;IACT,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC;IACT,CAAC;IAED,kBAAkB;QAChB,IAAI,EAAE,CAAC;IACT,CAAC;IAED,gBAAgB;QACd,IAAI,EAAE,CAAC;IACT,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC;IACT,CAAC;IAED,MAAM;QACJ,IAAI,EAAE,CAAC;IACT,CAAC;IAED,KAAK;QACH,IAAI,EAAE,CAAC;IACT,CAAC;IAED,GAAG;QACD,IAAI,EAAE,CAAC;IACT,CAAC;IAED,MAAM;QACJ,IAAI,EAAE,CAAC;IACT,CAAC;IAED,QAAQ;QACN,IAAI,EAAE,CAAC;IACT,CAAC;IAED,eAAe;QACb,IAAI,EAAE,CAAC;IACT,CAAC;IAED,kBAAkB;QAChB,IAAI,EAAE,CAAC;IACT,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC;IACT,CAAC;IAED,SAAS;QACP,IAAI,EAAE,CAAC;IACT,CAAC;IAED,wBAAwB;QACtB,IAAI,EAAE,CAAC;IACT,CAAC;IAED,UAAU;QACR,IAAI,EAAE,CAAC;IACT,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB;QAChB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACpB,CAAC;CACF;AApHD,0CAoHC"}
1
+ {"version":3,"file":"noop.http-adapter.js","sourceRoot":"","sources":["../src/noop.http-adapter.ts"],"names":[],"mappings":";;;AAAA,iDAAiD;AACjD,uCAAmD;AAEnD,6CAA+C;AAE/C,kBAAkB;AAClB,gEAAgE;AAChE,MAAM,IAAI,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;AAE5B,MAAa,eAAmB,SAAQ,0BAAsB;IACnD,GAAG;QACV,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,SAAS;QAChB,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,YAAY;QACnB,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,IAAI;QACX,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,GAAG;QACV,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,KAAK;QACZ,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,IAAI;QACX,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,MAAM;QACb,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,GAAG;QACV,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAEQ,GAAG;QACV,MAAM,IAAI,4BAAe,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK;QACH,IAAI,EAAE,CAAC;IACT,CAAC;IAED,cAAc;QACZ,IAAI,EAAE,CAAC;IACT,CAAC;IAED,eAAe;QACb,IAAI,EAAE,CAAC;IACT,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC;IACT,CAAC;IAED,kBAAkB;QAChB,IAAI,EAAE,CAAC;IACT,CAAC;IAED,gBAAgB;QACd,IAAI,EAAE,CAAC;IACT,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC;IACT,CAAC;IAED,MAAM;QACJ,IAAI,EAAE,CAAC;IACT,CAAC;IAED,KAAK;QACH,IAAI,EAAE,CAAC;IACT,CAAC;IAED,GAAG;QACD,IAAI,EAAE,CAAC;IACT,CAAC;IAED,MAAM;QACJ,IAAI,EAAE,CAAC;IACT,CAAC;IAED,QAAQ;QACN,IAAI,EAAE,CAAC;IACT,CAAC;IAED,eAAe;QACb,IAAI,EAAE,CAAC;IACT,CAAC;IAED,kBAAkB;QAChB,IAAI,EAAE,CAAC;IACT,CAAC;IAED,aAAa;QACX,IAAI,EAAE,CAAC;IACT,CAAC;IAED,SAAS;QACP,IAAI,EAAE,CAAC;IACT,CAAC;IAED,wBAAwB;QACtB,IAAI,EAAE,CAAC;IACT,CAAC;IAED,UAAU;QACR,IAAI,EAAE,CAAC;IACT,CAAC;IAED,uBAAuB;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO;QACL,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,kBAAkB;QAChB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;IACpB,CAAC;CACF;AA5HD,0CA4HC"}
@@ -1,9 +1,9 @@
1
1
  import type { DynamicModule, NestModule } from '@nestjs/common';
2
2
  import type { MiddlewareConsumer } from '@nestjs/common/interfaces';
3
- import { PlatformExtendedOptions } from './types';
3
+ import type { PlatformAppPlugin, PlatformExtendedOptions } from './types';
4
4
  export declare class PlatformModule implements NestModule {
5
- private options;
6
- constructor(options: PlatformExtendedOptions);
5
+ private plugins;
7
6
  static forRoot(options: PlatformExtendedOptions): DynamicModule;
7
+ constructor(plugins: Set<PlatformAppPlugin>);
8
8
  configure(consumer: MiddlewareConsumer): void;
9
9
  }
@@ -20,21 +20,18 @@ const plugin_module_1 = require("./plugin/plugin.module");
20
20
  const transport_module_1 = require("./transport/transport.module");
21
21
  const app_metadata_1 = require("./app-metadata");
22
22
  const config_1 = require("./config");
23
- const exceptions_1 = require("./exceptions");
24
23
  const logging_1 = require("./logging");
25
24
  const tracing_1 = require("./tracing");
25
+ const types_1 = require("./types");
26
26
  let PlatformModule = PlatformModule_1 = class PlatformModule {
27
- options;
28
- constructor(options) {
29
- this.options = options;
30
- }
27
+ plugins;
31
28
  static forRoot(options) {
32
29
  const imports = [
33
30
  /**
34
31
  * Последовательность принципиально важна так как в этом модуле происходит инициализация глобального асинхронного контекста (AsyncLocalStorage)
35
32
  */
36
33
  actx_1.AsyncContextModule,
37
- tracing_1.TracingModule.forRoot({ appName: options.name, processing: 'simple' }),
34
+ tracing_1.TracingModule.forRoot(),
38
35
  // Plugins
39
36
  plugin_module_1.PlatformPluginModule.forOptions(options),
40
37
  // Infrastructure
@@ -43,34 +40,37 @@ let PlatformModule = PlatformModule_1 = class PlatformModule {
43
40
  logging_1.LoggerInitializingModule,
44
41
  ...(options.modules ?? []),
45
42
  ];
46
- // Adding transport module if needed
47
- if (options.transports) {
48
- imports.push(transport_module_1.PlatformTransportModule.forOptions(options));
49
- }
43
+ imports.push(transport_module_1.PlatformTransportModule.forOptions(options));
44
+ const exportingProviders = [
45
+ {
46
+ provide: types_1.APP_PLUGINS,
47
+ useValue: new Set(options.plugins),
48
+ },
49
+ {
50
+ provide: types_1.APP_TRANSPORTS,
51
+ useValue: new Set(options.transports),
52
+ },
53
+ ];
50
54
  return {
51
55
  module: PlatformModule_1,
52
56
  imports,
53
- providers: [
54
- {
55
- provide: 'PlatformExtendedOptions',
56
- useValue: options,
57
- },
58
- ],
59
- exports: ['PlatformExtendedOptions'],
57
+ global: true,
58
+ providers: exportingProviders,
59
+ exports: exportingProviders,
60
60
  };
61
61
  }
62
+ constructor(plugins) {
63
+ this.plugins = plugins;
64
+ }
62
65
  configure(consumer) {
63
- if (!this.options) {
64
- throw new exceptions_1.SequenceException('Should call PlatformModule.setup() before configuring middleware!');
65
- }
66
- for (const plugin of this.options.plugins || []) {
66
+ for (const plugin of this.plugins) {
67
67
  plugin?.configureMiddleware?.(consumer);
68
68
  }
69
69
  }
70
70
  };
71
71
  exports.PlatformModule = PlatformModule;
72
72
  exports.PlatformModule = PlatformModule = PlatformModule_1 = __decorate([
73
- __param(0, (0, common_1.Inject)('PlatformExtendedOptions')),
74
- __metadata("design:paramtypes", [Object])
73
+ __param(0, (0, common_1.Inject)(types_1.APP_PLUGINS)),
74
+ __metadata("design:paramtypes", [Set])
75
75
  ], PlatformModule);
76
76
  //# sourceMappingURL=platform.module.js.map
@@ -1 +1 @@
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"}
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,uCAAqD;AACrD,uCAA0C;AAE1C,mCAAsD;AAEtD,IAAa,cAAc,sBAA3B,MAAa,cAAc;IAwCgB;IAvCzC,MAAM,CAAC,OAAO,CAAC,OAAgC;QAC7C,MAAM,OAAO,GAAoC;YAC/C;;eAEG;YACH,yBAAkB;YAClB,uBAAa,CAAC,OAAO,EAAE;YAEvB,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,OAAO,CAAC,IAAI,CAAC,0CAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC;QAC1D,MAAM,kBAAkB,GAAG;YACzB;gBACE,OAAO,EAAE,mBAAW;gBACpB,QAAQ,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC;aACnC;YACD;gBACE,OAAO,EAAE,sBAAc;gBACvB,QAAQ,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC;aACtC;SACF,CAAC;QAEF,OAAO;YACL,MAAM,EAAE,gBAAc;YACtB,OAAO;YACP,MAAM,EAAE,IAAI;YACZ,SAAS,EAAE,kBAAkB;YAC7B,OAAO,EAAE,kBAAkB;SAC5B,CAAC;IACJ,CAAC;IAED,YAAyC,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAE5E,SAAS,CAAC,QAA4B;QACpC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,EAAE,mBAAmB,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;CACF,CAAA;AA/CY,wCAAc;yBAAd,cAAc;IAwCZ,WAAA,IAAA,eAAM,EAAC,mBAAW,CAAC,CAAA;qCAAkB,GAAG;GAxC1C,cAAc,CA+C1B"}
@@ -18,13 +18,12 @@ function (target, methodName, descriptor) {
18
18
  }
19
19
  if (methodName && descriptor) {
20
20
  services_1.TraceInjector.wrap(target, descriptor.value, descriptor);
21
+ return;
21
22
  }
22
- else {
23
- const prototype = target.prototype ?? target;
24
- for (const name of metadataScanner.getAllMethodNames(prototype)) {
25
- if (name) {
26
- services_1.TraceInjector.wrap(prototype, prototype[name]);
27
- }
23
+ const prototype = target.prototype ?? target;
24
+ for (const name of metadataScanner.getAllMethodNames(prototype)) {
25
+ if (name) {
26
+ services_1.TraceInjector.wrap(prototype, prototype[name]);
28
27
  }
29
28
  }
30
29
  };
@@ -1 +1 @@
1
- {"version":3,"file":"span.decorator.js","sourceRoot":"","sources":["../../../src/tracing/decorators/span.decorator.ts"],"names":[],"mappings":";;;AAAA,uCAA+C;AAE/C,iDAAgE;AAChE,0CAA4C;AAE5C,MAAM,eAAe,GAAG,IAAI,sBAAe,EAAE,CAAC;AAE9C;;;;GAIG;AACI,MAAM,IAAI,GAAG,GAAqC,EAAE;AACzD,+DAA+D;AAC/D,UACE,MAAc,EACd,UAA4B,EAC5B,UAAyC;IAEzC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,yCAA4B,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QAC7B,wBAAa,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;SAAM,CAAC;QACN,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,IAAI,MAAM,CAAC;QAEtD,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;YAChE,IAAI,IAAI,EAAE,CAAC;gBACT,wBAAa,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AArBS,QAAA,IAAI,QAqBb"}
1
+ {"version":3,"file":"span.decorator.js","sourceRoot":"","sources":["../../../src/tracing/decorators/span.decorator.ts"],"names":[],"mappings":";;;AAAA,uCAA+C;AAE/C,iDAAgE;AAChE,0CAA4C;AAE5C,MAAM,eAAe,GAAG,IAAI,sBAAe,EAAE,CAAC;AAE9C;;;;GAIG;AACI,MAAM,IAAI,GAAG,GAAqC,EAAE;AACzD,+DAA+D;AAC/D,UACE,MAAc,EACd,UAA4B,EAC5B,UAAyC;IAEzC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,yCAA4B,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,UAAU,IAAI,UAAU,EAAE,CAAC;QAC7B,wBAAa,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QACzD,OAAO;IACT,CAAC;IACD,MAAM,SAAS,GAAI,MAAc,CAAC,SAAS,IAAI,MAAM,CAAC;IAEtD,KAAK,MAAM,IAAI,IAAI,eAAe,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,CAAC;QAChE,IAAI,IAAI,EAAE,CAAC;YACT,wBAAa,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AArBS,QAAA,IAAI,QAqBb"}
@@ -1,6 +1,4 @@
1
- export * from './active-span.module';
2
1
  export * from './request-metadata.module';
3
- export * from './services/active-span.storage';
4
2
  export * from './tracing.module';
5
3
  export * from './utils/create-span';
6
4
  export * from './utils/save-async-hooks-context';
@@ -14,9 +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
- __exportStar(require("./active-span.module"), exports);
18
17
  __exportStar(require("./request-metadata.module"), exports);
19
- __exportStar(require("./services/active-span.storage"), exports);
20
18
  __exportStar(require("./tracing.module"), exports);
21
19
  __exportStar(require("./utils/create-span"), exports);
22
20
  __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,mDAAiC;AACjC,sDAAoC;AACpC,mEAAiD;AACjD,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/tracing/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,mDAAiC;AACjC,sDAAoC;AACpC,mEAAiD;AACjD,+CAA6B"}
@@ -1,2 +1 @@
1
- export * from './instrumentation.service';
2
1
  export * from './trace.injector';
@@ -14,6 +14,5 @@ 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
- __exportStar(require("./instrumentation.service"), exports);
18
17
  __exportStar(require("./trace.injector"), exports);
19
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tracing/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C;AAC1C,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tracing/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC"}
@@ -1,12 +1,12 @@
1
1
  import type { AttributeValue, Span } from '@opentelemetry/api';
2
2
  export declare class TraceInjector {
3
- static wrap(cls: any, original: Function, descriptor?: TypedPropertyDescriptor<any>, isTracingInterceptor?: boolean): void;
3
+ static wrap(cls: any, original: Function, descriptor?: TypedPropertyDescriptor<any>): void;
4
4
  static toAttribute(data: unknown): AttributeValue;
5
- private static createWrapper;
5
+ static enrich(span: Span, data: unknown): unknown;
6
6
  static createSpanName(className: string, methodName: string): string;
7
+ static recordAndRethrow(error: unknown, span: Span): void;
7
8
  private static isWrapped;
8
9
  private static nowSpan;
9
10
  private static setWrapped;
10
- static recordAndRethrow(error: unknown, span: Span): void;
11
- static enrich(span: Span, data: unknown): unknown;
11
+ private static createWrapper;
12
12
  }
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.TraceInjector = void 0;
7
7
  const api_1 = require("@opentelemetry/api");
8
- const sdk_node_1 = require("@opentelemetry/sdk-node");
9
8
  const common_1 = require("@rsdk/common");
10
9
  const decorators_1 = require("@rsdk/decorators");
11
10
  const logging_1 = require("@rsdk/logging");
@@ -17,7 +16,7 @@ class TraceInjector {
17
16
  // eslint-disable-next-line @typescript-eslint/ban-types
18
17
  static wrap(cls,
19
18
  // eslint-disable-next-line @typescript-eslint/ban-types
20
- original, descriptor, isTracingInterceptor) {
19
+ original, descriptor) {
21
20
  /**
22
21
  * Означает, что данный метод уже обёрнут
23
22
  */
@@ -26,7 +25,7 @@ class TraceInjector {
26
25
  }
27
26
  logger.trace(`Wrapping method: ${cls.constructor.name}.${original.name}()`);
28
27
  const spanName = TraceInjector.createSpanName(cls.constructor.name, original.name);
29
- const wrapped = TraceInjector.createWrapper(original, spanName, isTracingInterceptor);
28
+ const wrapped = TraceInjector.createWrapper(original, spanName);
30
29
  (0, decorators_1.redecorate)(original, wrapped);
31
30
  if (descriptor) {
32
31
  descriptor.value = wrapped;
@@ -53,47 +52,51 @@ class TraceInjector {
53
52
  }
54
53
  return 'data is undefined';
55
54
  }
56
- static createWrapper(original, spanName, _isTracingInterceptor) {
55
+ static enrich(span, data) {
56
+ span.setAttribute('result', TraceInjector.toAttribute(data));
57
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
58
+ return data;
59
+ }
60
+ static createSpanName(className, methodName) {
61
+ /**
62
+ * Всего лишь правила формирования имени спана (не более того), для новой логики нужен был именно такой код
63
+ */
64
+ return `${className} -> ${methodName}`;
65
+ }
66
+ static recordAndRethrow(error, span) {
67
+ span.recordException(error);
68
+ span.setStatus({
69
+ code: api_1.SpanStatusCode.ERROR,
70
+ message: error.message,
71
+ });
72
+ throw error;
73
+ }
74
+ static isWrapped(prototype) {
75
+ node_assert_1.default.ok(prototype);
76
+ return Reflect.hasMetadata(constants_1.Constants.TRACE_METADATA_ACTIVE, prototype);
77
+ }
78
+ static nowSpan(prototype) {
79
+ node_assert_1.default.ok(prototype);
80
+ return Reflect.hasMetadata(constants_1.Constants.NO_SPAN_METADATA, prototype);
81
+ }
82
+ static setWrapped(prototype) {
83
+ node_assert_1.default.ok(prototype);
84
+ // Value doesn't matter
85
+ const NOOP = 1;
86
+ Reflect.defineMetadata(constants_1.Constants.TRACE_METADATA_ACTIVE, NOOP, prototype);
87
+ }
88
+ static createWrapper(original, spanName) {
57
89
  return {
58
90
  [original.name](...args) {
59
91
  const tracer = api_1.trace.getTracer('@rsdk/open-telemetry', '1.0.0');
60
- /**
61
- * Переменный для хранения значений которые получаем для опен телеметрии
62
- */
63
- let traceId;
64
- let spanId;
65
- /**
66
- * Создаем новый спан
67
- */
68
- const span = tracer.startSpan(spanName, {});
69
- /**
70
- * После создания контекста ранее при входе в приложение, у нас новый спан ид
71
- * мы перетираем значением которе получили через заголовок
72
- * в рамках приложения он корректный, но при переходе из одного приложения в другой - слетает
73
- * и чтобы 100% все было норм, мы всегда патчим его
74
- */
75
- if (spanId) {
76
- span.spanContext().spanId = spanId;
77
- }
78
- /**
79
- * Патчим трайс ид, причина выше
80
- */
81
- if (traceId) {
82
- span.spanContext().traceId = traceId;
83
- }
84
- /**
85
- * Чтобы пробросить пропатченный спан нужно запустить две строчки ниже:
86
- * 1) создаем контекст в котором активный спан перебиваем новым
87
- * 2) созданный контекст ставим основным и в нем запускаем под процесс
88
- */
89
- const spanContext = sdk_node_1.api.trace.setSpan(sdk_node_1.api.context.active(), span);
90
- return sdk_node_1.api.context.with(spanContext, async () => {
92
+ return tracer.startActiveSpan(spanName, (span) => {
91
93
  try {
92
94
  /**
93
95
  * При запуске функции обернутой в опентелеметрию мы выводим и трейсИд и спанИд
94
96
  * чтобы в ручную по логам отсмотреть порядок запусков, в случаи если нет доступа до борды графаны и на руках есть только файл с логами
95
97
  */
96
98
  logger.trace(`Wrapped function invoked: ${original.name}, traceId: ${span.spanContext().traceId}, spanId: ${span.spanContext().spanId}`);
99
+ span.setAttribute('args', TraceInjector.toAttribute(args));
97
100
  const result = original.apply(this, args);
98
101
  /**
99
102
  * Если метод асинхронный - обрабтываем его и фиксируем успешное или не успешное завершение метода и зарываем спан,
@@ -146,39 +149,6 @@ class TraceInjector {
146
149
  },
147
150
  }[original.name];
148
151
  }
149
- static createSpanName(className, methodName) {
150
- /**
151
- * Всего лишь правила формирования имени спана (не более того), для новой логики нужен был именно такой код
152
- */
153
- return `${className} -> ${methodName}`;
154
- }
155
- static isWrapped(prototype) {
156
- node_assert_1.default.ok(prototype);
157
- return Reflect.hasMetadata(constants_1.Constants.TRACE_METADATA_ACTIVE, prototype);
158
- }
159
- static nowSpan(prototype) {
160
- node_assert_1.default.ok(prototype);
161
- return Reflect.hasMetadata(constants_1.Constants.NO_SPAN_METADATA, prototype);
162
- }
163
- static setWrapped(prototype) {
164
- node_assert_1.default.ok(prototype);
165
- // Value doesn't matter
166
- const NOOP = 1;
167
- Reflect.defineMetadata(constants_1.Constants.TRACE_METADATA_ACTIVE, NOOP, prototype);
168
- }
169
- static recordAndRethrow(error, span) {
170
- span.recordException(error);
171
- span.setStatus({
172
- code: api_1.SpanStatusCode.ERROR,
173
- message: error.message,
174
- });
175
- throw error;
176
- }
177
- static enrich(span, data) {
178
- span.setAttribute('response', TraceInjector.toAttribute(data));
179
- span.setStatus({ code: api_1.SpanStatusCode.OK });
180
- return data;
181
- }
182
152
  }
183
153
  exports.TraceInjector = TraceInjector;
184
154
  //# sourceMappingURL=trace.injector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"trace.injector.js","sourceRoot":"","sources":["../../../src/tracing/services/trace.injector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trace.injector.js","sourceRoot":"","sources":["../../../src/tracing/services/trace.injector.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,8 @@
1
1
  import type { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
2
2
  import type { Observable } from 'rxjs';
3
+ import { TracingHeadersExtractor } from '../types/tracing.headers-extractor';
3
4
  export declare class TracingInterceptor implements NestInterceptor {
5
+ private headersExtractor;
6
+ constructor(headersExtractor: TracingHeadersExtractor);
4
7
  intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
5
- private static extractTracingHeaders;
6
- private static extractFromGraphql;
7
- private static extractFromHttp;
8
- private static extractFromRpc;
9
- private static createRequestId;
10
8
  }
@@ -5,105 +5,29 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
- var TracingInterceptor_1;
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
9
11
  Object.defineProperty(exports, "__esModule", { value: true });
10
12
  exports.TracingInterceptor = void 0;
11
13
  const common_1 = require("@nestjs/common");
12
- const propagator_b3_1 = require("@opentelemetry/propagator-b3");
13
- const common_node_1 = require("@rsdk/common.node");
14
- const node_crypto_1 = require("node:crypto");
15
- const request_id_provider_1 = require("./services/request-id.provider");
14
+ const tracing_1 = require("@rsdk/tracing");
15
+ const tracing_headers_extractor_1 = require("../types/tracing.headers-extractor");
16
16
  const constants_1 = require("./constants");
17
- const grpc_headers_1 = require("./grpc.headers");
18
- const http_headers_1 = require("./http.headers");
19
- const tracingHeaders = [
20
- constants_1.X_REQUEST_ID,
21
- propagator_b3_1.X_B3_TRACE_ID,
22
- propagator_b3_1.X_B3_SPAN_ID,
23
- propagator_b3_1.X_B3_PARENT_SPAN_ID,
24
- ];
25
- let TracingInterceptor = TracingInterceptor_1 = class TracingInterceptor {
17
+ let TracingInterceptor = class TracingInterceptor {
18
+ headersExtractor;
19
+ constructor(headersExtractor) {
20
+ this.headersExtractor = headersExtractor;
21
+ }
26
22
  intercept(context, next) {
27
- const requestId = TracingInterceptor_1.extractTracingHeaders(context);
28
- request_id_provider_1.RequestIdProvider.set(requestId[constants_1.X_REQUEST_ID]);
29
- request_id_provider_1.OpenTelemetryProvider.set((0, common_node_1.omitUndefined)(requestId));
23
+ const h = this.headersExtractor.extract(context).getHeaders();
24
+ tracing_1.RequestIdProvider.set(h[constants_1.X_REQUEST_ID]);
30
25
  return next.handle();
31
26
  }
32
- static extractTracingHeaders(executionContext) {
33
- /**
34
- * В зависимости от типа контекста запускаем парсинг переданной Metadata
35
- */
36
- switch (executionContext.getType()) {
37
- case 'rpc':
38
- return this.extractFromRpc(executionContext);
39
- case 'http':
40
- return this.extractFromHttp(executionContext);
41
- case 'graphql':
42
- return this.extractFromGraphql(executionContext);
43
- }
44
- return {
45
- [constants_1.X_REQUEST_ID]: this.createRequestId(),
46
- };
47
- }
48
- static extractFromGraphql(executionContext) {
49
- const req = executionContext.getArgs()[2]?.req; // аналог GqlExecutionContext.create(executionContext).getContext().req
50
- /**
51
- * При работе с сабскрипшен через веб сокет, заголовки передаются в опции подключения к сабскрипшен в переменную connectionParams
52
- * и мы перегоняем эти данные в request заголовки
53
- */
54
- const headers = {
55
- ...req?.headers,
56
- ...req?.connectionParams?.headers,
57
- };
58
- const extractedHeaders = new http_headers_1.HttpHeaders(headers).get([
59
- constants_1.X_REQUEST_ID,
60
- propagator_b3_1.X_B3_TRACE_ID,
61
- propagator_b3_1.X_B3_SPAN_ID,
62
- ]);
63
- const h = extractedHeaders;
64
- h.http = {
65
- httpMethod: req.method,
66
- httpRoute: req.route?.path || req.routeOptions?.url || req.routerPath,
67
- httpUrl: req.originalUrl || req.url,
68
- };
69
- h[constants_1.X_REQUEST_ID] ??= (0, node_crypto_1.randomUUID)();
70
- return h;
71
- }
72
- static extractFromHttp(executionContext) {
73
- // TODO:
74
- const req = executionContext.switchToHttp().getRequest();
75
- const headers = new http_headers_1.HttpHeaders(req.headers).get(tracingHeaders);
76
- const h = headers;
77
- h[constants_1.X_REQUEST_ID] ??= (0, node_crypto_1.randomUUID)();
78
- h.http = {
79
- httpMethod: req.method,
80
- httpRoute: req.route?.path || req.routeOptions?.url || req.routerPath,
81
- httpUrl: req.originalUrl || req.url,
82
- };
83
- return headers;
84
- }
85
- static extractFromRpc(executionContext) {
86
- const metadata = executionContext.switchToRpc().getContext();
87
- /**
88
- * Если мы пришли в GRPC и у нас есть методы для работы с Metadata
89
- * то мы конвертируем Metadata в некий виртуальный request с заголовками (заголовки выбраны как общий стандарт проброса мета информации)
90
- */
91
- if (metadata?.get) {
92
- const grpcHeaders = new grpc_headers_1.GrpcHeaders(metadata);
93
- const h = grpcHeaders.get(tracingHeaders);
94
- h[constants_1.X_REQUEST_ID] ??= this.createRequestId();
95
- return h;
96
- }
97
- return {
98
- [constants_1.X_REQUEST_ID]: (0, node_crypto_1.randomUUID)(),
99
- };
100
- }
101
- static createRequestId() {
102
- return (0, node_crypto_1.randomUUID)();
103
- }
104
27
  };
105
28
  exports.TracingInterceptor = TracingInterceptor;
106
- exports.TracingInterceptor = TracingInterceptor = TracingInterceptor_1 = __decorate([
107
- (0, common_1.Injectable)()
29
+ exports.TracingInterceptor = TracingInterceptor = __decorate([
30
+ (0, common_1.Injectable)(),
31
+ __metadata("design:paramtypes", [tracing_headers_extractor_1.TracingHeadersExtractor])
108
32
  ], TracingInterceptor);
109
33
  //# sourceMappingURL=tracing.interceptor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tracing.interceptor.js","sourceRoot":"","sources":["../../src/tracing/tracing.interceptor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracing.interceptor.js","sourceRoot":"","sources":["../../src/tracing/tracing.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,2CAA4C;AAC5C,2CAAkD;AAGlD,kFAA6E;AAE7E,2CAA2C;AAGpC,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IACT;IAApB,YAAoB,gBAAyC;QAAzC,qBAAgB,GAAhB,gBAAgB,CAAyB;IAAG,CAAC;IAEjE,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC;QAE9D,2BAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,wBAAY,CAAC,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;CACF,CAAA;AATY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAE2B,mDAAuB;GADlD,kBAAkB,CAS9B"}