@sima-land/isomorph 11.0.0-alpha.53 → 11.0.0-alpha.55

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 (188) hide show
  1. package/dist/cjs/config/source.js +5 -0
  2. package/dist/cjs/config/source.js.map +1 -1
  3. package/dist/cjs/package.json +7 -9
  4. package/dist/cjs/preset/node/index.js +10 -8
  5. package/dist/cjs/preset/node/index.js.map +1 -1
  6. package/dist/cjs/preset/node/providers/express-tracing-middleware.js +15 -4
  7. package/dist/cjs/preset/node/providers/express-tracing-middleware.js.map +1 -1
  8. package/dist/cjs/preset/node/providers/public-envs.js +22 -0
  9. package/dist/cjs/preset/node/providers/public-envs.js.map +1 -0
  10. package/dist/cjs/preset/node/providers/{tracer-provider.js → telemetry-tracer-provider.js} +7 -10
  11. package/dist/cjs/preset/node/providers/telemetry-tracer-provider.js.map +1 -0
  12. package/dist/cjs/preset/{bun/utils/get-stats-handler.js → node/providers/telemetry-tracer-resource.js} +19 -20
  13. package/dist/cjs/preset/node/providers/telemetry-tracer-resource.js.map +1 -0
  14. package/dist/cjs/preset/node/providers/{span-exporter.js → telemetry-tracer-span-exporter.js} +6 -5
  15. package/dist/cjs/preset/node/providers/telemetry-tracer-span-exporter.js.map +1 -0
  16. package/dist/cjs/preset/node/providers/{tracer.js → telemetry-tracer.js} +2 -2
  17. package/dist/cjs/preset/node/providers/telemetry-tracer.js.map +1 -0
  18. package/dist/cjs/preset/node/utils/axios-tracing-middleware.js +9 -24
  19. package/dist/cjs/preset/node/utils/axios-tracing-middleware.js.map +1 -1
  20. package/dist/cjs/preset/node/utils/get-fetch-tracing.js +6 -11
  21. package/dist/cjs/preset/node/utils/get-fetch-tracing.js.map +1 -1
  22. package/dist/cjs/preset/node/utils/telemetry.js +23 -0
  23. package/dist/cjs/preset/node/utils/telemetry.js.map +1 -0
  24. package/dist/cjs/tokens.js +5 -4
  25. package/dist/cjs/tokens.js.map +1 -1
  26. package/dist/cjs/utils/ssr/index.js +2 -1
  27. package/dist/cjs/utils/ssr/index.js.map +1 -1
  28. package/dist/cjs/utils/webpack/env/index.js +1 -0
  29. package/dist/cjs/utils/webpack/env/index.js.map +1 -1
  30. package/dist/esm/config/source.js +5 -0
  31. package/dist/esm/config/source.js.map +1 -1
  32. package/dist/esm/package.json +7 -9
  33. package/dist/esm/preset/node/index.js +9 -6
  34. package/dist/esm/preset/node/index.js.map +1 -1
  35. package/dist/esm/preset/node/providers/express-tracing-middleware.js +15 -4
  36. package/dist/esm/preset/node/providers/express-tracing-middleware.js.map +1 -1
  37. package/dist/esm/preset/node/providers/public-envs.js +16 -0
  38. package/dist/esm/preset/node/providers/public-envs.js.map +1 -0
  39. package/dist/esm/preset/node/providers/telemetry-tracer-provider.js +19 -0
  40. package/dist/esm/preset/node/providers/telemetry-tracer-provider.js.map +1 -0
  41. package/dist/esm/preset/node/providers/telemetry-tracer-resource.js +21 -0
  42. package/dist/esm/preset/node/providers/telemetry-tracer-resource.js.map +1 -0
  43. package/dist/esm/preset/node/providers/{span-exporter.js → telemetry-tracer-span-exporter.js} +4 -4
  44. package/dist/esm/preset/node/providers/telemetry-tracer-span-exporter.js.map +1 -0
  45. package/dist/esm/preset/node/providers/{tracer.js → telemetry-tracer.js} +2 -2
  46. package/dist/esm/preset/node/providers/telemetry-tracer.js.map +1 -0
  47. package/dist/esm/preset/node/utils/axios-tracing-middleware.js +9 -24
  48. package/dist/esm/preset/node/utils/axios-tracing-middleware.js.map +1 -1
  49. package/dist/esm/preset/node/utils/get-fetch-tracing.js +7 -12
  50. package/dist/esm/preset/node/utils/get-fetch-tracing.js.map +1 -1
  51. package/dist/esm/preset/node/utils/telemetry.js +18 -0
  52. package/dist/esm/preset/node/utils/telemetry.js.map +1 -0
  53. package/dist/esm/tokens.js +5 -4
  54. package/dist/esm/tokens.js.map +1 -1
  55. package/dist/esm/utils/ssr/index.js +2 -1
  56. package/dist/esm/utils/ssr/index.js.map +1 -1
  57. package/dist/esm/utils/webpack/env/index.js +1 -0
  58. package/dist/esm/utils/webpack/env/index.js.map +1 -1
  59. package/dist/types/config/source.d.ts.map +1 -1
  60. package/dist/types/preset/node/index.d.ts.map +1 -1
  61. package/dist/types/preset/node/providers/express-tracing-middleware.d.ts.map +1 -1
  62. package/dist/types/preset/node/providers/public-envs.d.ts +6 -0
  63. package/dist/types/preset/node/providers/public-envs.d.ts.map +1 -0
  64. package/dist/types/preset/node/providers/telemetry-tracer-provider.d.ts +9 -0
  65. package/dist/types/preset/node/providers/telemetry-tracer-provider.d.ts.map +1 -0
  66. package/dist/types/preset/node/providers/telemetry-tracer-resource.d.ts +9 -0
  67. package/dist/types/preset/node/providers/telemetry-tracer-resource.d.ts.map +1 -0
  68. package/dist/types/preset/node/providers/{span-exporter.d.ts → telemetry-tracer-span-exporter.d.ts} +3 -3
  69. package/dist/types/preset/node/providers/telemetry-tracer-span-exporter.d.ts.map +1 -0
  70. package/dist/types/preset/node/providers/{tracer.d.ts → telemetry-tracer.d.ts} +1 -1
  71. package/dist/types/preset/node/providers/telemetry-tracer.d.ts.map +1 -0
  72. package/dist/types/preset/node/utils/axios-tracing-middleware.d.ts +1 -3
  73. package/dist/types/preset/node/utils/axios-tracing-middleware.d.ts.map +1 -1
  74. package/dist/types/preset/node/utils/emitter-as-target.d.ts +0 -1
  75. package/dist/types/preset/node/utils/emitter-as-target.d.ts.map +1 -1
  76. package/dist/types/preset/node/utils/telemetry.d.ts +8 -0
  77. package/dist/types/preset/node/utils/telemetry.d.ts.map +1 -0
  78. package/dist/types/preset/server/providers/page-helmet.d.ts +1 -0
  79. package/dist/types/preset/server/providers/page-helmet.d.ts.map +1 -1
  80. package/dist/types/preset/server/types.d.ts +1 -0
  81. package/dist/types/preset/server/types.d.ts.map +1 -1
  82. package/dist/types/tokens.d.ts +5 -2
  83. package/dist/types/tokens.d.ts.map +1 -1
  84. package/dist/types/utils/ssr/index.d.ts +1 -0
  85. package/dist/types/utils/ssr/index.d.ts.map +1 -1
  86. package/dist/types/utils/webpack/env/index.d.ts +1 -0
  87. package/dist/types/utils/webpack/env/index.d.ts.map +1 -1
  88. package/package.json +8 -29
  89. package/dist/cjs/preset/bun/index.js +0 -80
  90. package/dist/cjs/preset/bun/index.js.map +0 -1
  91. package/dist/cjs/preset/bun/providers/config-source.js +0 -13
  92. package/dist/cjs/preset/bun/providers/config-source.js.map +0 -1
  93. package/dist/cjs/preset/bun/providers/log-handler-sentry.js +0 -26
  94. package/dist/cjs/preset/bun/providers/log-handler-sentry.js.map +0 -1
  95. package/dist/cjs/preset/bun/providers/logger.js +0 -18
  96. package/dist/cjs/preset/bun/providers/logger.js.map +0 -1
  97. package/dist/cjs/preset/bun/providers/serve-metrics.js +0 -25
  98. package/dist/cjs/preset/bun/providers/serve-metrics.js.map +0 -1
  99. package/dist/cjs/preset/bun/providers/serve-middleware.js +0 -29
  100. package/dist/cjs/preset/bun/providers/serve-middleware.js.map +0 -1
  101. package/dist/cjs/preset/bun/providers/service-routes.js +0 -16
  102. package/dist/cjs/preset/bun/providers/service-routes.js.map +0 -1
  103. package/dist/cjs/preset/bun/utils/get-stats-handler.js.map +0 -1
  104. package/dist/cjs/preset/bun-handler/index.js +0 -62
  105. package/dist/cjs/preset/bun-handler/index.js.map +0 -1
  106. package/dist/cjs/preset/bun-handler/providers/accept-type.js +0 -24
  107. package/dist/cjs/preset/bun-handler/providers/accept-type.js.map +0 -1
  108. package/dist/cjs/preset/bun-handler/providers/fetch-middleware.js +0 -30
  109. package/dist/cjs/preset/bun-handler/providers/fetch-middleware.js.map +0 -1
  110. package/dist/cjs/preset/bun-handler/providers/handler-main.js +0 -75
  111. package/dist/cjs/preset/bun-handler/providers/handler-main.js.map +0 -1
  112. package/dist/cjs/preset/bun-handler/providers/specific-params.js +0 -19
  113. package/dist/cjs/preset/bun-handler/providers/specific-params.js.map +0 -1
  114. package/dist/cjs/preset/isomorphic/utils/hide-first-id.js +0 -20
  115. package/dist/cjs/preset/isomorphic/utils/hide-first-id.js.map +0 -1
  116. package/dist/cjs/preset/node/providers/span-exporter.js.map +0 -1
  117. package/dist/cjs/preset/node/providers/tracer-provider-resource.js +0 -26
  118. package/dist/cjs/preset/node/providers/tracer-provider-resource.js.map +0 -1
  119. package/dist/cjs/preset/node/providers/tracer-provider.js.map +0 -1
  120. package/dist/cjs/preset/node/providers/tracer.js.map +0 -1
  121. package/dist/esm/preset/bun/index.js +0 -63
  122. package/dist/esm/preset/bun/index.js.map +0 -1
  123. package/dist/esm/preset/bun/providers/config-source.js +0 -6
  124. package/dist/esm/preset/bun/providers/config-source.js.map +0 -1
  125. package/dist/esm/preset/bun/providers/log-handler-sentry.js +0 -20
  126. package/dist/esm/preset/bun/providers/log-handler-sentry.js.map +0 -1
  127. package/dist/esm/preset/bun/providers/logger.js +0 -12
  128. package/dist/esm/preset/bun/providers/logger.js.map +0 -1
  129. package/dist/esm/preset/bun/providers/serve-metrics.js +0 -18
  130. package/dist/esm/preset/bun/providers/serve-metrics.js.map +0 -1
  131. package/dist/esm/preset/bun/providers/serve-middleware.js +0 -23
  132. package/dist/esm/preset/bun/providers/serve-middleware.js.map +0 -1
  133. package/dist/esm/preset/bun/providers/service-routes.js +0 -10
  134. package/dist/esm/preset/bun/providers/service-routes.js.map +0 -1
  135. package/dist/esm/preset/bun/utils/get-stats-handler.js +0 -22
  136. package/dist/esm/preset/bun/utils/get-stats-handler.js.map +0 -1
  137. package/dist/esm/preset/bun-handler/index.js +0 -57
  138. package/dist/esm/preset/bun-handler/index.js.map +0 -1
  139. package/dist/esm/preset/bun-handler/providers/accept-type.js +0 -18
  140. package/dist/esm/preset/bun-handler/providers/accept-type.js.map +0 -1
  141. package/dist/esm/preset/bun-handler/providers/fetch-middleware.js +0 -24
  142. package/dist/esm/preset/bun-handler/providers/fetch-middleware.js.map +0 -1
  143. package/dist/esm/preset/bun-handler/providers/handler-main.js +0 -66
  144. package/dist/esm/preset/bun-handler/providers/handler-main.js.map +0 -1
  145. package/dist/esm/preset/bun-handler/providers/specific-params.js +0 -13
  146. package/dist/esm/preset/bun-handler/providers/specific-params.js.map +0 -1
  147. package/dist/esm/preset/isomorphic/utils/hide-first-id.js +0 -14
  148. package/dist/esm/preset/isomorphic/utils/hide-first-id.js.map +0 -1
  149. package/dist/esm/preset/node/providers/span-exporter.js.map +0 -1
  150. package/dist/esm/preset/node/providers/tracer-provider-resource.js +0 -20
  151. package/dist/esm/preset/node/providers/tracer-provider-resource.js.map +0 -1
  152. package/dist/esm/preset/node/providers/tracer-provider.js +0 -22
  153. package/dist/esm/preset/node/providers/tracer-provider.js.map +0 -1
  154. package/dist/esm/preset/node/providers/tracer.js.map +0 -1
  155. package/dist/types/preset/bun/index.d.ts +0 -10
  156. package/dist/types/preset/bun/index.d.ts.map +0 -1
  157. package/dist/types/preset/bun/providers/config-source.d.ts +0 -3
  158. package/dist/types/preset/bun/providers/config-source.d.ts.map +0 -1
  159. package/dist/types/preset/bun/providers/log-handler-sentry.d.ts +0 -3
  160. package/dist/types/preset/bun/providers/log-handler-sentry.d.ts.map +0 -1
  161. package/dist/types/preset/bun/providers/logger.d.ts +0 -4
  162. package/dist/types/preset/bun/providers/logger.d.ts.map +0 -1
  163. package/dist/types/preset/bun/providers/serve-metrics.d.ts +0 -3
  164. package/dist/types/preset/bun/providers/serve-metrics.d.ts.map +0 -1
  165. package/dist/types/preset/bun/providers/serve-middleware.d.ts +0 -4
  166. package/dist/types/preset/bun/providers/serve-middleware.d.ts.map +0 -1
  167. package/dist/types/preset/bun/providers/service-routes.d.ts +0 -3
  168. package/dist/types/preset/bun/providers/service-routes.d.ts.map +0 -1
  169. package/dist/types/preset/bun/utils/get-stats-handler.d.ts +0 -7
  170. package/dist/types/preset/bun/utils/get-stats-handler.d.ts.map +0 -1
  171. package/dist/types/preset/bun-handler/index.d.ts +0 -9
  172. package/dist/types/preset/bun-handler/index.d.ts.map +0 -1
  173. package/dist/types/preset/bun-handler/providers/accept-type.d.ts +0 -11
  174. package/dist/types/preset/bun-handler/providers/accept-type.d.ts.map +0 -1
  175. package/dist/types/preset/bun-handler/providers/fetch-middleware.d.ts +0 -4
  176. package/dist/types/preset/bun-handler/providers/fetch-middleware.d.ts.map +0 -1
  177. package/dist/types/preset/bun-handler/providers/handler-main.d.ts +0 -3
  178. package/dist/types/preset/bun-handler/providers/handler-main.d.ts.map +0 -1
  179. package/dist/types/preset/bun-handler/providers/specific-params.d.ts +0 -3
  180. package/dist/types/preset/bun-handler/providers/specific-params.d.ts.map +0 -1
  181. package/dist/types/preset/isomorphic/utils/hide-first-id.d.ts +0 -11
  182. package/dist/types/preset/isomorphic/utils/hide-first-id.d.ts.map +0 -1
  183. package/dist/types/preset/node/providers/span-exporter.d.ts.map +0 -1
  184. package/dist/types/preset/node/providers/tracer-provider-resource.d.ts +0 -9
  185. package/dist/types/preset/node/providers/tracer-provider-resource.d.ts.map +0 -1
  186. package/dist/types/preset/node/providers/tracer-provider.d.ts +0 -9
  187. package/dist/types/preset/node/providers/tracer-provider.d.ts.map +0 -1
  188. package/dist/types/preset/node/providers/tracer.d.ts.map +0 -1
@@ -20,6 +20,11 @@ function createConfigSource(dictionary) {
20
20
  if (typeof __ISOMORPH_ENV__ !== 'undefined') {
21
21
  Object.assign(source, __ISOMORPH_ENV__);
22
22
  }
23
+
24
+ // докидываем публичные переменные сервиса из глобального окружения
25
+ if (source.APP_NAME && typeof globalThis[`${source.APP_NAME}__envs`] !== 'undefined') {
26
+ Object.assign(source, globalThis[`${source.APP_NAME}__envs`]);
27
+ }
23
28
  return new _env.Env(source);
24
29
  }
25
30
  //# sourceMappingURL=source.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","names":["_env","require","createConfigSource","dictionary","source","Object","assign","__ISOMORPH_ENV__","Env"],"sources":["../../../src/config/source.ts"],"sourcesContent":["import type { ConfigSource, Dictionary } from './types';\nimport { Env } from '@humanwhocodes/env';\n\ndeclare const __ISOMORPH_ENV__: unknown;\n\n/**\n * Возвращает новый источник конфигурации.\n * @param dictionary Опции.\n * @return Источник.\n */\nexport function createConfigSource(dictionary: Dictionary): ConfigSource {\n const source: Dictionary = {};\n\n // берем все переменные из предоставленной среды\n Object.assign(source, dictionary);\n\n // докидываем зашиваемые переменные окружения\n if (typeof __ISOMORPH_ENV__ !== 'undefined') {\n Object.assign(source, __ISOMORPH_ENV__);\n }\n\n return new Env(source);\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,UAAsB,EAAgB;EACvE,MAAMC,MAAkB,GAAG,CAAC,CAAC;;EAE7B;EACAC,MAAM,CAACC,MAAM,CAACF,MAAM,EAAED,UAAU,CAAC;;EAEjC;EACA,IAAI,OAAOI,gBAAgB,KAAK,WAAW,EAAE;IAC3CF,MAAM,CAACC,MAAM,CAACF,MAAM,EAAEG,gBAAgB,CAAC;EACzC;EAEA,OAAO,IAAIC,QAAG,CAACJ,MAAM,CAAC;AACxB"}
1
+ {"version":3,"file":"source.js","names":["_env","require","createConfigSource","dictionary","source","Object","assign","__ISOMORPH_ENV__","APP_NAME","globalThis","Env"],"sources":["../../../src/config/source.ts"],"sourcesContent":["import type { ConfigSource, Dictionary } from './types';\nimport { Env } from '@humanwhocodes/env';\n\ndeclare const __ISOMORPH_ENV__: unknown;\n\n/**\n * Возвращает новый источник конфигурации.\n * @param dictionary Опции.\n * @return Источник.\n */\nexport function createConfigSource(dictionary: Dictionary): ConfigSource {\n const source: Dictionary = {};\n\n // берем все переменные из предоставленной среды\n Object.assign(source, dictionary);\n\n // докидываем зашиваемые переменные окружения\n if (typeof __ISOMORPH_ENV__ !== 'undefined') {\n Object.assign(source, __ISOMORPH_ENV__);\n }\n\n // докидываем публичные переменные сервиса из глобального окружения\n if (source.APP_NAME && typeof (globalThis as any)[`${source.APP_NAME}__envs`] !== 'undefined') {\n Object.assign(source, (globalThis as any)[`${source.APP_NAME}__envs`]);\n }\n\n return new Env(source);\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AAIA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,UAAsB,EAAgB;EACvE,MAAMC,MAAkB,GAAG,CAAC,CAAC;;EAE7B;EACAC,MAAM,CAACC,MAAM,CAACF,MAAM,EAAED,UAAU,CAAC;;EAEjC;EACA,IAAI,OAAOI,gBAAgB,KAAK,WAAW,EAAE;IAC3CF,MAAM,CAACC,MAAM,CAACF,MAAM,EAAEG,gBAAgB,CAAC;EACzC;;EAEA;EACA,IAAIH,MAAM,CAACI,QAAQ,IAAI,OAAQC,UAAU,CAAU,GAAEL,MAAM,CAACI,QAAS,QAAO,CAAC,KAAK,WAAW,EAAE;IAC7FH,MAAM,CAACC,MAAM,CAACF,MAAM,EAAGK,UAAU,CAAU,GAAEL,MAAM,CAACI,QAAS,QAAO,CAAC,CAAC;EACxE;EAEA,OAAO,IAAIE,QAAG,CAACN,MAAM,CAAC;AACxB"}
@@ -1,21 +1,19 @@
1
1
  {
2
2
  "type": "commonjs",
3
3
  "name": "@sima-land/isomorph",
4
- "version": "11.0.0-alpha.53",
4
+ "version": "11.0.0-alpha.55",
5
5
  "dependencies": {
6
6
  "@humanwhocodes/env": "^3.0.5",
7
7
  "@krutoo/fetch-tools": "^0.0.16",
8
8
  "@opentelemetry/api": "^1.9.0",
9
9
  "@opentelemetry/exporter-prometheus": "^0.52.1",
10
- "@opentelemetry/exporter-trace-otlp-http": "^0.52.1",
11
- "@opentelemetry/propagator-jaeger": "^1.25.1",
12
- "@opentelemetry/resources": "^1.25.1",
13
- "@opentelemetry/sdk-metrics": "^1.25.1",
14
- "@opentelemetry/sdk-trace-base": "^1.25.1",
15
- "@opentelemetry/sdk-trace-node": "^1.25.1",
16
- "@opentelemetry/semantic-conventions": "^1.25.1",
10
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.56.0",
11
+ "@opentelemetry/resources": "^1.30.1",
12
+ "@opentelemetry/sdk-metrics": "^1.30.1",
13
+ "@opentelemetry/sdk-trace-base": "^1.30.1",
14
+ "@opentelemetry/sdk-trace-node": "^1.30.1",
15
+ "@opentelemetry/semantic-conventions": "1.28.0",
17
16
  "@sentry/browser": "^8.33.1",
18
- "@sentry/bun": "^8.33.1",
19
17
  "@sentry/node": "^8.33.1",
20
18
  "accepts": "^1.3.8",
21
19
  "dotenv": "^16.3.1",
@@ -44,12 +44,13 @@ var _expressTracingMiddleware = require("./providers/express-tracing-middleware"
44
44
  var _knownHttpApiHosts = require("../server/providers/known-http-api-hosts");
45
45
  var _logger = require("./providers/logger");
46
46
  var _metricsExpressApp = require("./providers/metrics-express-app");
47
- var _spanExporter = require("./providers/span-exporter");
47
+ var _telemetryTracer = require("./providers/telemetry-tracer");
48
+ var _telemetryTracerSpanExporter = require("./providers/telemetry-tracer-span-exporter");
48
49
  var _ssrBridgeServerSide = require("../server/providers/ssr-bridge-server-side");
49
- var _tracer = require("./providers/tracer");
50
- var _tracerProvider = require("./providers/tracer-provider");
51
- var _tracerProviderResource = require("./providers/tracer-provider-resource");
50
+ var _telemetryTracerProvider = require("./providers/telemetry-tracer-provider");
51
+ var _telemetryTracerResource = require("./providers/telemetry-tracer-resource");
52
52
  var _mainExpressApp = require("./providers/main-express-app");
53
+ var _publicEnvs = require("./providers/public-envs");
53
54
  var _getClientIp = require("./utils/get-client-ip");
54
55
  var _getForwardedHeaders = require("./utils/get-forwarded-headers");
55
56
  var _getPageResponseFormat = require("./utils/get-page-response-format");
@@ -66,15 +67,16 @@ function PresetNode(customize) {
66
67
  // config
67
68
  preset.set(_tokens.KnownToken.Config.source, _configSource.provideConfigSource);
68
69
  preset.set(_tokens.KnownToken.Config.base, _baseConfig.provideBaseConfig);
70
+ preset.set(_tokens.KnownToken.Config.publicEnvs, _publicEnvs.providePublicEnvs);
69
71
 
70
72
  // log
71
73
  preset.set(_tokens.KnownToken.logger, _logger.provideLogger);
72
74
 
73
75
  // tracing
74
- preset.set(_tokens.KnownToken.Tracing.tracer, _tracer.provideTracer);
75
- preset.set(_tokens.KnownToken.Tracing.spanExporter, _spanExporter.provideSpanExporter);
76
- preset.set(_tokens.KnownToken.Tracing.tracerProvider, _tracerProvider.provideTracerProvider);
77
- preset.set(_tokens.KnownToken.Tracing.tracerProviderResource, _tracerProviderResource.provideTracerProviderResource);
76
+ preset.set(_tokens.KnownToken.Tracing.tracer, _telemetryTracer.provideTracer);
77
+ preset.set(_tokens.KnownToken.Tracing.spanExporter, _telemetryTracerSpanExporter.provideSpanExporter);
78
+ preset.set(_tokens.KnownToken.Tracing.provider, _telemetryTracerProvider.provideTracingProvider);
79
+ preset.set(_tokens.KnownToken.Tracing.resource, _telemetryTracerResource.provideTracingResource);
78
80
 
79
81
  // metrics
80
82
  preset.set(_tokens.KnownToken.Metrics.expressApp, _metricsExpressApp.provideMetricsExpressApp);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["_tokens","require","_axiosFactory","_fetch","_baseConfig","_di","_healthCheck","_configSource","_expressErrorMiddleware","_expressFactory","_expressLogMiddleware","_expressMetricsMiddleware","_expressRequestMiddleware","_expressTracingMiddleware","_knownHttpApiHosts","_logger","_metricsExpressApp","_spanExporter","_ssrBridgeServerSide","_tracer","_tracerProvider","_tracerProviderResource","_mainExpressApp","_getClientIp","_getForwardedHeaders","_getPageResponseFormat","_handlerProvider","PresetNode","customize","preset","createPreset","set","KnownToken","Config","source","provideConfigSource","base","provideBaseConfig","logger","provideLogger","Tracing","tracer","provideTracer","spanExporter","provideSpanExporter","tracerProvider","provideTracerProvider","tracerProviderResource","provideTracerProviderResource","Metrics","expressApp","provideMetricsExpressApp","Http","fetch","provideFetch","Fetch","middleware","Serve","Proxy","config","Axios","factory","provideAxiosFactory","Express","app","provideMainExpressApp","pageRoutes","serviceRoutes","resolve","Handlers","healthCheck","Middleware","request","log","metrics","tracing","endMiddleware","error","provideExpressFactory","provideExpressRequestMiddleware","provideExpressLogMiddleware","provideExpressMetricsMiddleware","provideExpressTracingMiddleware","provideExpressErrorMiddleware","Api","knownHosts","provideKnownHttpApiHosts","SsrBridge","serverSide","provideSsrBridgeServerSide","override","bind"],"sources":["../../../../src/preset/node/index.ts"],"sourcesContent":["import { KnownToken } from '../../tokens';\nimport { provideAxiosFactory } from '../isomorphic/providers/axios-factory';\nimport { provideFetch } from '../isomorphic/providers/fetch';\nimport { provideBaseConfig } from '../isomorphic/providers/base-config';\nimport { Preset, createPreset } from '../../di';\nimport { PresetTuner } from '../isomorphic/types';\nimport { healthCheck } from '../../utils/express/handler/health-check';\nimport { provideConfigSource } from './providers/config-source';\nimport { provideExpressErrorMiddleware } from './providers/express-error-middleware';\nimport { provideExpressFactory } from './providers/express-factory';\nimport { provideExpressLogMiddleware } from './providers/express-log-middleware';\nimport { provideExpressMetricsMiddleware } from './providers/express-metrics-middleware';\nimport { provideExpressRequestMiddleware } from './providers/express-request-middleware';\nimport { provideExpressTracingMiddleware } from './providers/express-tracing-middleware';\nimport { provideKnownHttpApiHosts } from '../server/providers/known-http-api-hosts';\nimport { provideLogger } from './providers/logger';\nimport { provideMetricsExpressApp } from './providers/metrics-express-app';\nimport { provideSpanExporter } from './providers/span-exporter';\nimport { provideSsrBridgeServerSide } from '../server/providers/ssr-bridge-server-side';\nimport { provideTracer } from './providers/tracer';\nimport { provideTracerProvider } from './providers/tracer-provider';\nimport { provideTracerProviderResource } from './providers/tracer-provider-resource';\nimport { provideMainExpressApp } from './providers/main-express-app';\nimport { ExpressRouteList } from './types';\n\n/**\n * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @return Preset.\n */\nexport function PresetNode(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n // config\n preset.set(KnownToken.Config.source, provideConfigSource);\n preset.set(KnownToken.Config.base, provideBaseConfig);\n\n // log\n preset.set(KnownToken.logger, provideLogger);\n\n // tracing\n preset.set(KnownToken.Tracing.tracer, provideTracer);\n preset.set(KnownToken.Tracing.spanExporter, provideSpanExporter);\n preset.set(KnownToken.Tracing.tracerProvider, provideTracerProvider);\n preset.set(KnownToken.Tracing.tracerProviderResource, provideTracerProviderResource);\n\n // metrics\n preset.set(KnownToken.Metrics.expressApp, provideMetricsExpressApp);\n\n // fetch\n preset.set(KnownToken.Http.fetch, provideFetch);\n preset.set(KnownToken.Http.Fetch.middleware, () => []);\n preset.set(KnownToken.Http.Serve.Proxy.config, () => null);\n\n // axios\n preset.set(KnownToken.Axios.factory, provideAxiosFactory);\n preset.set(KnownToken.Axios.middleware, () => []);\n\n // express\n preset.set(KnownToken.Express.app, provideMainExpressApp);\n preset.set(KnownToken.Express.pageRoutes, () => []);\n preset.set(\n KnownToken.Express.serviceRoutes,\n (resolve): ExpressRouteList => [\n ['/healthcheck', resolve(KnownToken.Express.Handlers.healthCheck)],\n ],\n );\n preset.set(KnownToken.Express.middleware, resolve => [\n resolve(KnownToken.Express.Middleware.request),\n resolve(KnownToken.Express.Middleware.log),\n resolve(KnownToken.Express.Middleware.metrics),\n resolve(KnownToken.Express.Middleware.tracing),\n ]);\n preset.set(KnownToken.Express.endMiddleware, resolve => [\n resolve(KnownToken.Express.Middleware.error),\n ]);\n preset.set(KnownToken.Express.factory, provideExpressFactory);\n preset.set(KnownToken.Express.Handlers.healthCheck, healthCheck);\n preset.set(KnownToken.Express.Middleware.request, provideExpressRequestMiddleware);\n preset.set(KnownToken.Express.Middleware.log, provideExpressLogMiddleware);\n preset.set(KnownToken.Express.Middleware.metrics, provideExpressMetricsMiddleware);\n preset.set(KnownToken.Express.Middleware.tracing, provideExpressTracingMiddleware);\n preset.set(KnownToken.Express.Middleware.error, provideExpressErrorMiddleware);\n\n // http api\n preset.set(KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);\n\n // ssr bridge\n preset.set(KnownToken.SsrBridge.serverSide, provideSsrBridgeServerSide);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n\nexport type { ExpressHandlerContext, ExpressRouteList } from './types';\n\n// доступные утилиты\nexport { getClientIp } from './utils/get-client-ip';\nexport { getForwardedHeaders } from './utils/get-forwarded-headers';\nexport { getPageResponseFormat } from './utils/get-page-response-format';\nexport { HandlerProvider } from './utils/handler-provider';\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":["_tokens","require","_axiosFactory","_fetch","_baseConfig","_di","_healthCheck","_configSource","_expressErrorMiddleware","_expressFactory","_expressLogMiddleware","_expressMetricsMiddleware","_expressRequestMiddleware","_expressTracingMiddleware","_knownHttpApiHosts","_logger","_metricsExpressApp","_telemetryTracer","_telemetryTracerSpanExporter","_ssrBridgeServerSide","_telemetryTracerProvider","_telemetryTracerResource","_mainExpressApp","_publicEnvs","_getClientIp","_getForwardedHeaders","_getPageResponseFormat","_handlerProvider","PresetNode","customize","preset","createPreset","set","KnownToken","Config","source","provideConfigSource","base","provideBaseConfig","publicEnvs","providePublicEnvs","logger","provideLogger","Tracing","tracer","provideTracer","spanExporter","provideSpanExporter","provider","provideTracingProvider","resource","provideTracingResource","Metrics","expressApp","provideMetricsExpressApp","Http","fetch","provideFetch","Fetch","middleware","Serve","Proxy","config","Axios","factory","provideAxiosFactory","Express","app","provideMainExpressApp","pageRoutes","serviceRoutes","resolve","Handlers","healthCheck","Middleware","request","log","metrics","tracing","endMiddleware","error","provideExpressFactory","provideExpressRequestMiddleware","provideExpressLogMiddleware","provideExpressMetricsMiddleware","provideExpressTracingMiddleware","provideExpressErrorMiddleware","Api","knownHosts","provideKnownHttpApiHosts","SsrBridge","serverSide","provideSsrBridgeServerSide","override","bind"],"sources":["../../../../src/preset/node/index.ts"],"sourcesContent":["import { KnownToken } from '../../tokens';\nimport { provideAxiosFactory } from '../isomorphic/providers/axios-factory';\nimport { provideFetch } from '../isomorphic/providers/fetch';\nimport { provideBaseConfig } from '../isomorphic/providers/base-config';\nimport { Preset, createPreset } from '../../di';\nimport { PresetTuner } from '../isomorphic/types';\nimport { healthCheck } from '../../utils/express/handler/health-check';\nimport { provideConfigSource } from './providers/config-source';\nimport { provideExpressErrorMiddleware } from './providers/express-error-middleware';\nimport { provideExpressFactory } from './providers/express-factory';\nimport { provideExpressLogMiddleware } from './providers/express-log-middleware';\nimport { provideExpressMetricsMiddleware } from './providers/express-metrics-middleware';\nimport { provideExpressRequestMiddleware } from './providers/express-request-middleware';\nimport { provideExpressTracingMiddleware } from './providers/express-tracing-middleware';\nimport { provideKnownHttpApiHosts } from '../server/providers/known-http-api-hosts';\nimport { provideLogger } from './providers/logger';\nimport { provideMetricsExpressApp } from './providers/metrics-express-app';\nimport { provideTracer } from './providers/telemetry-tracer';\nimport { provideSpanExporter } from './providers/telemetry-tracer-span-exporter';\nimport { provideSsrBridgeServerSide } from '../server/providers/ssr-bridge-server-side';\nimport { provideTracingProvider } from './providers/telemetry-tracer-provider';\nimport { provideTracingResource } from './providers/telemetry-tracer-resource';\nimport { provideMainExpressApp } from './providers/main-express-app';\nimport { ExpressRouteList } from './types';\nimport { providePublicEnvs } from './providers/public-envs';\n\n/**\n * Возвращает preset с зависимостями по умолчанию для frontend-микросервисов на Node.js.\n * @param customize Получит функцию с помощью которой можно переопределить предустановленные провайдеры.\n * @return Preset.\n */\nexport function PresetNode(customize?: PresetTuner): Preset {\n // ВАЖНО: используем .set() вместо аргумента defaults функции createPreset из-за скорости\n const preset = createPreset();\n\n // config\n preset.set(KnownToken.Config.source, provideConfigSource);\n preset.set(KnownToken.Config.base, provideBaseConfig);\n preset.set(KnownToken.Config.publicEnvs, providePublicEnvs);\n\n // log\n preset.set(KnownToken.logger, provideLogger);\n\n // tracing\n preset.set(KnownToken.Tracing.tracer, provideTracer);\n preset.set(KnownToken.Tracing.spanExporter, provideSpanExporter);\n preset.set(KnownToken.Tracing.provider, provideTracingProvider);\n preset.set(KnownToken.Tracing.resource, provideTracingResource);\n\n // metrics\n preset.set(KnownToken.Metrics.expressApp, provideMetricsExpressApp);\n\n // fetch\n preset.set(KnownToken.Http.fetch, provideFetch);\n preset.set(KnownToken.Http.Fetch.middleware, () => []);\n preset.set(KnownToken.Http.Serve.Proxy.config, () => null);\n\n // axios\n preset.set(KnownToken.Axios.factory, provideAxiosFactory);\n preset.set(KnownToken.Axios.middleware, () => []);\n\n // express\n preset.set(KnownToken.Express.app, provideMainExpressApp);\n preset.set(KnownToken.Express.pageRoutes, () => []);\n preset.set(\n KnownToken.Express.serviceRoutes,\n (resolve): ExpressRouteList => [\n ['/healthcheck', resolve(KnownToken.Express.Handlers.healthCheck)],\n ],\n );\n preset.set(KnownToken.Express.middleware, resolve => [\n resolve(KnownToken.Express.Middleware.request),\n resolve(KnownToken.Express.Middleware.log),\n resolve(KnownToken.Express.Middleware.metrics),\n resolve(KnownToken.Express.Middleware.tracing),\n ]);\n preset.set(KnownToken.Express.endMiddleware, resolve => [\n resolve(KnownToken.Express.Middleware.error),\n ]);\n preset.set(KnownToken.Express.factory, provideExpressFactory);\n preset.set(KnownToken.Express.Handlers.healthCheck, healthCheck);\n preset.set(KnownToken.Express.Middleware.request, provideExpressRequestMiddleware);\n preset.set(KnownToken.Express.Middleware.log, provideExpressLogMiddleware);\n preset.set(KnownToken.Express.Middleware.metrics, provideExpressMetricsMiddleware);\n preset.set(KnownToken.Express.Middleware.tracing, provideExpressTracingMiddleware);\n preset.set(KnownToken.Express.Middleware.error, provideExpressErrorMiddleware);\n\n // http api\n preset.set(KnownToken.Http.Api.knownHosts, provideKnownHttpApiHosts);\n\n // ssr bridge\n preset.set(KnownToken.SsrBridge.serverSide, provideSsrBridgeServerSide);\n\n if (customize) {\n customize({ override: preset.set.bind(preset) });\n }\n\n return preset;\n}\n\nexport type { ExpressHandlerContext, ExpressRouteList } from './types';\n\n// доступные утилиты\nexport { getClientIp } from './utils/get-client-ip';\nexport { getForwardedHeaders } from './utils/get-forwarded-headers';\nexport { getPageResponseFormat } from './utils/get-page-response-format';\nexport { HandlerProvider } from './utils/handler-provider';\n"],"mappings":"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"}
@@ -7,6 +7,7 @@ exports.provideExpressTracingMiddleware = provideExpressTracingMiddleware;
7
7
  var _tokens = require("../../../tokens");
8
8
  var _api = require("@opentelemetry/api");
9
9
  var _server = require("../../server");
10
+ var _incubating = require("@opentelemetry/semantic-conventions/incubating");
10
11
  /**
11
12
  * Провайдер промежуточного слоя трассировки входящих http-запросов.
12
13
  * @param resolve Функция для получения зависимости по токену.
@@ -22,18 +23,18 @@ function provideExpressTracingMiddleware(resolve) {
22
23
  */
23
24
  const getConventionalRequestAttrs = req => {
24
25
  const result = {
25
- 'request.path': req.originalUrl
26
+ [_incubating.ATTR_URL_PATH]: req.originalUrl
26
27
  };
27
28
  for (const headerName in req.headers) {
28
29
  if (headerName.toLowerCase().startsWith('simaland-')) {
29
- result[headerName] = req.header(headerName);
30
+ result[`${(0, _incubating.ATTR_HTTP_REQUEST_HEADER)(headerName)}`] = req.header(headerName);
30
31
  }
31
32
  }
32
33
  return result;
33
34
  };
34
35
  return (req, res, next) => {
35
36
  const externalContext = _api.propagation.extract(_api.ROOT_CONTEXT, req.headers);
36
- const rootSpan = tracer.startSpan('response', undefined, externalContext);
37
+ const rootSpan = tracer.startSpan(`${req.method} ${req.path}`, undefined, externalContext);
37
38
  rootSpan.setAttributes(getConventionalRequestAttrs(req));
38
39
  const rootContext = _api.trace.setSpan(externalContext, rootSpan);
39
40
  res.locals.tracing = {
@@ -42,12 +43,22 @@ function provideExpressTracingMiddleware(resolve) {
42
43
  renderSpan: null
43
44
  };
44
45
  res.once(_server.PAGE_HANDLER_EVENT_TYPE.renderStart, () => {
45
- res.locals.tracing.renderSpan = tracer.startSpan('render', undefined, rootContext);
46
+ res.locals.tracing.renderSpan = tracer.startSpan('react:renderToString', undefined, rootContext);
46
47
  res.once(_server.PAGE_HANDLER_EVENT_TYPE.renderFinish, () => {
47
48
  res.locals.tracing.renderSpan.end();
48
49
  });
49
50
  });
50
51
  res.once('finish', () => {
52
+ const contentLength = res.getHeader('content-length');
53
+ rootSpan.setAttributes({
54
+ [_incubating.ATTR_HTTP_RESPONSE_STATUS_CODE]: String(res.statusCode),
55
+ ...(res.statusCode > 400 && {
56
+ [_incubating.ATTR_ERROR_TYPE]: String(res.statusCode)
57
+ }),
58
+ ...(contentLength && {
59
+ [_incubating.ATTR_HTTP_RESPONSE_BODY_SIZE]: contentLength
60
+ })
61
+ });
51
62
  rootSpan.end();
52
63
  });
53
64
  next();
@@ -1 +1 @@
1
- {"version":3,"file":"express-tracing-middleware.js","names":["_tokens","require","_api","_server","provideExpressTracingMiddleware","resolve","tracer","KnownToken","Tracing","getConventionalRequestAttrs","req","result","originalUrl","headerName","headers","toLowerCase","startsWith","header","res","next","externalContext","propagation","extract","ROOT_CONTEXT","rootSpan","startSpan","undefined","setAttributes","rootContext","trace","setSpan","locals","tracing","renderSpan","once","PAGE_HANDLER_EVENT_TYPE","renderStart","renderFinish","end"],"sources":["../../../../../src/preset/node/providers/express-tracing-middleware.ts"],"sourcesContent":["import type express from 'express';\nimport type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { ROOT_CONTEXT, propagation, trace } from '@opentelemetry/api';\nimport { PAGE_HANDLER_EVENT_TYPE } from '../../server';\n\n/**\n * Провайдер промежуточного слоя трассировки входящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой.\n */\nexport function provideExpressTracingMiddleware(resolve: Resolve): express.Handler {\n const tracer = resolve(KnownToken.Tracing.tracer);\n\n /**\n * Возвращает набор стандартных атрибутов для спана.\n * @param req Входящий http-запрос.\n * @return Атрибуты.\n */\n const getConventionalRequestAttrs = (\n req: express.Request,\n ): Record<string, string | undefined> => {\n const result: Record<string, string | undefined> = {\n 'request.path': req.originalUrl,\n };\n\n for (const headerName in req.headers) {\n if (headerName.toLowerCase().startsWith('simaland-')) {\n result[headerName] = req.header(headerName);\n }\n }\n\n return result;\n };\n\n return (req, res, next) => {\n const externalContext = propagation.extract(ROOT_CONTEXT, req.headers);\n const rootSpan = tracer.startSpan('response', undefined, externalContext);\n\n rootSpan.setAttributes(getConventionalRequestAttrs(req));\n\n const rootContext = trace.setSpan(externalContext, rootSpan);\n\n res.locals.tracing = {\n rootSpan,\n rootContext,\n renderSpan: null,\n };\n\n res.once(PAGE_HANDLER_EVENT_TYPE.renderStart, () => {\n res.locals.tracing.renderSpan = tracer.startSpan('render', undefined, rootContext);\n\n res.once(PAGE_HANDLER_EVENT_TYPE.renderFinish, () => {\n res.locals.tracing.renderSpan.end();\n });\n });\n\n res.once('finish', () => {\n rootSpan.end();\n });\n\n next();\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASG,+BAA+BA,CAACC,OAAgB,EAAmB;EACjF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,OAAO,CAACF,MAAM,CAAC;;EAEjD;AACF;AACA;AACA;AACA;EACE,MAAMG,2BAA2B,GAC/BC,GAAoB,IACmB;IACvC,MAAMC,MAA0C,GAAG;MACjD,cAAc,EAAED,GAAG,CAACE;IACtB,CAAC;IAED,KAAK,MAAMC,UAAU,IAAIH,GAAG,CAACI,OAAO,EAAE;MACpC,IAAID,UAAU,CAACE,WAAW,CAAC,CAAC,CAACC,UAAU,CAAC,WAAW,CAAC,EAAE;QACpDL,MAAM,CAACE,UAAU,CAAC,GAAGH,GAAG,CAACO,MAAM,CAACJ,UAAU,CAAC;MAC7C;IACF;IAEA,OAAOF,MAAM;EACf,CAAC;EAED,OAAO,CAACD,GAAG,EAAEQ,GAAG,EAAEC,IAAI,KAAK;IACzB,MAAMC,eAAe,GAAGC,gBAAW,CAACC,OAAO,CAACC,iBAAY,EAAEb,GAAG,CAACI,OAAO,CAAC;IACtE,MAAMU,QAAQ,GAAGlB,MAAM,CAACmB,SAAS,CAAC,UAAU,EAAEC,SAAS,EAAEN,eAAe,CAAC;IAEzEI,QAAQ,CAACG,aAAa,CAAClB,2BAA2B,CAACC,GAAG,CAAC,CAAC;IAExD,MAAMkB,WAAW,GAAGC,UAAK,CAACC,OAAO,CAACV,eAAe,EAAEI,QAAQ,CAAC;IAE5DN,GAAG,CAACa,MAAM,CAACC,OAAO,GAAG;MACnBR,QAAQ;MACRI,WAAW;MACXK,UAAU,EAAE;IACd,CAAC;IAEDf,GAAG,CAACgB,IAAI,CAACC,+BAAuB,CAACC,WAAW,EAAE,MAAM;MAClDlB,GAAG,CAACa,MAAM,CAACC,OAAO,CAACC,UAAU,GAAG3B,MAAM,CAACmB,SAAS,CAAC,QAAQ,EAAEC,SAAS,EAAEE,WAAW,CAAC;MAElFV,GAAG,CAACgB,IAAI,CAACC,+BAAuB,CAACE,YAAY,EAAE,MAAM;QACnDnB,GAAG,CAACa,MAAM,CAACC,OAAO,CAACC,UAAU,CAACK,GAAG,CAAC,CAAC;MACrC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFpB,GAAG,CAACgB,IAAI,CAAC,QAAQ,EAAE,MAAM;MACvBV,QAAQ,CAACc,GAAG,CAAC,CAAC;IAChB,CAAC,CAAC;IAEFnB,IAAI,CAAC,CAAC;EACR,CAAC;AACH"}
1
+ {"version":3,"file":"express-tracing-middleware.js","names":["_tokens","require","_api","_server","_incubating","provideExpressTracingMiddleware","resolve","tracer","KnownToken","Tracing","getConventionalRequestAttrs","req","result","ATTR_URL_PATH","originalUrl","headerName","headers","toLowerCase","startsWith","ATTR_HTTP_REQUEST_HEADER","header","res","next","externalContext","propagation","extract","ROOT_CONTEXT","rootSpan","startSpan","method","path","undefined","setAttributes","rootContext","trace","setSpan","locals","tracing","renderSpan","once","PAGE_HANDLER_EVENT_TYPE","renderStart","renderFinish","end","contentLength","getHeader","ATTR_HTTP_RESPONSE_STATUS_CODE","String","statusCode","ATTR_ERROR_TYPE","ATTR_HTTP_RESPONSE_BODY_SIZE"],"sources":["../../../../../src/preset/node/providers/express-tracing-middleware.ts"],"sourcesContent":["import type express from 'express';\nimport type { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\nimport { Attributes, ROOT_CONTEXT, propagation, trace } from '@opentelemetry/api';\nimport { PAGE_HANDLER_EVENT_TYPE } from '../../server';\nimport {\n ATTR_ERROR_TYPE,\n ATTR_HTTP_REQUEST_HEADER,\n ATTR_HTTP_RESPONSE_BODY_SIZE,\n ATTR_HTTP_RESPONSE_STATUS_CODE,\n ATTR_URL_PATH,\n} from '@opentelemetry/semantic-conventions/incubating';\n\n/**\n * Провайдер промежуточного слоя трассировки входящих http-запросов.\n * @param resolve Функция для получения зависимости по токену.\n * @return Промежуточный слой.\n */\nexport function provideExpressTracingMiddleware(resolve: Resolve): express.Handler {\n const tracer = resolve(KnownToken.Tracing.tracer);\n\n /**\n * Возвращает набор стандартных атрибутов для спана.\n * @param req Входящий http-запрос.\n * @return Атрибуты.\n */\n const getConventionalRequestAttrs = (req: express.Request): Attributes => {\n const result: Attributes = {\n [ATTR_URL_PATH]: req.originalUrl,\n };\n\n for (const headerName in req.headers) {\n if (headerName.toLowerCase().startsWith('simaland-')) {\n result[`${ATTR_HTTP_REQUEST_HEADER(headerName)}`] = req.header(headerName);\n }\n }\n\n return result;\n };\n\n return (req, res, next) => {\n const externalContext = propagation.extract(ROOT_CONTEXT, req.headers);\n const rootSpan = tracer.startSpan(`${req.method} ${req.path}`, undefined, externalContext);\n\n rootSpan.setAttributes(getConventionalRequestAttrs(req));\n\n const rootContext = trace.setSpan(externalContext, rootSpan);\n\n res.locals.tracing = {\n rootSpan,\n rootContext,\n renderSpan: null,\n };\n\n res.once(PAGE_HANDLER_EVENT_TYPE.renderStart, () => {\n res.locals.tracing.renderSpan = tracer.startSpan(\n 'react:renderToString',\n undefined,\n rootContext,\n );\n\n res.once(PAGE_HANDLER_EVENT_TYPE.renderFinish, () => {\n res.locals.tracing.renderSpan.end();\n });\n });\n\n res.once('finish', () => {\n const contentLength = res.getHeader('content-length') as string;\n rootSpan.setAttributes({\n [ATTR_HTTP_RESPONSE_STATUS_CODE]: String(res.statusCode),\n ...(res.statusCode > 400 && { [ATTR_ERROR_TYPE]: String(res.statusCode) }),\n ...(contentLength && { [ATTR_HTTP_RESPONSE_BODY_SIZE]: contentLength }),\n });\n rootSpan.end();\n });\n\n next();\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,IAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAH,OAAA;AAQA;AACA;AACA;AACA;AACA;AACO,SAASI,+BAA+BA,CAACC,OAAgB,EAAmB;EACjF,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,OAAO,CAACF,MAAM,CAAC;;EAEjD;AACF;AACA;AACA;AACA;EACE,MAAMG,2BAA2B,GAAIC,GAAoB,IAAiB;IACxE,MAAMC,MAAkB,GAAG;MACzB,CAACC,yBAAa,GAAGF,GAAG,CAACG;IACvB,CAAC;IAED,KAAK,MAAMC,UAAU,IAAIJ,GAAG,CAACK,OAAO,EAAE;MACpC,IAAID,UAAU,CAACE,WAAW,CAAC,CAAC,CAACC,UAAU,CAAC,WAAW,CAAC,EAAE;QACpDN,MAAM,CAAE,GAAE,IAAAO,oCAAwB,EAACJ,UAAU,CAAE,EAAC,CAAC,GAAGJ,GAAG,CAACS,MAAM,CAACL,UAAU,CAAC;MAC5E;IACF;IAEA,OAAOH,MAAM;EACf,CAAC;EAED,OAAO,CAACD,GAAG,EAAEU,GAAG,EAAEC,IAAI,KAAK;IACzB,MAAMC,eAAe,GAAGC,gBAAW,CAACC,OAAO,CAACC,iBAAY,EAAEf,GAAG,CAACK,OAAO,CAAC;IACtE,MAAMW,QAAQ,GAAGpB,MAAM,CAACqB,SAAS,CAAE,GAAEjB,GAAG,CAACkB,MAAO,IAAGlB,GAAG,CAACmB,IAAK,EAAC,EAAEC,SAAS,EAAER,eAAe,CAAC;IAE1FI,QAAQ,CAACK,aAAa,CAACtB,2BAA2B,CAACC,GAAG,CAAC,CAAC;IAExD,MAAMsB,WAAW,GAAGC,UAAK,CAACC,OAAO,CAACZ,eAAe,EAAEI,QAAQ,CAAC;IAE5DN,GAAG,CAACe,MAAM,CAACC,OAAO,GAAG;MACnBV,QAAQ;MACRM,WAAW;MACXK,UAAU,EAAE;IACd,CAAC;IAEDjB,GAAG,CAACkB,IAAI,CAACC,+BAAuB,CAACC,WAAW,EAAE,MAAM;MAClDpB,GAAG,CAACe,MAAM,CAACC,OAAO,CAACC,UAAU,GAAG/B,MAAM,CAACqB,SAAS,CAC9C,sBAAsB,EACtBG,SAAS,EACTE,WACF,CAAC;MAEDZ,GAAG,CAACkB,IAAI,CAACC,+BAAuB,CAACE,YAAY,EAAE,MAAM;QACnDrB,GAAG,CAACe,MAAM,CAACC,OAAO,CAACC,UAAU,CAACK,GAAG,CAAC,CAAC;MACrC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFtB,GAAG,CAACkB,IAAI,CAAC,QAAQ,EAAE,MAAM;MACvB,MAAMK,aAAa,GAAGvB,GAAG,CAACwB,SAAS,CAAC,gBAAgB,CAAW;MAC/DlB,QAAQ,CAACK,aAAa,CAAC;QACrB,CAACc,0CAA8B,GAAGC,MAAM,CAAC1B,GAAG,CAAC2B,UAAU,CAAC;QACxD,IAAI3B,GAAG,CAAC2B,UAAU,GAAG,GAAG,IAAI;UAAE,CAACC,2BAAe,GAAGF,MAAM,CAAC1B,GAAG,CAAC2B,UAAU;QAAE,CAAC,CAAC;QAC1E,IAAIJ,aAAa,IAAI;UAAE,CAACM,wCAA4B,GAAGN;QAAc,CAAC;MACxE,CAAC,CAAC;MACFjB,QAAQ,CAACgB,GAAG,CAAC,CAAC;IAChB,CAAC,CAAC;IAEFrB,IAAI,CAAC,CAAC;EACR,CAAC;AACH"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.providePublicEnvs = providePublicEnvs;
7
+ /**
8
+ * Провайдер публичных переменных среды.
9
+ * @return Объект с публичными переменными среды.
10
+ */
11
+ function providePublicEnvs() {
12
+ const publicEnvs = {
13
+ IS_REDUX_DEVTOOLS_ENABLED: process.env.IS_REDUX_DEVTOOLS_ENABLED
14
+ };
15
+ for (const key in process.env) {
16
+ if (key.startsWith('PUBLIC_')) {
17
+ publicEnvs[key] = process.env[key];
18
+ }
19
+ }
20
+ return publicEnvs;
21
+ }
22
+ //# sourceMappingURL=public-envs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-envs.js","names":["providePublicEnvs","publicEnvs","IS_REDUX_DEVTOOLS_ENABLED","process","env","key","startsWith"],"sources":["../../../../../src/preset/node/providers/public-envs.ts"],"sourcesContent":["/**\n * Провайдер публичных переменных среды.\n * @return Объект с публичными переменными среды.\n */\nexport function providePublicEnvs() {\n const publicEnvs: Record<string, string | undefined> = {\n IS_REDUX_DEVTOOLS_ENABLED: process.env.IS_REDUX_DEVTOOLS_ENABLED,\n };\n for (const key in process.env) {\n if (key.startsWith('PUBLIC_')) {\n publicEnvs[key] = process.env[key];\n }\n }\n return publicEnvs;\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACO,SAASA,iBAAiBA,CAAA,EAAG;EAClC,MAAMC,UAA8C,GAAG;IACrDC,yBAAyB,EAAEC,OAAO,CAACC,GAAG,CAACF;EACzC,CAAC;EACD,KAAK,MAAMG,GAAG,IAAIF,OAAO,CAACC,GAAG,EAAE;IAC7B,IAAIC,GAAG,CAACC,UAAU,CAAC,SAAS,CAAC,EAAE;MAC7BL,UAAU,CAACI,GAAG,CAAC,GAAGF,OAAO,CAACC,GAAG,CAACC,GAAG,CAAC;IACpC;EACF;EACA,OAAOJ,UAAU;AACnB"}
@@ -3,25 +3,22 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.provideTracerProvider = provideTracerProvider;
6
+ exports.provideTracingProvider = provideTracingProvider;
7
7
  var _sdkTraceNode = require("@opentelemetry/sdk-trace-node");
8
- var _propagatorJaeger = require("@opentelemetry/propagator-jaeger");
9
8
  var _tokens = require("../../../tokens");
10
9
  /**
11
10
  * Провайдер объекта BasicTracerProvider.
12
11
  * @param resolve Функция для получения зависимости по токену.
13
12
  * @return BasicTracerProvider.
14
13
  */
15
- function provideTracerProvider(resolve) {
14
+ function provideTracingProvider(resolve) {
16
15
  const exporter = resolve(_tokens.KnownToken.Tracing.spanExporter);
17
- const resource = resolve(_tokens.KnownToken.Tracing.tracerProviderResource);
16
+ const resource = resolve(_tokens.KnownToken.Tracing.resource);
18
17
  const provider = new _sdkTraceNode.NodeTracerProvider({
19
- resource
20
- });
21
- provider.addSpanProcessor(new _sdkTraceNode.BatchSpanProcessor(exporter));
22
- provider.register({
23
- propagator: new _propagatorJaeger.JaegerPropagator()
18
+ resource,
19
+ spanProcessors: [new _sdkTraceNode.BatchSpanProcessor(exporter)]
24
20
  });
21
+ provider.register();
25
22
  return provider;
26
23
  }
27
- //# sourceMappingURL=tracer-provider.js.map
24
+ //# sourceMappingURL=telemetry-tracer-provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-tracer-provider.js","names":["_sdkTraceNode","require","_tokens","provideTracingProvider","resolve","exporter","KnownToken","Tracing","spanExporter","resource","provider","NodeTracerProvider","spanProcessors","BatchSpanProcessor","register"],"sources":["../../../../../src/preset/node/providers/telemetry-tracer-provider.ts"],"sourcesContent":["import type { Resolve } from \"../../../di\";\nimport type { BasicTracerProvider } from \"@opentelemetry/sdk-trace-base\";\nimport {\n BatchSpanProcessor,\n NodeTracerProvider,\n} from \"@opentelemetry/sdk-trace-node\";\nimport { KnownToken } from \"../../../tokens\";\n\n/**\n * Провайдер объекта BasicTracerProvider.\n * @param resolve Функция для получения зависимости по токену.\n * @return BasicTracerProvider.\n */\nexport function provideTracingProvider(resolve: Resolve): BasicTracerProvider {\n const exporter = resolve(KnownToken.Tracing.spanExporter);\n const resource = resolve(KnownToken.Tracing.resource);\n const provider = new NodeTracerProvider({\n resource,\n spanProcessors: [new BatchSpanProcessor(exporter)],\n });\n\n provider.register();\n\n return provider;\n}\n"],"mappings":";;;;;;AAEA,IAAAA,aAAA,GAAAC,OAAA;AAIA,IAAAC,OAAA,GAAAD,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASE,sBAAsBA,CAACC,OAAgB,EAAuB;EAC5E,MAAMC,QAAQ,GAAGD,OAAO,CAACE,kBAAU,CAACC,OAAO,CAACC,YAAY,CAAC;EACzD,MAAMC,QAAQ,GAAGL,OAAO,CAACE,kBAAU,CAACC,OAAO,CAACE,QAAQ,CAAC;EACrD,MAAMC,QAAQ,GAAG,IAAIC,gCAAkB,CAAC;IACtCF,QAAQ;IACRG,cAAc,EAAE,CAAC,IAAIC,gCAAkB,CAACR,QAAQ,CAAC;EACnD,CAAC,CAAC;EAEFK,QAAQ,CAACI,QAAQ,CAAC,CAAC;EAEnB,OAAOJ,QAAQ;AACjB"}
@@ -3,28 +3,27 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getStatsHandler = getStatsHandler;
6
+ exports.provideTracingResource = provideTracingResource;
7
+ var _resources = require("@opentelemetry/resources");
8
+ var SemanticArgs = _interopRequireWildcard(require("@opentelemetry/semantic-conventions/incubating"));
9
+ var _tokens = require("../../../tokens");
7
10
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
8
11
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
9
12
  /**
10
- * ВАЖНО: временная экспериментальная утилита, скорее всего будет удалена в будущем.
11
- * @inheritdoc
13
+ * Провайдер объекта Resource.
14
+ * @param resolve Функция для получения зависимости по токену.
15
+ * @return Resource.
12
16
  */
13
- function getStatsHandler() {
14
- /** @inheritdoc */
15
- const getHeapStats = async () => {
16
- // ВАЖНО: должны быть именно кавычки "'" по причине https://github.com/web-infra-dev/rspack/issues/5938#issuecomment-2000393152
17
- const jsc = await Promise.resolve().then(() => _interopRequireWildcard(require( /* webpackIgnore: true */
18
- 'bun:jsc')));
19
- return jsc.heapStats();
20
- };
21
- return async () => {
22
- const stats = await getHeapStats();
23
- return new Response(JSON.stringify(stats, null, 2), {
24
- headers: {
25
- 'content-type': 'application/json'
26
- }
27
- });
28
- };
17
+ function provideTracingResource(resolve) {
18
+ const config = resolve(_tokens.KnownToken.Config.base);
19
+ const resource = new _resources.Resource({
20
+ [SemanticArgs.ATTR_SERVICE_NAME]: config.appName,
21
+ [SemanticArgs.ATTR_SERVICE_VERSION]: config.appVersion,
22
+ [SemanticArgs.ATTR_DEPLOYMENT_ENVIRONMENT_NAME]: config.env
23
+ });
24
+ resource.merge((0, _resources.detectResourcesSync)({
25
+ detectors: [_resources.osDetector, _resources.envDetector, _resources.hostDetector, _resources.processDetector]
26
+ }));
27
+ return resource;
29
28
  }
30
- //# sourceMappingURL=get-stats-handler.js.map
29
+ //# sourceMappingURL=telemetry-tracer-resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-tracer-resource.js","names":["_resources","require","SemanticArgs","_interopRequireWildcard","_tokens","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","provideTracingResource","resolve","config","KnownToken","Config","base","resource","Resource","ATTR_SERVICE_NAME","appName","ATTR_SERVICE_VERSION","appVersion","ATTR_DEPLOYMENT_ENVIRONMENT_NAME","env","merge","detectResourcesSync","detectors","osDetector","envDetector","hostDetector","processDetector"],"sources":["../../../../../src/preset/node/providers/telemetry-tracer-resource.ts"],"sourcesContent":["import {\n detectResourcesSync,\n envDetector,\n hostDetector,\n osDetector,\n processDetector,\n Resource,\n} from \"@opentelemetry/resources\";\nimport * as SemanticArgs from \"@opentelemetry/semantic-conventions/incubating\";\nimport { KnownToken } from \"../../../tokens\";\n\nimport type { Resolve } from \"../../../di\";\n\n/**\n * Провайдер объекта Resource.\n * @param resolve Функция для получения зависимости по токену.\n * @return Resource.\n */\nexport function provideTracingResource(resolve: Resolve): Resource {\n const config = resolve(KnownToken.Config.base);\n\n const resource = new Resource({\n [SemanticArgs.ATTR_SERVICE_NAME]: config.appName,\n [SemanticArgs.ATTR_SERVICE_VERSION]: config.appVersion,\n [SemanticArgs.ATTR_DEPLOYMENT_ENVIRONMENT_NAME]: config.env,\n });\n\n resource.merge(\n detectResourcesSync({\n detectors: [osDetector, envDetector, hostDetector, processDetector],\n }),\n );\n\n return resource;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAQA,IAAAC,YAAA,GAAAC,uBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AAA6C,SAAAI,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAH,wBAAAO,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAI7C;AACA;AACA;AACA;AACA;AACO,SAASW,sBAAsBA,CAACC,OAAgB,EAAY;EACjE,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAE9C,MAAMC,QAAQ,GAAG,IAAIC,mBAAQ,CAAC;IAC5B,CAAChC,YAAY,CAACiC,iBAAiB,GAAGN,MAAM,CAACO,OAAO;IAChD,CAAClC,YAAY,CAACmC,oBAAoB,GAAGR,MAAM,CAACS,UAAU;IACtD,CAACpC,YAAY,CAACqC,gCAAgC,GAAGV,MAAM,CAACW;EAC1D,CAAC,CAAC;EAEFP,QAAQ,CAACQ,KAAK,CACZ,IAAAC,8BAAmB,EAAC;IAClBC,SAAS,EAAE,CAACC,qBAAU,EAAEC,sBAAW,EAAEC,uBAAY,EAAEC,0BAAe;EACpE,CAAC,CACH,CAAC;EAED,OAAOd,QAAQ;AACjB"}
@@ -4,8 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.provideSpanExporter = provideSpanExporter;
7
- var _exporterTraceOtlpHttp = require("@opentelemetry/exporter-trace-otlp-http");
7
+ var _exporterTraceOtlpGrpc = require("@opentelemetry/exporter-trace-otlp-grpc");
8
8
  var _tokens = require("../../../tokens");
9
+ const envPrefix = 'OTEL_EXPORTER_OTLP_';
10
+
9
11
  /**
10
12
  * Провайдер объекта SpanExporter.
11
13
  * @param resolve Функция для получения зависимости по токену.
@@ -13,9 +15,8 @@ var _tokens = require("../../../tokens");
13
15
  */
14
16
  function provideSpanExporter(resolve) {
15
17
  const source = resolve(_tokens.KnownToken.Config.source);
16
- return new _exporterTraceOtlpHttp.OTLPTraceExporter({
17
- // @todo сделать компонент ConventionalConfig и в реализации описать все переменные среды там
18
- url: source.require('JAEGER_AGENT_URL')
18
+ return new _exporterTraceOtlpGrpc.OTLPTraceExporter({
19
+ url: source.get(`${envPrefix}URL`, '')
19
20
  });
20
21
  }
21
- //# sourceMappingURL=span-exporter.js.map
22
+ //# sourceMappingURL=telemetry-tracer-span-exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-tracer-span-exporter.js","names":["_exporterTraceOtlpGrpc","require","_tokens","envPrefix","provideSpanExporter","resolve","source","KnownToken","Config","OTLPTraceExporter","url","get"],"sources":["../../../../../src/preset/node/providers/telemetry-tracer-span-exporter.ts"],"sourcesContent":["import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-grpc';\nimport { KnownToken } from '../../../tokens';\n\nimport type { Resolve } from '../../../di';\n\nconst envPrefix = 'OTEL_EXPORTER_OTLP_';\n\n/**\n * Провайдер объекта SpanExporter.\n * @param resolve Функция для получения зависимости по токену.\n * @return SpanExporter.\n */\nexport function provideSpanExporter(resolve: Resolve): OTLPTraceExporter {\n const source = resolve(KnownToken.Config.source);\n\n return new OTLPTraceExporter({\n url: source.get(`${envPrefix}URL`, ''),\n });\n}\n"],"mappings":";;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AAIA,MAAME,SAAS,GAAG,qBAAqB;;AAEvC;AACA;AACA;AACA;AACA;AACO,SAASC,mBAAmBA,CAACC,OAAgB,EAAqB;EACvE,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACF,MAAM,CAAC;EAEhD,OAAO,IAAIG,wCAAiB,CAAC;IAC3BC,GAAG,EAAEJ,MAAM,CAACK,GAAG,CAAE,GAAER,SAAU,KAAI,EAAE,EAAE;EACvC,CAAC,CAAC;AACJ"}
@@ -12,7 +12,7 @@ var _tokens = require("../../../tokens");
12
12
  */
13
13
  function provideTracer(resolve) {
14
14
  const config = resolve(_tokens.KnownToken.Config.base);
15
- const provider = resolve(_tokens.KnownToken.Tracing.tracerProvider);
15
+ const provider = resolve(_tokens.KnownToken.Tracing.provider);
16
16
  return provider.getTracer(config.appName, config.appVersion);
17
17
  }
18
- //# sourceMappingURL=tracer.js.map
18
+ //# sourceMappingURL=telemetry-tracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry-tracer.js","names":["_tokens","require","provideTracer","resolve","config","KnownToken","Config","base","provider","Tracing","getTracer","appName","appVersion"],"sources":["../../../../../src/preset/node/providers/telemetry-tracer.ts"],"sourcesContent":["import { Tracer } from '@opentelemetry/api';\nimport { Resolve } from '../../../di';\nimport { KnownToken } from '../../../tokens';\n\n/**\n * Провайдер объекта Tracer.\n * @param resolve Функция для получения зависимости по токену.\n * @return Tracer.\n */\nexport function provideTracer(resolve: Resolve): Tracer {\n const config = resolve(KnownToken.Config.base);\n const provider = resolve(KnownToken.Tracing.provider);\n\n return provider.getTracer(config.appName, config.appVersion);\n}\n"],"mappings":";;;;;;AAEA,IAAAA,OAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACO,SAASC,aAAaA,CAACC,OAAgB,EAAU;EACtD,MAAMC,MAAM,GAAGD,OAAO,CAACE,kBAAU,CAACC,MAAM,CAACC,IAAI,CAAC;EAC9C,MAAMC,QAAQ,GAAGL,OAAO,CAACE,kBAAU,CAACI,OAAO,CAACD,QAAQ,CAAC;EAErD,OAAOA,QAAQ,CAACE,SAAS,CAACN,MAAM,CAACO,OAAO,EAAEP,MAAM,CAACQ,UAAU,CAAC;AAC9D"}
@@ -6,9 +6,9 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.axiosTracingMiddleware = axiosTracingMiddleware;
7
7
  exports.getRequestInfo = getRequestInfo;
8
8
  var _api = require("@opentelemetry/api");
9
- var _semanticConventions = require("@opentelemetry/semantic-conventions");
9
+ var _incubating = require("@opentelemetry/semantic-conventions/incubating");
10
10
  var _displayUrl = require("../../isomorphic/utils/display-url");
11
- var _hideFirstId = require("../../isomorphic/utils/hide-first-id");
11
+ var _telemetry = require("./telemetry");
12
12
  /**
13
13
  * Возвращает новый middleware для трассировки исходящих запросов.
14
14
  * @param tracer Трейсер.
@@ -19,28 +19,18 @@ function axiosTracingMiddleware(tracer, rootContext) {
19
19
  return async function trace(config, next, defaults) {
20
20
  const {
21
21
  method,
22
- url,
23
- foundId
22
+ urlStr
24
23
  } = getRequestInfo(config, defaults);
25
- const span = tracer.startSpan(`HTTP ${method} ${url}`, undefined, rootContext);
24
+ const url = new URL(urlStr);
25
+ const span = tracer.startSpan(`axios ${method} ${url}`, undefined, rootContext);
26
26
  span.setAttributes({
27
- [_semanticConventions.SemanticAttributes.HTTP_URL]: url,
28
- [_semanticConventions.SemanticAttributes.HTTP_METHOD]: method,
29
- 'request.params': JSON.stringify({
30
- ...defaults.params,
31
- ...config.params
32
- }),
33
- 'request.headers': JSON.stringify({
27
+ [_incubating.ATTR_URL_FULL]: url.href,
28
+ [_incubating.ATTR_HTTP_REQUEST_METHOD]: method,
29
+ ...(0, _telemetry.getSemanticHeaders)({
34
30
  // @todo непонятно как доставать заголовки из defaults потому что там на одном уровне заголовки и таблицы заголовков
35
31
  ...defaults.headers.common,
36
32
  ...defaults.headers[method.toLowerCase()],
37
33
  ...config.headers
38
- // @todo возможно стоит убрать cookie/Cookie
39
- }),
40
-
41
- // если нашли id - добавляем в теги
42
- ...(foundId && {
43
- 'request.id': foundId
44
34
  })
45
35
  });
46
36
  try {
@@ -61,7 +51,6 @@ function axiosTracingMiddleware(tracer, rootContext) {
61
51
 
62
52
  /**
63
53
  * Формирует базовые данные запроса.
64
- * Заменяет первое найденное число в url на "{id}", возвращая его в результате.
65
54
  * @param config Axios-конфиг запроса.
66
55
  * @param defaults Базовый конфиг экземпляра Axios.
67
56
  * @return Базовые данные запроса.
@@ -69,13 +58,9 @@ function axiosTracingMiddleware(tracer, rootContext) {
69
58
  function getRequestInfo(config, defaults) {
70
59
  const method = (config.method || 'GET').toUpperCase();
71
60
  const baseURL = config.baseURL || defaults.baseURL || '';
72
-
73
- // ВАЖНО: абстрагируем id только в url игнорируя baseURL
74
- const [url, foundId] = (0, _hideFirstId.hideFirstId)(config.url || defaults.url || '');
75
61
  return {
76
62
  method,
77
- url: (0, _displayUrl.displayUrl)(baseURL, url),
78
- foundId
63
+ urlStr: (0, _displayUrl.displayUrl)(baseURL, config.url || defaults.url || '')
79
64
  };
80
65
  }
81
66
  //# sourceMappingURL=axios-tracing-middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"axios-tracing-middleware.js","names":["_api","require","_semanticConventions","_displayUrl","_hideFirstId","axiosTracingMiddleware","tracer","rootContext","trace","config","next","defaults","method","url","foundId","getRequestInfo","span","startSpan","undefined","setAttributes","SemanticAttributes","HTTP_URL","HTTP_METHOD","JSON","stringify","params","headers","common","toLowerCase","error","setStatus","code","SpanStatusCode","ERROR","message","end","toUpperCase","baseURL","hideFirstId","displayUrl"],"sources":["../../../../../src/preset/node/utils/axios-tracing-middleware.ts"],"sourcesContent":["import type { AxiosInstance, AxiosRequestConfig, HeadersDefaults } from 'axios';\nimport type { Middleware } from 'middleware-axios';\nimport { Context, Tracer, SpanStatusCode } from '@opentelemetry/api';\nimport { SemanticAttributes } from '@opentelemetry/semantic-conventions';\nimport { displayUrl } from '../../isomorphic/utils/display-url';\nimport { hideFirstId } from '../../isomorphic/utils/hide-first-id';\n\n/**\n * Возвращает новый middleware для трассировки исходящих запросов.\n * @param tracer Трейсер.\n * @param rootContext Контекст.\n * @return Middleware.\n */\nexport function axiosTracingMiddleware(tracer: Tracer, rootContext: Context): Middleware<any> {\n return async function trace(config, next, defaults) {\n const { method, url, foundId } = getRequestInfo(config, defaults);\n const span = tracer.startSpan(`HTTP ${method} ${url}`, undefined, rootContext);\n\n span.setAttributes({\n [SemanticAttributes.HTTP_URL]: url,\n [SemanticAttributes.HTTP_METHOD]: method,\n 'request.params': JSON.stringify({\n ...defaults.params,\n ...config.params,\n }),\n 'request.headers': JSON.stringify({\n // @todo непонятно как доставать заголовки из defaults потому что там на одном уровне заголовки и таблицы заголовков\n ...defaults.headers.common,\n ...defaults.headers[method.toLowerCase() as keyof HeadersDefaults],\n ...config.headers,\n // @todo возможно стоит убрать cookie/Cookie\n }),\n\n // если нашли id - добавляем в теги\n ...(foundId && { 'request.id': foundId }),\n });\n\n try {\n await next(config);\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'HTTP Request failed',\n });\n\n span.end();\n\n // не прячем ошибку\n throw error;\n }\n\n span.end();\n };\n}\n\n/**\n * Формирует базовые данные запроса.\n * Заменяет первое найденное число в url на \"{id}\", возвращая его в результате.\n * @param config Axios-конфиг запроса.\n * @param defaults Базовый конфиг экземпляра Axios.\n * @return Базовые данные запроса.\n */\nexport function getRequestInfo(\n config: AxiosRequestConfig,\n defaults: AxiosInstance['defaults'],\n): {\n method: string;\n url: string;\n foundId?: number;\n} {\n const method = (config.method || 'GET').toUpperCase();\n const baseURL = config.baseURL || defaults.baseURL || '';\n\n // ВАЖНО: абстрагируем id только в url игнорируя baseURL\n const [url, foundId] = hideFirstId(config.url || defaults.url || '');\n\n return {\n method,\n url: displayUrl(baseURL, url),\n foundId,\n };\n}\n"],"mappings":";;;;;;;AAEA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,sBAAsBA,CAACC,MAAc,EAAEC,WAAoB,EAAmB;EAC5F,OAAO,eAAeC,KAAKA,CAACC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAE;IAClD,MAAM;MAAEC,MAAM;MAAEC,GAAG;MAAEC;IAAQ,CAAC,GAAGC,cAAc,CAACN,MAAM,EAAEE,QAAQ,CAAC;IACjE,MAAMK,IAAI,GAAGV,MAAM,CAACW,SAAS,CAAE,QAAOL,MAAO,IAAGC,GAAI,EAAC,EAAEK,SAAS,EAAEX,WAAW,CAAC;IAE9ES,IAAI,CAACG,aAAa,CAAC;MACjB,CAACC,uCAAkB,CAACC,QAAQ,GAAGR,GAAG;MAClC,CAACO,uCAAkB,CAACE,WAAW,GAAGV,MAAM;MACxC,gBAAgB,EAAEW,IAAI,CAACC,SAAS,CAAC;QAC/B,GAAGb,QAAQ,CAACc,MAAM;QAClB,GAAGhB,MAAM,CAACgB;MACZ,CAAC,CAAC;MACF,iBAAiB,EAAEF,IAAI,CAACC,SAAS,CAAC;QAChC;QACA,GAAGb,QAAQ,CAACe,OAAO,CAACC,MAAM;QAC1B,GAAGhB,QAAQ,CAACe,OAAO,CAACd,MAAM,CAACgB,WAAW,CAAC,CAAC,CAA0B;QAClE,GAAGnB,MAAM,CAACiB;QACV;MACF,CAAC,CAAC;;MAEF;MACA,IAAIZ,OAAO,IAAI;QAAE,YAAY,EAAEA;MAAQ,CAAC;IAC1C,CAAC,CAAC;IAEF,IAAI;MACF,MAAMJ,IAAI,CAACD,MAAM,CAAC;IACpB,CAAC,CAAC,OAAOoB,KAAK,EAAE;MACdb,IAAI,CAACc,SAAS,CAAC;QACbC,IAAI,EAAEC,mBAAc,CAACC,KAAK;QAC1BC,OAAO,EAAE;MACX,CAAC,CAAC;MAEFlB,IAAI,CAACmB,GAAG,CAAC,CAAC;;MAEV;MACA,MAAMN,KAAK;IACb;IAEAb,IAAI,CAACmB,GAAG,CAAC,CAAC;EACZ,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASpB,cAAcA,CAC5BN,MAA0B,EAC1BE,QAAmC,EAKnC;EACA,MAAMC,MAAM,GAAG,CAACH,MAAM,CAACG,MAAM,IAAI,KAAK,EAAEwB,WAAW,CAAC,CAAC;EACrD,MAAMC,OAAO,GAAG5B,MAAM,CAAC4B,OAAO,IAAI1B,QAAQ,CAAC0B,OAAO,IAAI,EAAE;;EAExD;EACA,MAAM,CAACxB,GAAG,EAAEC,OAAO,CAAC,GAAG,IAAAwB,wBAAW,EAAC7B,MAAM,CAACI,GAAG,IAAIF,QAAQ,CAACE,GAAG,IAAI,EAAE,CAAC;EAEpE,OAAO;IACLD,MAAM;IACNC,GAAG,EAAE,IAAA0B,sBAAU,EAACF,OAAO,EAAExB,GAAG,CAAC;IAC7BC;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"axios-tracing-middleware.js","names":["_api","require","_incubating","_displayUrl","_telemetry","axiosTracingMiddleware","tracer","rootContext","trace","config","next","defaults","method","urlStr","getRequestInfo","url","URL","span","startSpan","undefined","setAttributes","ATTR_URL_FULL","href","ATTR_HTTP_REQUEST_METHOD","getSemanticHeaders","headers","common","toLowerCase","error","setStatus","code","SpanStatusCode","ERROR","message","end","toUpperCase","baseURL","displayUrl"],"sources":["../../../../../src/preset/node/utils/axios-tracing-middleware.ts"],"sourcesContent":["import type { AxiosInstance, AxiosRequestConfig, HeadersDefaults } from 'axios';\nimport type { Middleware } from 'middleware-axios';\nimport { Context, Tracer, SpanStatusCode } from '@opentelemetry/api';\nimport {\n ATTR_HTTP_REQUEST_METHOD,\n ATTR_URL_FULL,\n} from '@opentelemetry/semantic-conventions/incubating';\nimport { displayUrl } from '../../isomorphic/utils/display-url';\nimport { getSemanticHeaders } from './telemetry';\n\n/**\n * Возвращает новый middleware для трассировки исходящих запросов.\n * @param tracer Трейсер.\n * @param rootContext Контекст.\n * @return Middleware.\n */\nexport function axiosTracingMiddleware(tracer: Tracer, rootContext: Context): Middleware<any> {\n return async function trace(config, next, defaults) {\n const { method, urlStr } = getRequestInfo(config, defaults);\n const url = new URL(urlStr);\n const span = tracer.startSpan(`axios ${method} ${url}`, undefined, rootContext);\n\n span.setAttributes({\n [ATTR_URL_FULL]: url.href,\n [ATTR_HTTP_REQUEST_METHOD]: method,\n ...getSemanticHeaders({\n // @todo непонятно как доставать заголовки из defaults потому что там на одном уровне заголовки и таблицы заголовков\n ...defaults.headers.common,\n ...defaults.headers[method.toLowerCase() as keyof HeadersDefaults],\n ...config.headers,\n }),\n });\n\n try {\n await next(config);\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'HTTP Request failed',\n });\n\n span.end();\n\n // не прячем ошибку\n throw error;\n }\n\n span.end();\n };\n}\n\n/**\n * Формирует базовые данные запроса.\n * @param config Axios-конфиг запроса.\n * @param defaults Базовый конфиг экземпляра Axios.\n * @return Базовые данные запроса.\n */\nexport function getRequestInfo(\n config: AxiosRequestConfig,\n defaults: AxiosInstance['defaults'],\n): {\n method: string;\n urlStr: string;\n} {\n const method = (config.method || 'GET').toUpperCase();\n const baseURL = config.baseURL || defaults.baseURL || '';\n\n return {\n method,\n urlStr: displayUrl(baseURL, config.url || defaults.url || ''),\n };\n}\n"],"mappings":";;;;;;;AAEA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAIA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASI,sBAAsBA,CAACC,MAAc,EAAEC,WAAoB,EAAmB;EAC5F,OAAO,eAAeC,KAAKA,CAACC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAE;IAClD,MAAM;MAAEC,MAAM;MAAEC;IAAO,CAAC,GAAGC,cAAc,CAACL,MAAM,EAAEE,QAAQ,CAAC;IAC3D,MAAMI,GAAG,GAAG,IAAIC,GAAG,CAACH,MAAM,CAAC;IAC3B,MAAMI,IAAI,GAAGX,MAAM,CAACY,SAAS,CAAE,SAAQN,MAAO,IAAGG,GAAI,EAAC,EAAEI,SAAS,EAAEZ,WAAW,CAAC;IAE/EU,IAAI,CAACG,aAAa,CAAC;MACjB,CAACC,yBAAa,GAAGN,GAAG,CAACO,IAAI;MACzB,CAACC,oCAAwB,GAAGX,MAAM;MAClC,GAAG,IAAAY,6BAAkB,EAAC;QACpB;QACA,GAAGb,QAAQ,CAACc,OAAO,CAACC,MAAM;QAC1B,GAAGf,QAAQ,CAACc,OAAO,CAACb,MAAM,CAACe,WAAW,CAAC,CAAC,CAA0B;QAClE,GAAGlB,MAAM,CAACgB;MACZ,CAAC;IACH,CAAC,CAAC;IAEF,IAAI;MACF,MAAMf,IAAI,CAACD,MAAM,CAAC;IACpB,CAAC,CAAC,OAAOmB,KAAK,EAAE;MACdX,IAAI,CAACY,SAAS,CAAC;QACbC,IAAI,EAAEC,mBAAc,CAACC,KAAK;QAC1BC,OAAO,EAAE;MACX,CAAC,CAAC;MAEFhB,IAAI,CAACiB,GAAG,CAAC,CAAC;;MAEV;MACA,MAAMN,KAAK;IACb;IAEAX,IAAI,CAACiB,GAAG,CAAC,CAAC;EACZ,CAAC;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASpB,cAAcA,CAC5BL,MAA0B,EAC1BE,QAAmC,EAInC;EACA,MAAMC,MAAM,GAAG,CAACH,MAAM,CAACG,MAAM,IAAI,KAAK,EAAEuB,WAAW,CAAC,CAAC;EACrD,MAAMC,OAAO,GAAG3B,MAAM,CAAC2B,OAAO,IAAIzB,QAAQ,CAACyB,OAAO,IAAI,EAAE;EAExD,OAAO;IACLxB,MAAM;IACNC,MAAM,EAAE,IAAAwB,sBAAU,EAACD,OAAO,EAAE3B,MAAM,CAACM,GAAG,IAAIJ,QAAQ,CAACI,GAAG,IAAI,EAAE;EAC9D,CAAC;AACH"}
@@ -6,7 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.getFetchTracing = getFetchTracing;
7
7
  var _api = require("@opentelemetry/api");
8
8
  var _semanticConventions = require("@opentelemetry/semantic-conventions");
9
- var _hideFirstId = require("../../isomorphic/utils/hide-first-id");
9
+ var _telemetry = require("./telemetry");
10
10
  /**
11
11
  * Вернет новый промежуточный слой трассировки для fetch.
12
12
  * @param tracer Трассировщик.
@@ -15,17 +15,12 @@ var _hideFirstId = require("../../isomorphic/utils/hide-first-id");
15
15
  */
16
16
  function getFetchTracing(tracer, rootContext) {
17
17
  return async (request, next) => {
18
- const [url, foundId] = (0, _hideFirstId.hideFirstId)(new URL(request.url).pathname); // @todo тут бы помог URLPattern
19
- const span = tracer.startSpan(`HTTP ${request.method} ${url}`, undefined, rootContext);
18
+ const url = new URL(request.url);
19
+ const span = tracer.startSpan(`fetch ${request.method} ${url.pathname}`, undefined, rootContext);
20
20
  span.setAttributes({
21
- [_semanticConventions.SemanticAttributes.HTTP_URL]: url,
22
- [_semanticConventions.SemanticAttributes.HTTP_METHOD]: request.method,
23
- 'request.params': JSON.stringify(new URL(request.url).searchParams),
24
- 'request.headers': JSON.stringify(request.headers),
25
- // если нашли id - добавляем в теги
26
- ...(foundId && {
27
- 'request.id': foundId
28
- })
21
+ [_semanticConventions.ATTR_URL_FULL]: url.href,
22
+ [_semanticConventions.ATTR_HTTP_REQUEST_METHOD]: request.method,
23
+ ...(0, _telemetry.getSemanticHeaders)(request.headers)
29
24
  });
30
25
  try {
31
26
  const response = await next(request);
@@ -1 +1 @@
1
- {"version":3,"file":"get-fetch-tracing.js","names":["_api","require","_semanticConventions","_hideFirstId","getFetchTracing","tracer","rootContext","request","next","url","foundId","hideFirstId","URL","pathname","span","startSpan","method","undefined","setAttributes","SemanticAttributes","HTTP_URL","HTTP_METHOD","JSON","stringify","searchParams","headers","response","end","error","setStatus","code","SpanStatusCode","ERROR","message"],"sources":["../../../../../src/preset/node/utils/get-fetch-tracing.ts"],"sourcesContent":["import type { Middleware } from '../../../http';\nimport { SpanStatusCode, type Context, type Tracer } from '@opentelemetry/api';\nimport { SemanticAttributes } from '@opentelemetry/semantic-conventions';\nimport { hideFirstId } from '../../isomorphic/utils/hide-first-id';\n\n/**\n * Вернет новый промежуточный слой трассировки для fetch.\n * @param tracer Трассировщик.\n * @param rootContext Контекст.\n * @return Промежуточный слой трассировки.\n */\nexport function getFetchTracing(tracer: Tracer, rootContext: Context): Middleware {\n return async (request, next) => {\n const [url, foundId] = hideFirstId(new URL(request.url).pathname); // @todo тут бы помог URLPattern\n const span = tracer.startSpan(`HTTP ${request.method} ${url}`, undefined, rootContext);\n\n span.setAttributes({\n [SemanticAttributes.HTTP_URL]: url,\n [SemanticAttributes.HTTP_METHOD]: request.method,\n 'request.params': JSON.stringify(new URL(request.url).searchParams),\n 'request.headers': JSON.stringify(request.headers),\n\n // если нашли id - добавляем в теги\n ...(foundId && { 'request.id': foundId }),\n });\n\n try {\n const response = await next(request);\n\n span.end();\n\n return response;\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'HTTP Request failed',\n });\n\n span.end();\n\n // ВАЖНО: не прячем ошибку\n throw error;\n }\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,YAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,eAAeA,CAACC,MAAc,EAAEC,WAAoB,EAAc;EAChF,OAAO,OAAOC,OAAO,EAAEC,IAAI,KAAK;IAC9B,MAAM,CAACC,GAAG,EAAEC,OAAO,CAAC,GAAG,IAAAC,wBAAW,EAAC,IAAIC,GAAG,CAACL,OAAO,CAACE,GAAG,CAAC,CAACI,QAAQ,CAAC,CAAC,CAAC;IACnE,MAAMC,IAAI,GAAGT,MAAM,CAACU,SAAS,CAAE,QAAOR,OAAO,CAACS,MAAO,IAAGP,GAAI,EAAC,EAAEQ,SAAS,EAAEX,WAAW,CAAC;IAEtFQ,IAAI,CAACI,aAAa,CAAC;MACjB,CAACC,uCAAkB,CAACC,QAAQ,GAAGX,GAAG;MAClC,CAACU,uCAAkB,CAACE,WAAW,GAAGd,OAAO,CAACS,MAAM;MAChD,gBAAgB,EAAEM,IAAI,CAACC,SAAS,CAAC,IAAIX,GAAG,CAACL,OAAO,CAACE,GAAG,CAAC,CAACe,YAAY,CAAC;MACnE,iBAAiB,EAAEF,IAAI,CAACC,SAAS,CAAChB,OAAO,CAACkB,OAAO,CAAC;MAElD;MACA,IAAIf,OAAO,IAAI;QAAE,YAAY,EAAEA;MAAQ,CAAC;IAC1C,CAAC,CAAC;IAEF,IAAI;MACF,MAAMgB,QAAQ,GAAG,MAAMlB,IAAI,CAACD,OAAO,CAAC;MAEpCO,IAAI,CAACa,GAAG,CAAC,CAAC;MAEV,OAAOD,QAAQ;IACjB,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdd,IAAI,CAACe,SAAS,CAAC;QACbC,IAAI,EAAEC,mBAAc,CAACC,KAAK;QAC1BC,OAAO,EAAE;MACX,CAAC,CAAC;MAEFnB,IAAI,CAACa,GAAG,CAAC,CAAC;;MAEV;MACA,MAAMC,KAAK;IACb;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"get-fetch-tracing.js","names":["_api","require","_semanticConventions","_telemetry","getFetchTracing","tracer","rootContext","request","next","url","URL","span","startSpan","method","pathname","undefined","setAttributes","ATTR_URL_FULL","href","ATTR_HTTP_REQUEST_METHOD","getSemanticHeaders","headers","response","end","error","setStatus","code","SpanStatusCode","ERROR","message"],"sources":["../../../../../src/preset/node/utils/get-fetch-tracing.ts"],"sourcesContent":["import type { Middleware } from '../../../http';\nimport { SpanStatusCode, type Context, type Tracer } from '@opentelemetry/api';\nimport { ATTR_HTTP_REQUEST_METHOD, ATTR_URL_FULL } from '@opentelemetry/semantic-conventions';\nimport { getSemanticHeaders } from './telemetry';\n\n/**\n * Вернет новый промежуточный слой трассировки для fetch.\n * @param tracer Трассировщик.\n * @param rootContext Контекст.\n * @return Промежуточный слой трассировки.\n */\nexport function getFetchTracing(tracer: Tracer, rootContext: Context): Middleware {\n return async (request, next) => {\n const url = new URL(request.url);\n const span = tracer.startSpan(\n `fetch ${request.method} ${url.pathname}`,\n undefined,\n rootContext,\n );\n\n span.setAttributes({\n [ATTR_URL_FULL]: url.href,\n [ATTR_HTTP_REQUEST_METHOD]: request.method,\n ...getSemanticHeaders(request.headers),\n });\n\n try {\n const response = await next(request);\n\n span.end();\n\n return response;\n } catch (error) {\n span.setStatus({\n code: SpanStatusCode.ERROR,\n message: 'HTTP Request failed',\n });\n\n span.end();\n\n // ВАЖНО: не прячем ошибку\n throw error;\n }\n };\n}\n"],"mappings":";;;;;;AACA,IAAAA,IAAA,GAAAC,OAAA;AACA,IAAAC,oBAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,eAAeA,CAACC,MAAc,EAAEC,WAAoB,EAAc;EAChF,OAAO,OAAOC,OAAO,EAAEC,IAAI,KAAK;IAC9B,MAAMC,GAAG,GAAG,IAAIC,GAAG,CAACH,OAAO,CAACE,GAAG,CAAC;IAChC,MAAME,IAAI,GAAGN,MAAM,CAACO,SAAS,CAC1B,SAAQL,OAAO,CAACM,MAAO,IAAGJ,GAAG,CAACK,QAAS,EAAC,EACzCC,SAAS,EACTT,WACF,CAAC;IAEDK,IAAI,CAACK,aAAa,CAAC;MACjB,CAACC,kCAAa,GAAGR,GAAG,CAACS,IAAI;MACzB,CAACC,6CAAwB,GAAGZ,OAAO,CAACM,MAAM;MAC1C,GAAG,IAAAO,6BAAkB,EAACb,OAAO,CAACc,OAAO;IACvC,CAAC,CAAC;IAEF,IAAI;MACF,MAAMC,QAAQ,GAAG,MAAMd,IAAI,CAACD,OAAO,CAAC;MAEpCI,IAAI,CAACY,GAAG,CAAC,CAAC;MAEV,OAAOD,QAAQ;IACjB,CAAC,CAAC,OAAOE,KAAK,EAAE;MACdb,IAAI,CAACc,SAAS,CAAC;QACbC,IAAI,EAAEC,mBAAc,CAACC,KAAK;QAC1BC,OAAO,EAAE;MACX,CAAC,CAAC;MAEFlB,IAAI,CAACY,GAAG,CAAC,CAAC;;MAEV;MACA,MAAMC,KAAK;IACb;EACF,CAAC;AACH"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getSemanticHeaders = getSemanticHeaders;
7
+ var _semanticConventions = require("@opentelemetry/semantic-conventions");
8
+ /**
9
+ * Формирует данные заголовков согласно семантике.
10
+ * @todo Возможно стоит убрать cookie/Cookie.
11
+ * @param headers Объект заголовков запроса.
12
+ * @return Данные заголовков.
13
+ */
14
+ function getSemanticHeaders(headers) {
15
+ const result = Object.entries(headers).reduce((acc, [key, value]) => {
16
+ if (value || typeof value === 'number') {
17
+ acc[(0, _semanticConventions.ATTR_HTTP_REQUEST_HEADER)(key)] = value;
18
+ }
19
+ return acc;
20
+ }, {});
21
+ return Object.keys(result).length ? result : null;
22
+ }
23
+ //# sourceMappingURL=telemetry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"telemetry.js","names":["_semanticConventions","require","getSemanticHeaders","headers","result","Object","entries","reduce","acc","key","value","ATTR_HTTP_REQUEST_HEADER","keys","length"],"sources":["../../../../../src/preset/node/utils/telemetry.ts"],"sourcesContent":["import { ATTR_HTTP_REQUEST_HEADER } from '@opentelemetry/semantic-conventions';\n\n/**\n * Формирует данные заголовков согласно семантике.\n * @todo Возможно стоит убрать cookie/Cookie.\n * @param headers Объект заголовков запроса.\n * @return Данные заголовков.\n */\nexport function getSemanticHeaders(headers: Record<string, any>): Record<string, string> | null {\n const result = Object.entries(headers).reduce<Record<string, string>>((acc, [key, value]) => {\n if (value || typeof value === 'number') {\n acc[ATTR_HTTP_REQUEST_HEADER(key)] = value;\n }\n return acc;\n }, {});\n\n return Object.keys(result).length ? result : null;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,kBAAkBA,CAACC,OAA4B,EAAiC;EAC9F,MAAMC,MAAM,GAAGC,MAAM,CAACC,OAAO,CAACH,OAAO,CAAC,CAACI,MAAM,CAAyB,CAACC,GAAG,EAAE,CAACC,GAAG,EAAEC,KAAK,CAAC,KAAK;IAC3F,IAAIA,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;MACtCF,GAAG,CAAC,IAAAG,6CAAwB,EAACF,GAAG,CAAC,CAAC,GAAGC,KAAK;IAC5C;IACA,OAAOF,GAAG;EACZ,CAAC,EAAE,CAAC,CAAC,CAAC;EAEN,OAAOH,MAAM,CAACO,IAAI,CAACR,MAAM,CAAC,CAACS,MAAM,GAAGT,MAAM,GAAG,IAAI;AACnD"}