@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.
- package/ChronicleClient.ts +43 -35
- package/ChronicleOptions.ts +27 -1
- package/EventStore.ts +22 -12
- package/Metrics.ts +70 -96
- package/Tracing.ts +4 -2
- package/WellKnownTelemetryNames.ts +67 -0
- package/artifacts/validateArtifactSchemas.spec.ts +1 -1
- package/artifacts/withActivatedArtifact.ts +7 -5
- package/connection/ChronicleConnection.ts +18 -6
- package/connection/CompatibilityPreflight.ts +2 -1
- package/connection/KernelKeepAlive.ts +13 -7
- package/connection/TokenProvider.ts +3 -1
- package/connection/TraceContextMiddleware.ts +30 -0
- package/connection/for_ChronicleConnection/when_creating_clients/with_correlated_multi_host_callers.spec.ts +73 -0
- package/connection/for_OAuthTokenProvider/when_acquiring_tokens/with_http_instrumentation.spec.ts +102 -0
- package/connection/for_TraceContextMiddleware/when_calling/with_active_context.spec.ts +235 -0
- package/connection/for_TraceContextMiddleware/when_calling/with_grpc_instrumentation.spec.ts +102 -0
- package/correlation/CorrelationIdManager.ts +10 -0
- package/dist/ChronicleClient.d.ts.map +1 -1
- package/dist/ChronicleClient.js +45 -35
- package/dist/ChronicleClient.js.map +1 -1
- package/dist/ChronicleOptions.d.ts +8 -0
- package/dist/ChronicleOptions.d.ts.map +1 -1
- package/dist/ChronicleOptions.js +19 -1
- package/dist/ChronicleOptions.js.map +1 -1
- package/dist/EventStore.d.ts +3 -1
- package/dist/EventStore.d.ts.map +1 -1
- package/dist/EventStore.js +22 -12
- package/dist/EventStore.js.map +1 -1
- package/dist/Metrics.d.ts +23 -64
- package/dist/Metrics.d.ts.map +1 -1
- package/dist/Metrics.js +62 -92
- package/dist/Metrics.js.map +1 -1
- package/dist/Tracing.d.ts +1 -1
- package/dist/Tracing.d.ts.map +1 -1
- package/dist/Tracing.js +4 -2
- package/dist/Tracing.js.map +1 -1
- package/dist/WellKnownTelemetryNames.d.ts +65 -0
- package/dist/WellKnownTelemetryNames.d.ts.map +1 -0
- package/dist/WellKnownTelemetryNames.js +67 -0
- package/dist/WellKnownTelemetryNames.js.map +1 -0
- package/dist/artifacts/withActivatedArtifact.d.ts +2 -1
- package/dist/artifacts/withActivatedArtifact.d.ts.map +1 -1
- package/dist/artifacts/withActivatedArtifact.js +5 -4
- package/dist/artifacts/withActivatedArtifact.js.map +1 -1
- package/dist/connection/ChronicleConnection.d.ts +5 -0
- package/dist/connection/ChronicleConnection.d.ts.map +1 -1
- package/dist/connection/ChronicleConnection.js +13 -6
- package/dist/connection/ChronicleConnection.js.map +1 -1
- package/dist/connection/CompatibilityPreflight.d.ts.map +1 -1
- package/dist/connection/CompatibilityPreflight.js +2 -1
- package/dist/connection/CompatibilityPreflight.js.map +1 -1
- package/dist/connection/KernelKeepAlive.d.ts +3 -1
- package/dist/connection/KernelKeepAlive.d.ts.map +1 -1
- package/dist/connection/KernelKeepAlive.js +10 -7
- package/dist/connection/KernelKeepAlive.js.map +1 -1
- package/dist/connection/TokenProvider.d.ts.map +1 -1
- package/dist/connection/TokenProvider.js +3 -1
- package/dist/connection/TokenProvider.js.map +1 -1
- package/dist/connection/TraceContextMiddleware.d.ts +4 -0
- package/dist/connection/TraceContextMiddleware.d.ts.map +1 -0
- package/dist/connection/TraceContextMiddleware.js +30 -0
- package/dist/connection/TraceContextMiddleware.js.map +1 -0
- package/dist/correlation/CorrelationIdManager.d.ts +4 -0
- package/dist/correlation/CorrelationIdManager.d.ts.map +1 -1
- package/dist/correlation/CorrelationIdManager.js +8 -0
- package/dist/correlation/CorrelationIdManager.js.map +1 -1
- package/dist/eventSequences/EventLog.d.ts +2 -1
- package/dist/eventSequences/EventLog.d.ts.map +1 -1
- package/dist/eventSequences/EventLog.js +2 -2
- package/dist/eventSequences/EventLog.js.map +1 -1
- package/dist/eventSequences/EventSequence.d.ts +4 -1
- package/dist/eventSequences/EventSequence.d.ts.map +1 -1
- package/dist/eventSequences/EventSequence.js +63 -80
- package/dist/eventSequences/EventSequence.js.map +1 -1
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.d.ts.map +1 -1
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js +3 -4
- package/dist/eventStoreSubscriptions/EventStoreSubscriptions.js.map +1 -1
- package/dist/events/handles.d.ts +12 -0
- package/dist/events/handles.d.ts.map +1 -0
- package/dist/events/handles.js +33 -0
- package/dist/events/handles.js.map +1 -0
- package/dist/events/index.d.ts +1 -0
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +1 -0
- package/dist/events/index.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/logging/ChronicleLogEntry.d.ts +11 -0
- package/dist/logging/ChronicleLogEntry.d.ts.map +1 -0
- package/dist/logging/ChronicleLogEntry.js +4 -0
- package/dist/logging/ChronicleLogEntry.js.map +1 -0
- package/dist/logging/ChronicleLogLevel.d.ts +9 -0
- package/dist/logging/ChronicleLogLevel.d.ts.map +1 -0
- package/dist/logging/ChronicleLogLevel.js +12 -0
- package/dist/logging/ChronicleLogLevel.js.map +1 -0
- package/dist/logging/DiagChronicleLogger.d.ts +7 -0
- package/dist/logging/DiagChronicleLogger.d.ts.map +1 -0
- package/dist/logging/DiagChronicleLogger.js +10 -0
- package/dist/logging/DiagChronicleLogger.js.map +1 -0
- package/dist/logging/IChronicleLogger.d.ts +7 -0
- package/dist/logging/IChronicleLogger.d.ts.map +1 -0
- package/dist/logging/IChronicleLogger.js +4 -0
- package/dist/logging/IChronicleLogger.js.map +1 -0
- package/dist/logging/createLogger.d.ts +10 -0
- package/dist/logging/createLogger.d.ts.map +1 -0
- package/dist/logging/createLogger.js +55 -0
- package/dist/logging/createLogger.js.map +1 -0
- package/dist/observation/EventHandler.d.ts +7 -0
- package/dist/observation/EventHandler.d.ts.map +1 -0
- package/dist/observation/EventHandler.js +4 -0
- package/dist/observation/EventHandler.js.map +1 -0
- package/dist/observation/createHandlerInstanceValidator.d.ts +4 -0
- package/dist/observation/createHandlerInstanceValidator.d.ts.map +1 -0
- package/dist/observation/createHandlerInstanceValidator.js +40 -0
- package/dist/observation/createHandlerInstanceValidator.js.map +1 -0
- package/dist/observation/getEventHandlers.d.ts +5 -0
- package/dist/observation/getEventHandlers.d.ts.map +1 -0
- package/dist/observation/getEventHandlers.js +40 -0
- package/dist/observation/getEventHandlers.js.map +1 -0
- package/dist/observation/getInstanceMethods.d.ts +4 -0
- package/dist/observation/getInstanceMethods.d.ts.map +1 -0
- package/dist/observation/getInstanceMethods.js +29 -0
- package/dist/observation/getInstanceMethods.js.map +1 -0
- package/dist/projections/Projections.d.ts.map +1 -1
- package/dist/projections/Projections.js +4 -3
- package/dist/projections/Projections.js.map +1 -1
- package/dist/reactors/ReactorDispatcher.d.ts.map +1 -1
- package/dist/reactors/ReactorDispatcher.js +27 -32
- package/dist/reactors/ReactorDispatcher.js.map +1 -1
- package/dist/reactors/Reactors.d.ts +1 -0
- package/dist/reactors/Reactors.d.ts.map +1 -1
- package/dist/reactors/Reactors.js +49 -34
- package/dist/reactors/Reactors.js.map +1 -1
- package/dist/reactors/index.d.ts +1 -0
- package/dist/reactors/index.d.ts.map +1 -1
- package/dist/reactors/index.js +1 -0
- package/dist/reactors/index.js.map +1 -1
- package/dist/reducers/ReducerEventDispatcher.d.ts +1 -0
- package/dist/reducers/ReducerEventDispatcher.d.ts.map +1 -1
- package/dist/reducers/ReducerEventDispatcher.js +5 -17
- package/dist/reducers/ReducerEventDispatcher.js.map +1 -1
- package/dist/reducers/ReducerEventHandler.d.ts +3 -6
- package/dist/reducers/ReducerEventHandler.d.ts.map +1 -1
- package/dist/reducers/Reducers.d.ts +1 -0
- package/dist/reducers/Reducers.d.ts.map +1 -1
- package/dist/reducers/Reducers.js +47 -32
- package/dist/reducers/Reducers.js.map +1 -1
- package/dist/reducers/index.d.ts +1 -0
- package/dist/reducers/index.d.ts.map +1 -1
- package/dist/reducers/index.js +1 -0
- package/dist/reducers/index.js.map +1 -1
- package/dist/seeding/EventSeeding.d.ts.map +1 -1
- package/dist/seeding/EventSeeding.js +4 -3
- package/dist/seeding/EventSeeding.js.map +1 -1
- package/dist/telemetry/ChronicleTelemetryOptions.d.ts +11 -0
- package/dist/telemetry/ChronicleTelemetryOptions.d.ts.map +1 -0
- package/dist/telemetry/ChronicleTelemetryOptions.js +4 -0
- package/dist/telemetry/ChronicleTelemetryOptions.js.map +1 -0
- package/dist/telemetry/observeOperation.d.ts +6 -0
- package/dist/telemetry/observeOperation.d.ts.map +1 -0
- package/dist/telemetry/observeOperation.js +23 -0
- package/dist/telemetry/observeOperation.js.map +1 -0
- package/dist/telemetry/runInBackgroundContext.d.ts +3 -0
- package/dist/telemetry/runInBackgroundContext.d.ts.map +1 -0
- package/dist/telemetry/runInBackgroundContext.js +9 -0
- package/dist/telemetry/runInBackgroundContext.js.map +1 -0
- package/dist/telemetry/spanAttributes.d.ts +14 -0
- package/dist/telemetry/spanAttributes.d.ts.map +1 -0
- package/dist/telemetry/spanAttributes.js +47 -0
- package/dist/telemetry/spanAttributes.js.map +1 -0
- package/dist/testing/ReactorScenario.d.ts +1 -0
- package/dist/testing/ReactorScenario.d.ts.map +1 -1
- package/dist/testing/ReactorScenario.js +9 -1
- package/dist/testing/ReactorScenario.js.map +1 -1
- package/dist/testing/ReducerReadModelProcessor.d.ts.map +1 -1
- package/dist/testing/ReducerReadModelProcessor.js +1 -0
- package/dist/testing/ReducerReadModelProcessor.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/eventSequences/EventLog.ts +4 -2
- package/eventSequences/EventSequence.ts +64 -81
- package/eventStoreSubscriptions/EventStoreSubscriptions.ts +5 -5
- package/events/for_handles/when_decorating_a_method.legacy.spec.ts +91 -0
- package/events/for_handles/when_decorating_a_method.standard.spec.ts +102 -0
- package/events/handles.ts +37 -0
- package/events/index.ts +1 -0
- package/for_ChronicleClient/when_registering_artifacts/with_invalid_handler_mappings.spec.ts +142 -0
- package/for_ChronicleClient/when_starting_background_work/with_a_correlated_caller.spec.ts +150 -0
- package/for_ChronicleOptions/when_configuring_telemetry/with_event_source_identifiers.spec.ts +44 -0
- package/index.ts +7 -1
- package/logging/ChronicleLogEntry.ts +14 -0
- package/logging/ChronicleLogLevel.ts +11 -0
- package/logging/DiagChronicleLogger.ts +13 -0
- package/logging/IChronicleLogger.ts +10 -0
- package/logging/createLogger.ts +50 -0
- package/logging/for_ChronicleLogger/when_logging/with_client_owned_sinks.spec.ts +96 -0
- package/observation/EventHandler.ts +9 -0
- package/observation/createHandlerInstanceValidator.ts +42 -0
- package/observation/for_getEventHandlers/when_discovering_handlers.spec.ts +137 -0
- package/observation/for_getEventHandlers/when_reobserving_explicit_handlers.spec.ts +73 -0
- package/observation/getEventHandlers.ts +43 -0
- package/observation/getInstanceMethods.ts +29 -0
- package/package.json +8 -2
- package/projections/Projections.ts +4 -3
- package/reactors/ReactorDispatcher.ts +26 -30
- package/reactors/Reactors.ts +55 -37
- package/reactors/decorators.standard.spec.ts +8 -0
- package/reactors/for_ReactorDispatcher/when_selecting_explicit_handlers.spec.ts +64 -0
- package/reactors/for_Reactors/when_activating_a_field_override.spec.ts +62 -0
- package/reactors/for_Reactors/when_delivering/with_activation.spec.ts +14 -14
- package/reactors/for_Reactors/when_delivering_to_instance_handlers.spec.ts +108 -0
- package/reactors/for_Reactors/when_observing_explicit_handlers.legacy.spec.ts +77 -0
- package/reactors/for_Reactors/when_registering_explicit_handlers.spec.ts +53 -0
- package/reactors/index.ts +1 -0
- package/reducers/ReducerEventDispatcher.ts +5 -16
- package/reducers/ReducerEventHandler.ts +4 -6
- package/reducers/Reducers.ts +50 -35
- package/reducers/for_ReducerEventDispatcher/when_invoking_an_explicit_handler.spec.ts +51 -0
- package/reducers/for_ReducerEventDispatcher/when_invoking_instance_handlers.spec.ts +69 -0
- package/reducers/for_Reducers/when_activating_a_field_override.spec.ts +63 -0
- package/reducers/for_Reducers/when_observing_explicit_handlers.legacy.spec.ts +73 -0
- package/reducers/for_Reducers/when_registering_explicit_handlers.spec.ts +57 -0
- package/reducers/index.ts +1 -0
- package/seeding/EventSeeding.ts +6 -4
- package/telemetry/ChronicleTelemetryOptions.ts +8 -0
- package/telemetry/for_ChronicleTelemetry/given/a_telemetry_session.fixture.ts +36 -0
- package/telemetry/for_ChronicleTelemetry/given/an_event_sequence.fixture.ts +29 -0
- package/telemetry/for_ChronicleTelemetry/when_appending/with_shared_and_legacy_attributes.spec.ts +58 -0
- package/telemetry/for_ChronicleTelemetry/when_appending/without_an_sdk.spec.ts +15 -0
- package/telemetry/for_ChronicleTelemetry/when_documenting/with_public_names.spec.ts +15 -0
- package/telemetry/for_ChronicleTelemetry/when_recording_failures/with_sensitive_exception_details.spec.ts +34 -0
- package/telemetry/for_ChronicleTelemetry/when_recording_identifiers/with_per_client_privacy.spec.ts +92 -0
- package/telemetry/for_ChronicleTelemetry/when_recording_metrics/with_legacy_overlap.spec.ts +40 -0
- package/telemetry/for_ChronicleTelemetry/when_recording_sequence_numbers/with_integer_precision.spec.ts +23 -0
- package/telemetry/observeOperation.ts +25 -0
- package/telemetry/runInBackgroundContext.ts +10 -0
- package/telemetry/spanAttributes.ts +49 -0
- package/testing/ReactorScenario.ts +9 -1
- package/testing/ReducerReadModelProcessor.ts +1 -0
- package/testing/for_ReactorScenario/when_delivering_to_an_explicit_handler.spec.ts +100 -0
- 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":"AAAA,6CAA6C;AAC7C,qGAAqG;AAErG,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAA2B,MAAM,4BAA4B,CAAC;
|
|
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;
|
|
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;
|
|
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":"AAGA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAO7D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAKnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAKhE,OAAO,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
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 {
|
|
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
|
|
57
|
-
|
|
58
|
-
span
|
|
59
|
-
span
|
|
60
|
-
span
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const startTime =
|
|
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 =
|
|
96
|
+
const duration = performance.now() - startTime;
|
|
93
97
|
const result = this.mapAppendResponse(appendResponse.SequenceNumber, appendResponse.ConstraintViolations ?? [], appendResponse.Errors ?? [], appendResponse.ConcurrencyViolation);
|
|
94
|
-
span
|
|
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
|
|
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
|
|
142
|
-
|
|
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
|
|
147
|
+
setEventSourceId(span, distinctEventSourceIds[0], this._telemetry);
|
|
147
148
|
}
|
|
148
|
-
span
|
|
149
|
-
const startTime =
|
|
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 =
|
|
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
|
|
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
|
|
241
|
-
|
|
242
|
-
span
|
|
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
|
|
259
|
+
setSequenceNumber(span, result.value);
|
|
264
260
|
span.setStatus({ code: SpanStatusCode.OK });
|
|
265
261
|
return result;
|
|
266
262
|
}
|
|
267
263
|
catch (error) {
|
|
268
|
-
span
|
|
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
|
|
285
|
-
|
|
286
|
-
span
|
|
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
|
|
290
|
+
setTelemetryAttribute(span, 'hasEvents', result);
|
|
298
291
|
span.setStatus({ code: SpanStatusCode.OK });
|
|
299
292
|
return result;
|
|
300
293
|
}
|
|
301
294
|
catch (error) {
|
|
302
|
-
span
|
|
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
|
|
314
|
-
|
|
315
|
-
span
|
|
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
|
|
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
|
|
348
|
-
|
|
349
|
-
span
|
|
350
|
-
span
|
|
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
|
|
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
|
|
381
|
-
|
|
382
|
-
span
|
|
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
|
|
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
|
|
418
|
-
|
|
419
|
-
span
|
|
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
|
|
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
|
|
466
|
-
|
|
467
|
-
span
|
|
468
|
-
span
|
|
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
|
|
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.
|