@cratis/chronicle 6.33.0 → 6.35.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 (243) hide show
  1. package/ChronicleClient.ts +43 -35
  2. package/ChronicleOptions.ts +27 -1
  3. package/EventStore.ts +22 -12
  4. package/Metrics.ts +70 -96
  5. package/Tracing.ts +4 -2
  6. package/WellKnownTelemetryNames.ts +67 -0
  7. package/artifacts/validateArtifactSchemas.spec.ts +1 -1
  8. package/artifacts/withActivatedArtifact.ts +7 -5
  9. package/connection/ChronicleConnection.ts +18 -6
  10. package/connection/CompatibilityPreflight.ts +2 -1
  11. package/connection/KernelKeepAlive.ts +13 -7
  12. package/connection/TokenProvider.ts +3 -1
  13. package/connection/TraceContextMiddleware.ts +30 -0
  14. package/connection/for_ChronicleConnection/when_creating_clients/with_correlated_multi_host_callers.spec.ts +73 -0
  15. package/connection/for_OAuthTokenProvider/when_acquiring_tokens/with_http_instrumentation.spec.ts +102 -0
  16. package/connection/for_TraceContextMiddleware/when_calling/with_active_context.spec.ts +235 -0
  17. package/connection/for_TraceContextMiddleware/when_calling/with_grpc_instrumentation.spec.ts +102 -0
  18. package/correlation/CorrelationIdManager.ts +10 -0
  19. package/dist/ChronicleClient.d.ts.map +1 -1
  20. package/dist/ChronicleClient.js +45 -35
  21. package/dist/ChronicleClient.js.map +1 -1
  22. package/dist/ChronicleOptions.d.ts +8 -0
  23. package/dist/ChronicleOptions.d.ts.map +1 -1
  24. package/dist/ChronicleOptions.js +19 -1
  25. package/dist/ChronicleOptions.js.map +1 -1
  26. package/dist/EventStore.d.ts +3 -1
  27. package/dist/EventStore.d.ts.map +1 -1
  28. package/dist/EventStore.js +22 -12
  29. package/dist/EventStore.js.map +1 -1
  30. package/dist/Metrics.d.ts +23 -64
  31. package/dist/Metrics.d.ts.map +1 -1
  32. package/dist/Metrics.js +62 -92
  33. package/dist/Metrics.js.map +1 -1
  34. package/dist/Tracing.d.ts +1 -1
  35. package/dist/Tracing.d.ts.map +1 -1
  36. package/dist/Tracing.js +4 -2
  37. package/dist/Tracing.js.map +1 -1
  38. package/dist/WellKnownTelemetryNames.d.ts +65 -0
  39. package/dist/WellKnownTelemetryNames.d.ts.map +1 -0
  40. package/dist/WellKnownTelemetryNames.js +67 -0
  41. package/dist/WellKnownTelemetryNames.js.map +1 -0
  42. package/dist/artifacts/withActivatedArtifact.d.ts +2 -1
  43. package/dist/artifacts/withActivatedArtifact.d.ts.map +1 -1
  44. package/dist/artifacts/withActivatedArtifact.js +5 -4
  45. package/dist/artifacts/withActivatedArtifact.js.map +1 -1
  46. package/dist/connection/ChronicleConnection.d.ts +5 -0
  47. package/dist/connection/ChronicleConnection.d.ts.map +1 -1
  48. package/dist/connection/ChronicleConnection.js +13 -6
  49. package/dist/connection/ChronicleConnection.js.map +1 -1
  50. package/dist/connection/CompatibilityPreflight.d.ts.map +1 -1
  51. package/dist/connection/CompatibilityPreflight.js +2 -1
  52. package/dist/connection/CompatibilityPreflight.js.map +1 -1
  53. package/dist/connection/KernelKeepAlive.d.ts +3 -1
  54. package/dist/connection/KernelKeepAlive.d.ts.map +1 -1
  55. package/dist/connection/KernelKeepAlive.js +10 -7
  56. package/dist/connection/KernelKeepAlive.js.map +1 -1
  57. package/dist/connection/TokenProvider.d.ts.map +1 -1
  58. package/dist/connection/TokenProvider.js +3 -1
  59. package/dist/connection/TokenProvider.js.map +1 -1
  60. package/dist/connection/TraceContextMiddleware.d.ts +4 -0
  61. package/dist/connection/TraceContextMiddleware.d.ts.map +1 -0
  62. package/dist/connection/TraceContextMiddleware.js +30 -0
  63. package/dist/connection/TraceContextMiddleware.js.map +1 -0
  64. package/dist/correlation/CorrelationIdManager.d.ts +4 -0
  65. package/dist/correlation/CorrelationIdManager.d.ts.map +1 -1
  66. package/dist/correlation/CorrelationIdManager.js +8 -0
  67. package/dist/correlation/CorrelationIdManager.js.map +1 -1
  68. package/dist/eventSequences/EventLog.d.ts +2 -1
  69. package/dist/eventSequences/EventLog.d.ts.map +1 -1
  70. package/dist/eventSequences/EventLog.js +2 -2
  71. package/dist/eventSequences/EventLog.js.map +1 -1
  72. package/dist/eventSequences/EventSequence.d.ts +4 -1
  73. package/dist/eventSequences/EventSequence.d.ts.map +1 -1
  74. package/dist/eventSequences/EventSequence.js +63 -80
  75. package/dist/eventSequences/EventSequence.js.map +1 -1
  76. package/dist/eventStoreSubscriptions/EventStoreSubscriptions.d.ts.map +1 -1
  77. package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js +3 -4
  78. package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js.map +1 -1
  79. package/dist/events/handles.d.ts +12 -0
  80. package/dist/events/handles.d.ts.map +1 -0
  81. package/dist/events/handles.js +33 -0
  82. package/dist/events/handles.js.map +1 -0
  83. package/dist/events/index.d.ts +1 -0
  84. package/dist/events/index.d.ts.map +1 -1
  85. package/dist/events/index.js +1 -0
  86. package/dist/events/index.js.map +1 -1
  87. package/dist/index.d.ts +7 -1
  88. package/dist/index.d.ts.map +1 -1
  89. package/dist/index.js +4 -1
  90. package/dist/index.js.map +1 -1
  91. package/dist/logging/ChronicleLogEntry.d.ts +11 -0
  92. package/dist/logging/ChronicleLogEntry.d.ts.map +1 -0
  93. package/dist/logging/ChronicleLogEntry.js +4 -0
  94. package/dist/logging/ChronicleLogEntry.js.map +1 -0
  95. package/dist/logging/ChronicleLogLevel.d.ts +9 -0
  96. package/dist/logging/ChronicleLogLevel.d.ts.map +1 -0
  97. package/dist/logging/ChronicleLogLevel.js +12 -0
  98. package/dist/logging/ChronicleLogLevel.js.map +1 -0
  99. package/dist/logging/DiagChronicleLogger.d.ts +7 -0
  100. package/dist/logging/DiagChronicleLogger.d.ts.map +1 -0
  101. package/dist/logging/DiagChronicleLogger.js +10 -0
  102. package/dist/logging/DiagChronicleLogger.js.map +1 -0
  103. package/dist/logging/IChronicleLogger.d.ts +7 -0
  104. package/dist/logging/IChronicleLogger.d.ts.map +1 -0
  105. package/dist/logging/IChronicleLogger.js +4 -0
  106. package/dist/logging/IChronicleLogger.js.map +1 -0
  107. package/dist/logging/createLogger.d.ts +10 -0
  108. package/dist/logging/createLogger.d.ts.map +1 -0
  109. package/dist/logging/createLogger.js +55 -0
  110. package/dist/logging/createLogger.js.map +1 -0
  111. package/dist/observation/EventHandler.d.ts +7 -0
  112. package/dist/observation/EventHandler.d.ts.map +1 -0
  113. package/dist/observation/EventHandler.js +4 -0
  114. package/dist/observation/EventHandler.js.map +1 -0
  115. package/dist/observation/createHandlerInstanceValidator.d.ts +4 -0
  116. package/dist/observation/createHandlerInstanceValidator.d.ts.map +1 -0
  117. package/dist/observation/createHandlerInstanceValidator.js +40 -0
  118. package/dist/observation/createHandlerInstanceValidator.js.map +1 -0
  119. package/dist/observation/getEventHandlers.d.ts +5 -0
  120. package/dist/observation/getEventHandlers.d.ts.map +1 -0
  121. package/dist/observation/getEventHandlers.js +40 -0
  122. package/dist/observation/getEventHandlers.js.map +1 -0
  123. package/dist/observation/getInstanceMethods.d.ts +4 -0
  124. package/dist/observation/getInstanceMethods.d.ts.map +1 -0
  125. package/dist/observation/getInstanceMethods.js +29 -0
  126. package/dist/observation/getInstanceMethods.js.map +1 -0
  127. package/dist/projections/Projections.d.ts.map +1 -1
  128. package/dist/projections/Projections.js +4 -3
  129. package/dist/projections/Projections.js.map +1 -1
  130. package/dist/reactors/ReactorDispatcher.d.ts.map +1 -1
  131. package/dist/reactors/ReactorDispatcher.js +27 -32
  132. package/dist/reactors/ReactorDispatcher.js.map +1 -1
  133. package/dist/reactors/Reactors.d.ts +1 -0
  134. package/dist/reactors/Reactors.d.ts.map +1 -1
  135. package/dist/reactors/Reactors.js +49 -34
  136. package/dist/reactors/Reactors.js.map +1 -1
  137. package/dist/reactors/index.d.ts +1 -0
  138. package/dist/reactors/index.d.ts.map +1 -1
  139. package/dist/reactors/index.js +1 -0
  140. package/dist/reactors/index.js.map +1 -1
  141. package/dist/reducers/ReducerEventDispatcher.d.ts +1 -0
  142. package/dist/reducers/ReducerEventDispatcher.d.ts.map +1 -1
  143. package/dist/reducers/ReducerEventDispatcher.js +5 -17
  144. package/dist/reducers/ReducerEventDispatcher.js.map +1 -1
  145. package/dist/reducers/ReducerEventHandler.d.ts +3 -6
  146. package/dist/reducers/ReducerEventHandler.d.ts.map +1 -1
  147. package/dist/reducers/Reducers.d.ts +1 -0
  148. package/dist/reducers/Reducers.d.ts.map +1 -1
  149. package/dist/reducers/Reducers.js +47 -32
  150. package/dist/reducers/Reducers.js.map +1 -1
  151. package/dist/reducers/index.d.ts +1 -0
  152. package/dist/reducers/index.d.ts.map +1 -1
  153. package/dist/reducers/index.js +1 -0
  154. package/dist/reducers/index.js.map +1 -1
  155. package/dist/seeding/EventSeeding.d.ts.map +1 -1
  156. package/dist/seeding/EventSeeding.js +4 -3
  157. package/dist/seeding/EventSeeding.js.map +1 -1
  158. package/dist/telemetry/ChronicleTelemetryOptions.d.ts +11 -0
  159. package/dist/telemetry/ChronicleTelemetryOptions.d.ts.map +1 -0
  160. package/dist/telemetry/ChronicleTelemetryOptions.js +4 -0
  161. package/dist/telemetry/ChronicleTelemetryOptions.js.map +1 -0
  162. package/dist/telemetry/observeOperation.d.ts +6 -0
  163. package/dist/telemetry/observeOperation.d.ts.map +1 -0
  164. package/dist/telemetry/observeOperation.js +23 -0
  165. package/dist/telemetry/observeOperation.js.map +1 -0
  166. package/dist/telemetry/runInBackgroundContext.d.ts +3 -0
  167. package/dist/telemetry/runInBackgroundContext.d.ts.map +1 -0
  168. package/dist/telemetry/runInBackgroundContext.js +9 -0
  169. package/dist/telemetry/runInBackgroundContext.js.map +1 -0
  170. package/dist/telemetry/spanAttributes.d.ts +14 -0
  171. package/dist/telemetry/spanAttributes.d.ts.map +1 -0
  172. package/dist/telemetry/spanAttributes.js +47 -0
  173. package/dist/telemetry/spanAttributes.js.map +1 -0
  174. package/dist/testing/ReactorScenario.d.ts +1 -0
  175. package/dist/testing/ReactorScenario.d.ts.map +1 -1
  176. package/dist/testing/ReactorScenario.js +9 -1
  177. package/dist/testing/ReactorScenario.js.map +1 -1
  178. package/dist/testing/ReducerReadModelProcessor.d.ts.map +1 -1
  179. package/dist/testing/ReducerReadModelProcessor.js +1 -0
  180. package/dist/testing/ReducerReadModelProcessor.js.map +1 -1
  181. package/dist/tsconfig.tsbuildinfo +1 -1
  182. package/eventSequences/EventLog.ts +4 -2
  183. package/eventSequences/EventSequence.ts +64 -81
  184. package/eventStoreSubscriptions/EventStoreSubscriptions.ts +5 -5
  185. package/events/for_handles/when_decorating_a_method.legacy.spec.ts +91 -0
  186. package/events/for_handles/when_decorating_a_method.standard.spec.ts +102 -0
  187. package/events/handles.ts +37 -0
  188. package/events/index.ts +1 -0
  189. package/for_ChronicleClient/when_registering_artifacts/with_invalid_handler_mappings.spec.ts +142 -0
  190. package/for_ChronicleClient/when_starting_background_work/with_a_correlated_caller.spec.ts +150 -0
  191. package/for_ChronicleOptions/when_configuring_telemetry/with_event_source_identifiers.spec.ts +44 -0
  192. package/index.ts +7 -1
  193. package/logging/ChronicleLogEntry.ts +14 -0
  194. package/logging/ChronicleLogLevel.ts +11 -0
  195. package/logging/DiagChronicleLogger.ts +13 -0
  196. package/logging/IChronicleLogger.ts +10 -0
  197. package/logging/createLogger.ts +50 -0
  198. package/logging/for_ChronicleLogger/when_logging/with_client_owned_sinks.spec.ts +96 -0
  199. package/observation/EventHandler.ts +9 -0
  200. package/observation/createHandlerInstanceValidator.ts +42 -0
  201. package/observation/for_getEventHandlers/when_discovering_handlers.spec.ts +137 -0
  202. package/observation/for_getEventHandlers/when_reobserving_explicit_handlers.spec.ts +73 -0
  203. package/observation/getEventHandlers.ts +43 -0
  204. package/observation/getInstanceMethods.ts +29 -0
  205. package/package.json +8 -2
  206. package/projections/Projections.ts +4 -3
  207. package/reactors/ReactorDispatcher.ts +26 -30
  208. package/reactors/Reactors.ts +55 -37
  209. package/reactors/decorators.standard.spec.ts +8 -0
  210. package/reactors/for_ReactorDispatcher/when_selecting_explicit_handlers.spec.ts +64 -0
  211. package/reactors/for_Reactors/when_activating_a_field_override.spec.ts +62 -0
  212. package/reactors/for_Reactors/when_delivering/with_activation.spec.ts +14 -14
  213. package/reactors/for_Reactors/when_delivering_to_instance_handlers.spec.ts +108 -0
  214. package/reactors/for_Reactors/when_observing_explicit_handlers.legacy.spec.ts +77 -0
  215. package/reactors/for_Reactors/when_registering_explicit_handlers.spec.ts +53 -0
  216. package/reactors/index.ts +1 -0
  217. package/reducers/ReducerEventDispatcher.ts +5 -16
  218. package/reducers/ReducerEventHandler.ts +4 -6
  219. package/reducers/Reducers.ts +50 -35
  220. package/reducers/for_ReducerEventDispatcher/when_invoking_an_explicit_handler.spec.ts +51 -0
  221. package/reducers/for_ReducerEventDispatcher/when_invoking_instance_handlers.spec.ts +69 -0
  222. package/reducers/for_Reducers/when_activating_a_field_override.spec.ts +63 -0
  223. package/reducers/for_Reducers/when_observing_explicit_handlers.legacy.spec.ts +73 -0
  224. package/reducers/for_Reducers/when_registering_explicit_handlers.spec.ts +57 -0
  225. package/reducers/index.ts +1 -0
  226. package/seeding/EventSeeding.ts +6 -4
  227. package/telemetry/ChronicleTelemetryOptions.ts +8 -0
  228. package/telemetry/for_ChronicleTelemetry/given/a_telemetry_session.fixture.ts +36 -0
  229. package/telemetry/for_ChronicleTelemetry/given/an_event_sequence.fixture.ts +29 -0
  230. package/telemetry/for_ChronicleTelemetry/when_appending/with_shared_and_legacy_attributes.spec.ts +58 -0
  231. package/telemetry/for_ChronicleTelemetry/when_appending/without_an_sdk.spec.ts +15 -0
  232. package/telemetry/for_ChronicleTelemetry/when_documenting/with_public_names.spec.ts +15 -0
  233. package/telemetry/for_ChronicleTelemetry/when_recording_failures/with_sensitive_exception_details.spec.ts +34 -0
  234. package/telemetry/for_ChronicleTelemetry/when_recording_identifiers/with_per_client_privacy.spec.ts +92 -0
  235. package/telemetry/for_ChronicleTelemetry/when_recording_metrics/with_legacy_overlap.spec.ts +40 -0
  236. package/telemetry/for_ChronicleTelemetry/when_recording_sequence_numbers/with_integer_precision.spec.ts +23 -0
  237. package/telemetry/observeOperation.ts +25 -0
  238. package/telemetry/runInBackgroundContext.ts +10 -0
  239. package/telemetry/spanAttributes.ts +49 -0
  240. package/testing/ReactorScenario.ts +9 -1
  241. package/testing/ReducerReadModelProcessor.ts +1 -0
  242. package/testing/for_ReactorScenario/when_delivering_to_an_explicit_handler.spec.ts +100 -0
  243. package/testing/for_ReducerReadModelProcessor/when_an_instance_field_hides_a_handler.spec.ts +29 -0
@@ -1 +1 @@
1
- {"version":3,"file":"TokenProvider.js","sourceRoot":"","sources":["../../connection/TokenProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TokenProvider.js","sourceRoot":"","sources":["../../connection/TokenProvider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { type ClientMiddleware } from 'nice-grpc-common';
2
+ /** Injects host-configured propagation for every RPC without mutating caller metadata or baggage. */
3
+ export declare const traceContextMiddleware: ClientMiddleware;
4
+ //# sourceMappingURL=TraceContextMiddleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceContextMiddleware.d.ts","sourceRoot":"","sources":["../../connection/TraceContextMiddleware.ts"],"names":[],"mappings":"AAIA,OAAO,EAAY,KAAK,gBAAgB,EAA+C,MAAM,kBAAkB,CAAC;AAIhH,qGAAqG;AACrG,eAAO,MAAM,sBAAsB,EAAE,gBAoBpC,CAAC"}
@@ -0,0 +1,30 @@
1
+ // Copyright (c) Cratis. All rights reserved.
2
+ // Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
+ import { context, propagation } from '@opentelemetry/api';
4
+ import { Metadata } from 'nice-grpc-common';
5
+ import { correlationIdManager } from '../correlation/index.js';
6
+ import { WellKnownTelemetryNames } from '../WellKnownTelemetryNames.js';
7
+ /** Injects host-configured propagation for every RPC without mutating caller metadata or baggage. */
8
+ export const traceContextMiddleware = async function* (call, options) {
9
+ const metadata = options.metadata ? Metadata(options.metadata) : Metadata();
10
+ // These headers belong to the active context, never to a stale caller-supplied carrier.
11
+ for (const field of new Set(['traceparent', 'tracestate', 'baggage', ...propagation.fields()]))
12
+ metadata.delete(field);
13
+ const active = context.active();
14
+ const key = WellKnownTelemetryNames.attributes.correlationId;
15
+ const correlation = correlationIdManager.scoped?.toString() ?? propagation.getBaggage(active)?.getEntry(key)?.value;
16
+ const filtered = propagation.setBaggage(active, propagation.createBaggage(correlation ? { [key]: { value: correlation } } : {}));
17
+ propagation.inject(filtered, metadata, { set: (carrier, name, value) => carrier.set(name, value) });
18
+ const iterator = context.with(filtered, () => call.next(call.request, { ...options, metadata }));
19
+ // Async generators execute on each advance, not at creation. Bind all advances,
20
+ // including cancellation/error cleanup, so gRPC instrumentation cannot restore
21
+ // the caller's forbidden baggage. context.with restores the consumer's scope.
22
+ const downstream = {
23
+ [Symbol.asyncIterator]() { return this; },
24
+ next: value => context.with(filtered, () => iterator.next(value)),
25
+ return: value => context.with(filtered, () => iterator.return(value)),
26
+ throw: error => context.with(filtered, () => iterator.throw(error))
27
+ };
28
+ return yield* downstream;
29
+ };
30
+ //# sourceMappingURL=TraceContextMiddleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TraceContextMiddleware.js","sourceRoot":"","sources":["../../connection/TraceContextMiddleware.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAsE,MAAM,kBAAkB,CAAC;AAChH,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,qGAAqG;AACrG,MAAM,CAAC,MAAM,sBAAsB,GAAqB,KAAK,SAAS,CAAC,EAAqB,IAA6C,EAAE,OAAoB;IAC3J,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;IAC5E,wFAAwF;IACxF,KAAK,MAAM,KAAK,IAAI,IAAI,GAAG,CAAC,CAAC,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC;QAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvH,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAChC,MAAM,GAAG,GAAG,uBAAuB,CAAC,UAAU,CAAC,aAAa,CAAC;IAC7D,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC;IACpH,MAAM,QAAQ,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,WAAW,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACjI,WAAW,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IACpG,MAAM,QAAQ,GAAyD,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;IACvJ,gFAAgF;IAChF,+EAA+E;IAC/E,8EAA8E;IAC9E,MAAM,UAAU,GAAgE;QAC5E,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;QACzC,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACrE,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACtE,CAAC;IACF,OAAO,KAAK,CAAC,CAAC,UAAU,CAAC;AAC7B,CAAC,CAAC"}
@@ -9,8 +9,12 @@ export declare class CorrelationIdManager implements ICorrelationIdAccessor, ICo
9
9
  private readonly _storage;
10
10
  /** @inheritdoc */
11
11
  get current(): CorrelationId;
12
+ /** The explicitly scoped identifier, without generating an identifier when no scope exists. */
13
+ get scoped(): CorrelationId | undefined;
12
14
  /** Runs an async or synchronous operation with a correlation id, restoring the caller afterward. */
13
15
  run<T>(correlationId: CorrelationId, callback: () => T): T;
16
+ /** Runs work without inheriting a business correlation, restoring the caller afterward. */
17
+ runWithout<T>(callback: () => T): T;
14
18
  /** @inheritdoc */
15
19
  setCurrent(correlationId: CorrelationId): void;
16
20
  /** @inheritdoc */
@@ -1 +1 @@
1
- {"version":3,"file":"CorrelationIdManager.d.ts","sourceRoot":"","sources":["../../correlation/CorrelationIdManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,sBAAsB,EAAE,oBAAoB;IACrF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IAEnE,kBAAkB;IAClB,IAAI,OAAO,IAAI,aAAa,CAE3B;IAED,oGAAoG;IACpG,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAEzD;IAED,kBAAkB;IAClB,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAE7C;IAED,kBAAkB;IAClB,KAAK,IAAI,IAAI,CAEZ;CACJ"}
1
+ {"version":3,"file":"CorrelationIdManager.d.ts","sourceRoot":"","sources":["../../correlation/CorrelationIdManager.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;GAGG;AACH,qBAAa,oBAAqB,YAAW,sBAAsB,EAAE,oBAAoB;IACrF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA0C;IAEnE,kBAAkB;IAClB,IAAI,OAAO,IAAI,aAAa,CAE3B;IAED,+FAA+F;IAC/F,IAAI,MAAM,IAAI,aAAa,GAAG,SAAS,CAEtC;IAED,oGAAoG;IACpG,GAAG,CAAC,CAAC,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAEzD;IAED,2FAA2F;IAC3F,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAElC;IAED,kBAAkB;IAClB,UAAU,CAAC,aAAa,EAAE,aAAa,GAAG,IAAI,CAE7C;IAED,kBAAkB;IAClB,KAAK,IAAI,IAAI,CAEZ;CACJ"}
@@ -12,10 +12,18 @@ export class CorrelationIdManager {
12
12
  get current() {
13
13
  return this._storage.getStore() ?? CorrelationId.create();
14
14
  }
15
+ /** The explicitly scoped identifier, without generating an identifier when no scope exists. */
16
+ get scoped() {
17
+ return this._storage.getStore();
18
+ }
15
19
  /** Runs an async or synchronous operation with a correlation id, restoring the caller afterward. */
16
20
  run(correlationId, callback) {
17
21
  return this._storage.run(correlationId, callback);
18
22
  }
23
+ /** Runs work without inheriting a business correlation, restoring the caller afterward. */
24
+ runWithout(callback) {
25
+ return this._storage.exit(callback);
26
+ }
19
27
  /** @inheritdoc */
20
28
  setCurrent(correlationId) {
21
29
  this._storage.enterWith(correlationId);
@@ -1 +1 @@
1
- {"version":3,"file":"CorrelationIdManager.js","sourceRoot":"","sources":["../../correlation/CorrelationIdManager.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACZ,QAAQ,GAAG,IAAI,iBAAiB,EAAiB,CAAC;IAEnE,kBAAkB;IAClB,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;IAC9D,CAAC;IAED,oGAAoG;IACpG,GAAG,CAAI,aAA4B,EAAE,QAAiB;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,kBAAkB;IAClB,UAAU,CAAC,aAA4B;QACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED,kBAAkB;IAClB,KAAK;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;CACJ"}
1
+ {"version":3,"file":"CorrelationIdManager.js","sourceRoot":"","sources":["../../correlation/CorrelationIdManager.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;;GAGG;AACH,MAAM,OAAO,oBAAoB;IACZ,QAAQ,GAAG,IAAI,iBAAiB,EAAiB,CAAC;IAEnE,kBAAkB;IAClB,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;IAC9D,CAAC;IAED,+FAA+F;IAC/F,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED,oGAAoG;IACpG,GAAG,CAAI,aAA4B,EAAE,QAAiB;QAClD,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,2FAA2F;IAC3F,UAAU,CAAI,QAAiB;QAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,kBAAkB;IAClB,UAAU,CAAC,aAA4B;QACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;IAC3C,CAAC;IAED,kBAAkB;IAClB,KAAK;QACD,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC;IACpD,CAAC;CACJ"}
@@ -3,11 +3,12 @@ import { EventSequence } from './EventSequence.js';
3
3
  import { IEventLog } from './IEventLog.js';
4
4
  import { IUnitOfWorkManager } from '../transactions/IUnitOfWorkManager.js';
5
5
  import type { ConstraintViolation } from './ConstraintViolation.js';
6
+ import type { ChronicleTelemetryOptions } from '../telemetry/ChronicleTelemetryOptions.js';
6
7
  /**
7
8
  * Implements {@link IEventLog} by extending the base {@link EventSequence}.
8
9
  * The event log is the default event sequence used for all domain events.
9
10
  */
10
11
  export declare class EventLog extends EventSequence implements IEventLog {
11
- constructor(eventStoreName: string, namespace: string, connection: ChronicleConnection, unitOfWorkManager: IUnitOfWorkManager, resolveConstraintMessage?: (violation: ConstraintViolation) => ConstraintViolation);
12
+ constructor(eventStoreName: string, namespace: string, connection: ChronicleConnection, unitOfWorkManager: IUnitOfWorkManager, resolveConstraintMessage?: (violation: ConstraintViolation) => ConstraintViolation, telemetry?: ChronicleTelemetryOptions);
12
13
  }
13
14
  //# sourceMappingURL=EventLog.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventLog.d.ts","sourceRoot":"","sources":["../../eventSequences/EventLog.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE;;;GAGG;AACH,qBAAa,QAAS,SAAQ,aAAc,YAAW,SAAS;IAC5D,YACI,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,mBAAmB,EAC/B,iBAAiB,EAAE,kBAAkB,EACrC,wBAAwB,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,mBAAmB,EAGrF;CACJ"}
1
+ {"version":3,"file":"EventLog.d.ts","sourceRoot":"","sources":["../../eventSequences/EventLog.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAE3F;;;GAGG;AACH,qBAAa,QAAS,SAAQ,aAAc,YAAW,SAAS;IAC5D,YACI,cAAc,EAAE,MAAM,EACtB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,mBAAmB,EAC/B,iBAAiB,EAAE,kBAAkB,EACrC,wBAAwB,CAAC,EAAE,CAAC,SAAS,EAAE,mBAAmB,KAAK,mBAAmB,EAClF,SAAS,CAAC,EAAE,yBAAyB,EAGxC;CACJ"}
@@ -7,8 +7,8 @@ import { EventSequenceId } from './EventSequenceId.js';
7
7
  * The event log is the default event sequence used for all domain events.
8
8
  */
9
9
  export class EventLog extends EventSequence {
10
- constructor(eventStoreName, namespace, connection, unitOfWorkManager, resolveConstraintMessage) {
11
- super(EventSequenceId.eventLog, eventStoreName, namespace, connection, unitOfWorkManager, resolveConstraintMessage);
10
+ constructor(eventStoreName, namespace, connection, unitOfWorkManager, resolveConstraintMessage, telemetry) {
11
+ super(EventSequenceId.eventLog, eventStoreName, namespace, connection, unitOfWorkManager, resolveConstraintMessage, telemetry);
12
12
  }
13
13
  }
14
14
  //# sourceMappingURL=EventLog.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventLog.js","sourceRoot":"","sources":["../../eventSequences/EventLog.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAGrG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAKvD;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,aAAa;IACvC,YACI,cAAsB,EACtB,SAAiB,EACjB,UAA+B,EAC/B,iBAAqC,EACrC,wBAAkF;QAElF,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAC;IACxH,CAAC;CACJ"}
1
+ {"version":3,"file":"EventLog.js","sourceRoot":"","sources":["../../eventSequences/EventLog.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,qGAAqG;AAGrG,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD;;;GAGG;AACH,MAAM,OAAO,QAAS,SAAQ,aAAa;IACvC,YACI,cAAsB,EACtB,SAAiB,EACjB,UAA+B,EAC/B,iBAAqC,EACrC,wBAAkF,EAClF,SAAqC;QAErC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,UAAU,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,SAAS,CAAC,CAAC;IACnI,CAAC;CACJ"}
@@ -12,6 +12,7 @@ import { IEventSequence } from './IEventSequence.js';
12
12
  import { ITransactionalEventSequence } from './ITransactionalEventSequence.js';
13
13
  import { EventSequenceId } from './EventSequenceId.js';
14
14
  import { EventSequenceNumber } from './EventSequenceNumber.js';
15
+ import type { ChronicleTelemetryOptions } from '../telemetry/ChronicleTelemetryOptions.js';
15
16
  import { IUnitOfWorkManager } from '../transactions/IUnitOfWorkManager.js';
16
17
  /**
17
18
  * Implements {@link IEventSequence} by communicating with the Chronicle Kernel
@@ -24,9 +25,10 @@ export declare class EventSequence implements IEventSequence {
24
25
  private readonly _connection;
25
26
  private readonly _unitOfWorkManager;
26
27
  private readonly _resolveConstraintMessage?;
28
+ private readonly _telemetry?;
27
29
  readonly transactional: ITransactionalEventSequence;
28
30
  readonly appendOperations: AppendOperationsBroadcaster<AppendedEventWithResult[]>;
29
- constructor(id: EventSequenceId, _eventStoreName: string, _namespace: string, _connection: ChronicleConnection, _unitOfWorkManager: IUnitOfWorkManager, _resolveConstraintMessage?: ((violation: ConstraintViolation) => ConstraintViolation) | undefined);
31
+ constructor(id: EventSequenceId, _eventStoreName: string, _namespace: string, _connection: ChronicleConnection, _unitOfWorkManager: IUnitOfWorkManager, _resolveConstraintMessage?: ((violation: ConstraintViolation) => ConstraintViolation) | undefined, _telemetry?: ChronicleTelemetryOptions | undefined);
30
32
  /** @inheritdoc */
31
33
  append(eventSourceId: string, event: object, options?: AppendOptions): Promise<AppendResult>;
32
34
  /** @inheritdoc */
@@ -56,6 +58,7 @@ export declare class EventSequence implements IEventSequence {
56
58
  private getEventTypesHandledBy;
57
59
  /** @inheritdoc */
58
60
  completeStream(eventStreamType: string, eventStreamId: string): Promise<CompleteStreamResult>;
61
+ private setSequenceAttributes;
59
62
  private toClientCompleteStreamError;
60
63
  private joinEventTypeIds;
61
64
  private toClientAppendedEvent;
@@ -1 +1 @@
1
- {"version":3,"file":"EventSequence.d.ts","sourceRoot":"","sources":["../../eventSequences/EventSequence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"EventSequence.d.ts","sourceRoot":"","sources":["../../eventSequences/EventSequence.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,9 @@ import { EventSequenceNumber } from './EventSequenceNumber.js';
16
16
  import { TransactionalEventSequence } from './TransactionalEventSequence.js';
17
17
  /** Default timeout for {@link AppendResult.waitForCompletion}, matching the C# client's default. */
18
18
  const DEFAULT_WAIT_FOR_COMPLETION_TIMEOUT_MS = 5000;
19
- import { ChronicleTracer } from '../Tracing.js';
19
+ import { observeOperation } from '../telemetry/observeOperation.js';
20
+ import { setTelemetryAttribute, setEventSourceId, setSequenceNumber, recordSafeException } from '../telemetry/spanAttributes.js';
21
+ import { WellKnownTelemetryNames as names } from '../WellKnownTelemetryNames.js';
20
22
  import { ChronicleMetrics } from '../Metrics.js';
21
23
  import { identityProvider } from '../identity/index.js';
22
24
  import { causationManager, CausationType } from '../auditing/index.js';
@@ -33,15 +35,17 @@ export class EventSequence {
33
35
  _connection;
34
36
  _unitOfWorkManager;
35
37
  _resolveConstraintMessage;
38
+ _telemetry;
36
39
  transactional;
37
40
  appendOperations = new AppendOperationsBroadcaster();
38
- constructor(id, _eventStoreName, _namespace, _connection, _unitOfWorkManager, _resolveConstraintMessage) {
41
+ constructor(id, _eventStoreName, _namespace, _connection, _unitOfWorkManager, _resolveConstraintMessage, _telemetry) {
39
42
  this.id = id;
40
43
  this._eventStoreName = _eventStoreName;
41
44
  this._namespace = _namespace;
42
45
  this._connection = _connection;
43
46
  this._unitOfWorkManager = _unitOfWorkManager;
44
47
  this._resolveConstraintMessage = _resolveConstraintMessage;
48
+ this._telemetry = _telemetry;
45
49
  this.transactional = new TransactionalEventSequence(this, this._unitOfWorkManager);
46
50
  }
47
51
  /** @inheritdoc */
@@ -53,14 +57,14 @@ export class EventSequence {
53
57
  'chronicle.event_sequence_id': this.id.value,
54
58
  'chronicle.event_type_id': eventType.id.value
55
59
  };
56
- return ChronicleTracer.startActiveSpan('chronicle.event_sequences.append', async (span) => {
57
- span.setAttribute('chronicle.event_store', this._eventStoreName);
58
- span.setAttribute('chronicle.namespace', this._namespace);
59
- span.setAttribute('chronicle.event_sequence_id', this.id.value);
60
- span.setAttribute('chronicle.event_source_id', eventSourceId);
61
- span.setAttribute('chronicle.event_type_id', eventType.id.value);
62
- span.setAttribute('chronicle.event_type_generation', eventType.generation.value);
63
- const startTime = Date.now();
60
+ return observeOperation(names.spans.append, async (span) => {
61
+ this.setSequenceAttributes(span);
62
+ setEventSourceId(span, eventSourceId, this._telemetry);
63
+ setTelemetryAttribute(span, 'eventTypeId', eventType.id.value);
64
+ setTelemetryAttribute(span, 'eventTypeGeneration', eventType.generation.value);
65
+ if (options?.sourceType)
66
+ span.setAttribute(names.attributes.eventSourceType, options.sourceType);
67
+ const startTime = performance.now();
64
68
  try {
65
69
  const response = await this._connection.eventSequences.append({
66
70
  EventStore: this._eventStoreName,
@@ -89,9 +93,9 @@ export class EventSequence {
89
93
  Subject: options?.subject ?? eventSourceId
90
94
  });
91
95
  const appendResponse = ensureCommandResponse('append event', response);
92
- const duration = Date.now() - startTime;
96
+ const duration = performance.now() - startTime;
93
97
  const result = this.mapAppendResponse(appendResponse.SequenceNumber, appendResponse.ConstraintViolations ?? [], appendResponse.Errors ?? [], appendResponse.ConcurrencyViolation);
94
- span.setAttribute('chronicle.sequence_number', result.sequenceNumber.value.toString());
98
+ setSequenceNumber(span, result.sequenceNumber.value);
95
99
  span.setStatus({ code: SpanStatusCode.OK });
96
100
  ChronicleMetrics.eventsAppended.add(1, metricAttributes);
97
101
  ChronicleMetrics.appendDuration.record(duration, metricAttributes);
@@ -115,8 +119,7 @@ export class EventSequence {
115
119
  return result;
116
120
  }
117
121
  catch (error) {
118
- span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
119
- span.recordException(error);
122
+ recordSafeException(span, error);
120
123
  ChronicleMetrics.appendErrors.add(1, {
121
124
  'chronicle.event_store': this._eventStoreName,
122
125
  'chronicle.namespace': this._namespace,
@@ -127,7 +130,7 @@ export class EventSequence {
127
130
  finally {
128
131
  span.end();
129
132
  }
130
- });
133
+ }, correlationId);
131
134
  }
132
135
  async appendMany(eventSourceIdOrEvents, eventsOrOptions, options) {
133
136
  const { eventsForEventSourceIds, correlationId, batchCausationChain, identity, concurrencyScopes, eventsToAppend } = prepareBatchAppend(eventSourceIdOrEvents, eventsOrOptions, options);
@@ -138,15 +141,13 @@ export class EventSequence {
138
141
  'chronicle.event_sequence_id': this.id.value,
139
142
  'chronicle.events_count': eventsForEventSourceIds.length
140
143
  };
141
- return ChronicleTracer.startActiveSpan('chronicle.event_sequences.append_many', async (span) => {
142
- span.setAttribute('chronicle.event_store', this._eventStoreName);
143
- span.setAttribute('chronicle.namespace', this._namespace);
144
- span.setAttribute('chronicle.event_sequence_id', this.id.value);
144
+ return observeOperation(names.spans.appendMany, async (span) => {
145
+ this.setSequenceAttributes(span);
145
146
  if (distinctEventSourceIds.length === 1) {
146
- span.setAttribute('chronicle.event_source_id', distinctEventSourceIds[0]);
147
+ setEventSourceId(span, distinctEventSourceIds[0], this._telemetry);
147
148
  }
148
- span.setAttribute('chronicle.events_count', eventsForEventSourceIds.length);
149
- const startTime = Date.now();
149
+ setTelemetryAttribute(span, 'eventCount', eventsForEventSourceIds.length);
150
+ const startTime = performance.now();
150
151
  try {
151
152
  const response = await this._connection.eventSequences.appendManyForEventSources({
152
153
  EventStore: this._eventStoreName,
@@ -166,7 +167,7 @@ export class EventSequence {
166
167
  }))
167
168
  });
168
169
  const appendManyResponse = ensureCommandResponse('append many events', response);
169
- const duration = Date.now() - startTime;
170
+ const duration = performance.now() - startTime;
170
171
  // Mirrors the C# client: every per-event AppendResult in a batch carries all
171
172
  // constraint violations and the first concurrency violation of the whole batch —
172
173
  // the wire response doesn't correlate either back to a specific event index.
@@ -213,8 +214,7 @@ export class EventSequence {
213
214
  return result;
214
215
  }
215
216
  catch (error) {
216
- span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
217
- span.recordException(error);
217
+ recordSafeException(span, error);
218
218
  ChronicleMetrics.appendErrors.add(1, {
219
219
  'chronicle.event_store': this._eventStoreName,
220
220
  'chronicle.namespace': this._namespace,
@@ -225,7 +225,7 @@ export class EventSequence {
225
225
  finally {
226
226
  span.end();
227
227
  }
228
- });
228
+ }, correlationId);
229
229
  }
230
230
  /** @inheritdoc */
231
231
  async getNextSequenceNumber() {
@@ -237,13 +237,9 @@ export class EventSequence {
237
237
  }
238
238
  /** @inheritdoc */
239
239
  async getTailSequenceNumber(eventSourceId, eventSourceType, eventStreamType, eventStreamId, filterEventTypes) {
240
- return ChronicleTracer.startActiveSpan('chronicle.event_sequences.get_tail_sequence_number', async (span) => {
241
- span.setAttribute('chronicle.event_store', this._eventStoreName);
242
- span.setAttribute('chronicle.namespace', this._namespace);
243
- span.setAttribute('chronicle.event_sequence_id', this.id.value);
244
- if (eventSourceId !== undefined) {
245
- span.setAttribute('chronicle.event_source_id', eventSourceId);
246
- }
240
+ return observeOperation(names.spans.getTailSequenceNumber, async (span) => {
241
+ this.setSequenceAttributes(span);
242
+ setEventSourceId(span, eventSourceId, this._telemetry);
247
243
  try {
248
244
  const response = await this._connection.eventSequences.tailSequenceNumber({
249
245
  EventStore: this._eventStoreName,
@@ -260,13 +256,12 @@ export class EventSequence {
260
256
  });
261
257
  const data = ensureQuerySuccess('get tail sequence number', response);
262
258
  const result = new EventSequenceNumber(data?.SequenceNumber ?? 0n);
263
- span.setAttribute('chronicle.sequence_number', result.value.toString());
259
+ setSequenceNumber(span, result.value);
264
260
  span.setStatus({ code: SpanStatusCode.OK });
265
261
  return result;
266
262
  }
267
263
  catch (error) {
268
- span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
269
- span.recordException(error);
264
+ recordSafeException(span, error);
270
265
  throw error;
271
266
  }
272
267
  finally {
@@ -281,11 +276,9 @@ export class EventSequence {
281
276
  }
282
277
  /** @inheritdoc */
283
278
  async hasEventsFor(eventSourceId) {
284
- return ChronicleTracer.startActiveSpan('chronicle.event_sequences.has_events_for', async (span) => {
285
- span.setAttribute('chronicle.event_store', this._eventStoreName);
286
- span.setAttribute('chronicle.namespace', this._namespace);
287
- span.setAttribute('chronicle.event_sequence_id', this.id.value);
288
- span.setAttribute('chronicle.event_source_id', eventSourceId);
279
+ return observeOperation(names.spans.hasEventsFor, async (span) => {
280
+ this.setSequenceAttributes(span);
281
+ setEventSourceId(span, eventSourceId, this._telemetry);
289
282
  try {
290
283
  const response = await this._connection.eventSequences.hasEventsForEventSourceId({
291
284
  EventStore: this._eventStoreName,
@@ -294,13 +287,12 @@ export class EventSequence {
294
287
  EventSourceId: eventSourceId
295
288
  });
296
289
  const result = ensureQuerySuccess('has events for event source', response)?.HasEvents ?? false;
297
- span.setAttribute('chronicle.has_events', result);
290
+ setTelemetryAttribute(span, 'hasEvents', result);
298
291
  span.setStatus({ code: SpanStatusCode.OK });
299
292
  return result;
300
293
  }
301
294
  catch (error) {
302
- span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
303
- span.recordException(error);
295
+ recordSafeException(span, error);
304
296
  throw error;
305
297
  }
306
298
  finally {
@@ -310,11 +302,9 @@ export class EventSequence {
310
302
  }
311
303
  /** @inheritdoc */
312
304
  async getForEventSourceIdAndEventTypes(eventSourceId, eventTypes, eventStreamType, eventStreamId, eventSourceType) {
313
- return ChronicleTracer.startActiveSpan('chronicle.event_sequences.get_for_event_source_id_and_event_types', async (span) => {
314
- span.setAttribute('chronicle.event_store', this._eventStoreName);
315
- span.setAttribute('chronicle.namespace', this._namespace);
316
- span.setAttribute('chronicle.event_sequence_id', this.id.value);
317
- span.setAttribute('chronicle.event_source_id', eventSourceId);
305
+ return observeOperation(names.spans.getForEventSourceIdAndEventTypes, async (span) => {
306
+ this.setSequenceAttributes(span);
307
+ setEventSourceId(span, eventSourceId, this._telemetry);
318
308
  try {
319
309
  const response = await this._connection.eventSequences.forEventSourceIdAndEventTypes({
320
310
  EventStore: this._eventStoreName,
@@ -333,8 +323,7 @@ export class EventSequence {
333
323
  return result;
334
324
  }
335
325
  catch (error) {
336
- span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
337
- span.recordException(error);
326
+ recordSafeException(span, error);
338
327
  throw error;
339
328
  }
340
329
  finally {
@@ -344,11 +333,10 @@ export class EventSequence {
344
333
  }
345
334
  /** @inheritdoc */
346
335
  async getFromSequenceNumber(sequenceNumber, eventSourceId, filterEventTypes) {
347
- return ChronicleTracer.startActiveSpan('chronicle.event_sequences.get_from_sequence_number', async (span) => {
348
- span.setAttribute('chronicle.event_store', this._eventStoreName);
349
- span.setAttribute('chronicle.namespace', this._namespace);
350
- span.setAttribute('chronicle.event_sequence_id', this.id.value);
351
- span.setAttribute('chronicle.sequence_number', sequenceNumber.value.toString());
336
+ return observeOperation(names.spans.getFromSequenceNumber, async (span) => {
337
+ this.setSequenceAttributes(span);
338
+ setSequenceNumber(span, sequenceNumber.value);
339
+ setEventSourceId(span, eventSourceId, this._telemetry);
352
340
  try {
353
341
  const response = await this._connection.eventSequences.fromSequenceNumber({
354
342
  EventStore: this._eventStoreName,
@@ -363,8 +351,7 @@ export class EventSequence {
363
351
  return result;
364
352
  }
365
353
  catch (error) {
366
- span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
367
- span.recordException(error);
354
+ recordSafeException(span, error);
368
355
  throw error;
369
356
  }
370
357
  finally {
@@ -377,11 +364,9 @@ export class EventSequence {
377
364
  causationManager.add(CausationType.redact, { sequenceNumber: sequenceNumber.value.toString() });
378
365
  const causationChain = causationManager.getCurrentChain();
379
366
  const identity = identityProvider.getCurrent();
380
- return ChronicleTracer.startActiveSpan('chronicle.event_sequences.redact', async (span) => {
381
- span.setAttribute('chronicle.event_store', this._eventStoreName);
382
- span.setAttribute('chronicle.namespace', this._namespace);
383
- span.setAttribute('chronicle.event_sequence_id', this.id.value);
384
- span.setAttribute('chronicle.sequence_number', sequenceNumber.value.toString());
367
+ return observeOperation(names.spans.redact, async (span) => {
368
+ this.setSequenceAttributes(span);
369
+ setSequenceNumber(span, sequenceNumber.value);
385
370
  try {
386
371
  ensureCommandSuccess('redact event', await this._connection.eventSequences.redact({
387
372
  EventStore: this._eventStoreName,
@@ -399,8 +384,7 @@ export class EventSequence {
399
384
  span.setStatus({ code: SpanStatusCode.OK });
400
385
  }
401
386
  catch (error) {
402
- span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
403
- span.recordException(error);
387
+ recordSafeException(span, error);
404
388
  throw error;
405
389
  }
406
390
  finally {
@@ -414,11 +398,9 @@ export class EventSequence {
414
398
  const causationChain = causationManager.getCurrentChain();
415
399
  const identity = identityProvider.getCurrent();
416
400
  const wireEventTypeIds = (eventTypes ?? []).map(constructor => getEventTypeFor(constructor).id.value);
417
- return ChronicleTracer.startActiveSpan('chronicle.event_sequences.redact_for_event_source', async (span) => {
418
- span.setAttribute('chronicle.event_store', this._eventStoreName);
419
- span.setAttribute('chronicle.namespace', this._namespace);
420
- span.setAttribute('chronicle.event_sequence_id', this.id.value);
421
- span.setAttribute('chronicle.event_source_id', eventSourceId);
401
+ return observeOperation(names.spans.redactForEventSource, async (span) => {
402
+ this.setSequenceAttributes(span);
403
+ setEventSourceId(span, eventSourceId, this._telemetry);
422
404
  try {
423
405
  ensureCommandSuccess('redact event source', await this._connection.eventSequences.redactForEventSource({
424
406
  EventStore: this._eventStoreName,
@@ -437,8 +419,7 @@ export class EventSequence {
437
419
  span.setStatus({ code: SpanStatusCode.OK });
438
420
  }
439
421
  catch (error) {
440
- span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
441
- span.recordException(error);
422
+ recordSafeException(span, error);
442
423
  throw error;
443
424
  }
444
425
  finally {
@@ -462,12 +443,10 @@ export class EventSequence {
462
443
  }
463
444
  /** @inheritdoc */
464
445
  async completeStream(eventStreamType, eventStreamId) {
465
- return ChronicleTracer.startActiveSpan('chronicle.event_sequences.complete_stream', async (span) => {
466
- span.setAttribute('chronicle.event_store', this._eventStoreName);
467
- span.setAttribute('chronicle.namespace', this._namespace);
468
- span.setAttribute('chronicle.event_sequence_id', this.id.value);
469
- span.setAttribute('chronicle.event_stream_type', eventStreamType);
470
- span.setAttribute('chronicle.event_stream_id', eventStreamId);
446
+ return observeOperation(names.spans.completeStream, async (span) => {
447
+ this.setSequenceAttributes(span);
448
+ setTelemetryAttribute(span, 'eventStreamType', eventStreamType);
449
+ setTelemetryAttribute(span, 'eventStreamId', eventStreamId);
471
450
  try {
472
451
  const response = await this._connection.eventSequences.completeStream({
473
452
  EventStore: this._eventStoreName,
@@ -484,8 +463,7 @@ export class EventSequence {
484
463
  return result;
485
464
  }
486
465
  catch (error) {
487
- span.setStatus({ code: SpanStatusCode.ERROR, message: String(error) });
488
- span.recordException(error);
466
+ recordSafeException(span, error);
489
467
  throw error;
490
468
  }
491
469
  finally {
@@ -493,6 +471,11 @@ export class EventSequence {
493
471
  }
494
472
  });
495
473
  }
474
+ setSequenceAttributes(span) {
475
+ setTelemetryAttribute(span, 'eventStore', this._eventStoreName);
476
+ setTelemetryAttribute(span, 'namespace', this._namespace);
477
+ setTelemetryAttribute(span, 'eventSequenceId', this.id.value);
478
+ }
496
479
  toClientCompleteStreamError(error) {
497
480
  // Mirrors the C# client's switch: any wire value other than DefaultStreamCannotBeCompleted
498
481
  // (including UNRECOGNIZED) is treated as AlreadyCompleted.