@aws/durable-execution-sdk-js-otel 1.1.0 → 1.2.1

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 (48) hide show
  1. package/README.md +338 -12
  2. package/dist/execution-plugin.mjs +227 -50
  3. package/dist/execution-plugin.mjs.map +1 -1
  4. package/dist/index.mjs +1 -1
  5. package/dist/invocation-plugin.mjs +209 -105
  6. package/dist/invocation-plugin.mjs.map +1 -1
  7. package/dist/otel-execution.mjs +1 -1
  8. package/dist/otel-execution.mjs.map +1 -1
  9. package/dist/otel-invocation.mjs +2 -2
  10. package/dist/otel-invocation.mjs.map +1 -1
  11. package/dist/{global-id-generator.mjs → plugin-registration.mjs} +147 -4
  12. package/dist/plugin-registration.mjs.map +1 -0
  13. package/dist-cjs/execution-plugin.js +240 -63
  14. package/dist-cjs/execution-plugin.js.map +1 -1
  15. package/dist-cjs/index.js +10 -10
  16. package/dist-cjs/invocation-plugin.js +221 -117
  17. package/dist-cjs/invocation-plugin.js.map +1 -1
  18. package/dist-cjs/otel-execution.js +1 -1
  19. package/dist-cjs/otel-execution.js.map +1 -1
  20. package/dist-cjs/otel-invocation.js +2 -2
  21. package/dist-cjs/otel-invocation.js.map +1 -1
  22. package/dist-cjs/{global-id-generator.js → plugin-registration.js} +152 -2
  23. package/dist-cjs/plugin-registration.js.map +1 -0
  24. package/dist-types/execution-plugin.d.ts +25 -4
  25. package/dist-types/execution-plugin.d.ts.map +1 -1
  26. package/dist-types/execution-trace-context.d.ts +4 -2
  27. package/dist-types/execution-trace-context.d.ts.map +1 -1
  28. package/dist-types/external-completions.d.ts +11 -0
  29. package/dist-types/external-completions.d.ts.map +1 -0
  30. package/dist-types/global-sampler.d.ts +2 -0
  31. package/dist-types/global-sampler.d.ts.map +1 -1
  32. package/dist-types/invocation-clock.d.ts +9 -0
  33. package/dist-types/invocation-clock.d.ts.map +1 -0
  34. package/dist-types/invocation-plugin.d.ts +18 -2
  35. package/dist-types/invocation-plugin.d.ts.map +1 -1
  36. package/dist-types/operation-span-status.d.ts +5 -0
  37. package/dist-types/operation-span-status.d.ts.map +1 -0
  38. package/dist-types/otel-plugin-config.d.ts +8 -0
  39. package/dist-types/otel-plugin-config.d.ts.map +1 -1
  40. package/dist-types/otel-plugin-provider.d.ts +7 -0
  41. package/dist-types/otel-plugin-provider.d.ts.map +1 -1
  42. package/dist-types/plugin-registration.d.ts +2 -0
  43. package/dist-types/plugin-registration.d.ts.map +1 -0
  44. package/dist-types/propagation-metadata.d.ts +12 -0
  45. package/dist-types/propagation-metadata.d.ts.map +1 -0
  46. package/package.json +13 -9
  47. package/dist/global-id-generator.mjs.map +0 -1
  48. package/dist-cjs/global-id-generator.js.map +0 -1
@@ -1,7 +1,19 @@
1
+ import { P as PLUGIN_REGISTRATION, E as ExternalCompletions, r as resolveFlushTimeoutMillis, D as DeterministicIdGenerator, x as xRayContextExtractor, g as createTracerProvider, t as tryInstallDurableSampler, h as tryInstallGlobalIdGenerator, i as canonicalTraceId, j as resolveExecutionTraceContext, f as deriveWorkflowSpanId, k as isDurableSamplerInstalled, l as createPropagationMetadata, b as deriveSpanIdFromOperationId, s as setOperationSpanStatus, m as flushTracerProvider, n as rootSamplingDecision } from './plugin-registration.mjs';
1
2
  import { trace, SpanKind, context, SpanStatusCode, ROOT_CONTEXT, isSpanContextValid, TraceFlags } from '@opentelemetry/api';
2
- import { hrTime } from '@opentelemetry/core';
3
+ import { otperformance, millisToHrTime } from '@opentelemetry/core';
3
4
  import { SamplingDecision } from '@opentelemetry/sdk-trace-node';
4
- import { D as DeterministicIdGenerator, x as xRayContextExtractor, g as createTracerProvider, t as tryInstallDurableSampler, h as tryInstallGlobalIdGenerator, i as canonicalTraceId, r as resolveExecutionTraceContext, f as deriveWorkflowSpanId, b as deriveSpanIdFromOperationId, j as rootSamplingDecision } from './global-id-generator.mjs';
5
+
6
+ /** Match ordinary OTel spans: a wall-clock origin plus monotonic elapsed time. */
7
+ function captureInvocationClock() {
8
+ return {
9
+ epochMillis: Date.now(),
10
+ monotonicMillis: otperformance.now(),
11
+ };
12
+ }
13
+ function readInvocationClock(clock) {
14
+ // HrTime explicitly denotes absolute time; numeric TimeInput can be relative.
15
+ return millisToHrTime(clock.epochMillis + (otperformance.now() - clock.monotonicMillis));
16
+ }
5
17
 
6
18
  const DEFAULT_INSTRUMENTATION_NAME = "aws-durable-execution-sdk-js";
7
19
  /**
@@ -12,18 +24,27 @@ const DEFAULT_INSTRUMENTATION_NAME = "aws-durable-execution-sdk-js";
12
24
  * durable execution.
13
25
  */
14
26
  class InvocationOtelPlugin {
27
+ static [PLUGIN_REGISTRATION] = {
28
+ exclusiveGroup: "durable-opentelemetry-view",
29
+ };
15
30
  tracerProvider;
16
31
  tracer;
17
32
  idGenerator;
18
33
  contextExtractor;
19
34
  instrumentationName;
35
+ flushTimeoutMillis;
20
36
  usesGlobalProvider;
21
37
  globalIdGeneratorInstalled;
22
38
  durableSampler;
23
39
  tracingEnabled = false;
40
+ // Operation and attempt spans ended after a flush starts need a final batch.
41
+ operationSpansNeedFlush = false;
42
+ externalCompletions = new ExternalCompletions();
43
+ endedOperationSpans = new WeakSet();
24
44
  workflowSpanName;
25
45
  enrichLogger;
26
46
  // Per-invocation state
47
+ invocationClock;
27
48
  spanMap = new Map();
28
49
  spanStack = [];
29
50
  invocationSpan;
@@ -39,6 +60,9 @@ class InvocationOtelPlugin {
39
60
  // Workflow span can be backdated to it; the now() fallback is taken here (not
40
61
  // at onInvocationEnd, where it would land after the span's own end time).
41
62
  executionStartTimestamp;
63
+ // Only a backend timestamp can define a retry-stable, zero-duration anchor.
64
+ syntheticRootAnchorTimestamp;
65
+ syntheticRootMaterialized = false;
42
66
  executionArn = "";
43
67
  executionTraceId = "";
44
68
  executionTraceFlags = 0;
@@ -46,6 +70,7 @@ class InvocationOtelPlugin {
46
70
  constructor(config) {
47
71
  const instrumentationName = config?.instrumentationName ?? DEFAULT_INSTRUMENTATION_NAME;
48
72
  this.instrumentationName = instrumentationName;
73
+ this.flushTimeoutMillis = resolveFlushTimeoutMillis(config?.flushTimeoutMillis);
49
74
  this.idGenerator = new DeterministicIdGenerator();
50
75
  this.contextExtractor = config?.contextExtractor ?? xRayContextExtractor;
51
76
  this.workflowSpanName = config?.workflowSpanName ?? "Workflow";
@@ -70,6 +95,10 @@ class InvocationOtelPlugin {
70
95
  if (!this.tracingEnabled) {
71
96
  return;
72
97
  }
98
+ // Match the epoch/elapsed-time model of an ordinary OTel span, but share
99
+ // this anchor across all live spans in the invocation. Never use the
100
+ // process timeOrigin: it can differ from the current wall-clock epoch.
101
+ this.invocationClock = captureInvocationClock();
73
102
  // 1. Store the execution ARN
74
103
  this.executionArn = info.executionArn;
75
104
  // 2. Invoke the context extractor
@@ -104,10 +133,14 @@ class InvocationOtelPlugin {
104
133
  // parent-based sampler stays consistent with the eventual root.
105
134
  const workflowSpanId = deriveWorkflowSpanId(info.executionArn);
106
135
  this.executionAncestor = execTraceContext.executionAncestor;
136
+ // Snapshot the Date: another hook must not be able to alter a later copy
137
+ // of this invocation's anchor by mutating the input object.
138
+ this.syntheticRootAnchorTimestamp = info.executionStartTimestamp
139
+ ? new Date(info.executionStartTimestamp.getTime())
140
+ : undefined;
107
141
  this.executionStartTimestamp =
108
- info.executionStartTimestamp ??
109
- this.executionStartTimestamp ??
110
- new Date();
142
+ this.syntheticRootAnchorTimestamp ??
143
+ new Date(this.invocationClock.epochMillis);
111
144
  this.workflowSpan = trace.wrapSpanContext({
112
145
  traceId: this.executionTraceId,
113
146
  spanId: workflowSpanId,
@@ -130,8 +163,24 @@ class InvocationOtelPlugin {
130
163
  "durable.execution.arn": info.executionArn,
131
164
  "durable.invocation.first": info.isFirstInvocation,
132
165
  },
133
- startTime: hrTime(),
166
+ startTime: this.liveTimestamp(),
134
167
  }, invocationParentContext);
168
+ this.externalCompletions.observe(info.updatedOperations, info.operations);
169
+ // Each sampled invocation can recover an earlier undelivered anchor. An
170
+ // opaque tracer retains terminal-only creation: without the sampler wrapper,
171
+ // an early anchor would independently query its hidden sampler again.
172
+ if (this.durableSampler && this.syntheticRootAnchorTimestamp) {
173
+ this.createSyntheticRoot()?.end(this.syntheticRootAnchorTimestamp);
174
+ }
175
+ }
176
+ providePropagationMetadata(input) {
177
+ if (!this.tracingEnabled ||
178
+ !this.invocationSpan ||
179
+ !this.workflowSpan ||
180
+ !isDurableSamplerInstalled(this.tracer, this.durableSampler)) {
181
+ return undefined;
182
+ }
183
+ return createPropagationMetadata(input, this.executionArn, this.executionTraceId, this.executionTraceFlags);
135
184
  }
136
185
  wrapInvocation(_info, fn) {
137
186
  if (!this.tracingEnabled || !this.invocationSpan) {
@@ -144,21 +193,15 @@ class InvocationOtelPlugin {
144
193
  this.resetInvocationState();
145
194
  return;
146
195
  }
147
- const endTime = hrTime();
148
- // 1. End all spans in the stack in reverse order
149
- while (this.spanStack.length > 0) {
150
- const span = this.spanStack.pop();
151
- span.end(endTime);
152
- }
153
- // 1b. End any still-recording span left in spanMap (attempt spans, which are
154
- // not on the stack; operation spans were unwound above). Safeguard against a
155
- // leak on a non-terminal invocation (issue #831). isRecording() skips spans
156
- // already ended by the stack unwind.
157
- for (const span of this.spanMap.values()) {
158
- if (span.isRecording()) {
159
- span.end(endTime);
160
- }
196
+ // Prefer normal lifecycle hooks, which preserve live parent scopes. Before
197
+ // returning, export any fresh completion the workflow did not reach. A
198
+ // later resume may label it replay even though it has never been exported.
199
+ for (const operation of this.externalCompletions.pending.values()) {
200
+ this.finishOperation({ ...operation, isReplay: false });
161
201
  }
202
+ const endTime = this.liveTimestamp();
203
+ // 1. Close the spans that exist at the initial invocation unwind.
204
+ this.endOpenSpans(endTime);
162
205
  // 2. End the invocation span if it exists
163
206
  if (this.invocationSpan) {
164
207
  this.invocationSpan.setAttribute("durable.invocation.status", info.status);
@@ -191,6 +234,9 @@ class InvocationOtelPlugin {
191
234
  if (this.executionSamplingDecision === SamplingDecision.RECORD_AND_SAMPLED &&
192
235
  this.executionAncestor &&
193
236
  (info.status === "SUCCEEDED" || info.status === "FAILED")) {
237
+ // Keep terminal-only fallback for providers without an early anchor.
238
+ // An anchor already materialized in this invocation is not emitted twice.
239
+ const syntheticRootSpan = this.createSyntheticRoot();
194
240
  const workflowSpanId = deriveWorkflowSpanId(this.executionArn);
195
241
  const executionAncestorContext = trace.setSpanContext(ROOT_CONTEXT, this.executionAncestor);
196
242
  const workflowSpan = this.idGenerator.withIds({ spanId: workflowSpanId }, () => this.startSpan(this.workflowSpanName, {
@@ -211,20 +257,69 @@ class InvocationOtelPlugin {
211
257
  workflowSpan.setStatus({ code: SpanStatusCode.OK });
212
258
  }
213
259
  workflowSpan.end(endTime);
214
- }
215
- // Non-terminal (PENDING/RETRYING): no real Workflow span is created, so
216
- // nothing to end — the identity was only ever a non-recording context.
217
- // 4. Force flush the tracer provider
218
- if ("forceFlush" in this.tracerProvider) {
260
+ syntheticRootSpan?.end(this.syntheticRootAnchorTimestamp ?? endTime);
261
+ }
262
+ // PENDING/RETRYING never materializes Workflow. A sampled invocation may
263
+ // already have ended its stable synthetic anchor before customer code ran.
264
+ // End owns the drain/flush loop; change hooks only enqueue notifications.
265
+ // Only segments actually ended above need a linked continuation. A span
266
+ // created during an awaited flush can still complete normally.
267
+ const flushDeadline = performance.now() + this.flushTimeoutMillis;
268
+ const flush = async () => {
219
269
  try {
220
- await this.tracerProvider.forceFlush();
270
+ await flushTracerProvider(this.tracerProvider, this.usesGlobalProvider, Math.max(0, flushDeadline - performance.now()));
221
271
  }
222
272
  catch {
223
- // Gracefully handle flush errors
273
+ // Gracefully handle flush errors.
224
274
  }
225
- }
226
- // 5. Clear all per-invocation state
275
+ };
276
+ do {
277
+ for (const operation of this.externalCompletions.pending.values()) {
278
+ this.finishOperation({ ...operation, isReplay: false });
279
+ }
280
+ this.operationSpansNeedFlush = false;
281
+ await flush();
282
+ } while (this.externalCompletions.pending.size > 0 &&
283
+ performance.now() < flushDeadline);
284
+ // Retain one bounded snapshot of terminal notifications already received,
285
+ // including while a provider wait timed out.
286
+ for (const operation of [...this.externalCompletions.pending.values()]) {
287
+ this.finishOperation({ ...operation, isReplay: false });
288
+ }
289
+ // A still-running operation may have started while flush yielded. End its
290
+ // owned recording span before dropping the maps.
291
+ this.endOpenSpans(this.liveTimestamp());
292
+ // Close hooks before the final batch: late lifecycle callbacks cannot create
293
+ // more spans while this last wait uses only the original budget remaining.
294
+ const flushFinalOperations = this.operationSpansNeedFlush;
227
295
  this.resetInvocationState();
296
+ if (flushFinalOperations && performance.now() < flushDeadline) {
297
+ await flush();
298
+ }
299
+ }
300
+ /** Creates at most one SDK-owned root per invocation; the caller ends it. */
301
+ createSyntheticRoot() {
302
+ if (this.syntheticRootMaterialized ||
303
+ this.executionSamplingDecision !== SamplingDecision.RECORD_AND_SAMPLED ||
304
+ !this.executionAncestor ||
305
+ this.executionAncestor.isRemote) {
306
+ return undefined;
307
+ }
308
+ const span = this.idGenerator.withIds({
309
+ traceId: this.executionTraceId,
310
+ spanId: this.executionAncestor.spanId,
311
+ }, () => this.startSpan("DurableExecutionRoot", {
312
+ kind: SpanKind.INTERNAL,
313
+ attributes: {
314
+ "durable.execution.synthetic_root": true,
315
+ "durable.execution.arn": this.executionArn,
316
+ },
317
+ startTime: this.syntheticRootAnchorTimestamp ??
318
+ this.executionStartTimestamp ??
319
+ new Date(),
320
+ }, ROOT_CONTEXT));
321
+ this.syntheticRootMaterialized = true;
322
+ return span;
228
323
  }
229
324
  ensureGlobalIdGeneratorInstalled() {
230
325
  if (!this.usesGlobalProvider || this.globalIdGeneratorInstalled) {
@@ -245,19 +340,47 @@ class InvocationOtelPlugin {
245
340
  console.warn("[InvocationOtelPlugin] Expected a compatible OpenTelemetry SDK tracer at invocation start; telemetry is disabled for this invocation. Ensure the OpenTelemetry SDK is configured before invocation start.");
246
341
  return false;
247
342
  }
343
+ liveTimestamp() {
344
+ return readInvocationClock(this.invocationClock);
345
+ }
248
346
  resetInvocationState() {
347
+ this.externalCompletions.clear();
348
+ this.operationSpansNeedFlush = false;
349
+ this.endedOperationSpans = new WeakSet();
350
+ this.invocationClock = undefined;
249
351
  this.spanMap.clear();
250
352
  this.spanStack = [];
251
353
  this.invocationSpan = undefined;
252
354
  this.workflowSpan = undefined;
253
355
  this.executionAncestor = undefined;
254
356
  this.executionStartTimestamp = undefined;
357
+ this.syntheticRootAnchorTimestamp = undefined;
358
+ this.syntheticRootMaterialized = false;
255
359
  this.executionArn = "";
256
360
  this.executionTraceId = "";
257
361
  this.executionTraceFlags = 0;
258
362
  this.executionSamplingDecision = SamplingDecision.NOT_RECORD;
259
363
  this.tracingEnabled = false;
260
364
  }
365
+ endOperationSpan(span, endTime) {
366
+ span.end(endTime);
367
+ this.operationSpansNeedFlush = true;
368
+ }
369
+ endOpenSpans(endTime) {
370
+ while (this.spanStack.length > 0) {
371
+ const span = this.spanStack.pop();
372
+ this.endOperationSpan(span, endTime);
373
+ this.endedOperationSpans.add(span);
374
+ }
375
+ // Attempts are held only in the map. Recording state avoids ending spans
376
+ // twice here; it is not used to infer whether a sampled-out span has ended.
377
+ for (const span of this.spanMap.values()) {
378
+ if (span.isRecording()) {
379
+ this.endOperationSpan(span, endTime);
380
+ this.endedOperationSpans.add(span);
381
+ }
382
+ }
383
+ }
261
384
  startSpan(name, options, parentContext) {
262
385
  const fn = () => this.tracer.startSpan(name, options, parentContext);
263
386
  return this.durableSampler
@@ -272,14 +395,16 @@ class InvocationOtelPlugin {
272
395
  invocationParentContext(executionAncestor, canonical) {
273
396
  const activeContext = context.active();
274
397
  const ambient = trace.getSpanContext(activeContext);
275
- // Adopt the ambient span as the Invocation parent only when it is on the
276
- // execution trace AND carries the same sampled bit as the execution
277
- // ancestor. Matching the trace ID alone is not enough: if the ambient span's
398
+ // Adopt the ambient span only in propagated-parent mode, when it is on
399
+ // the execution trace AND carries the same sampled bit as the execution
400
+ // ancestor. Synthetic fallback keeps Workflow and Invocation on the same
401
+ // SDK-owned root. Matching the trace ID alone is not enough: if the ambient span's
278
402
  // sampled bit differs, the Invocation span would inherit the ambient
279
403
  // decision and could export after an explicit Sampled=0, or drop after the
280
404
  // root sampler chose sampled. On a mismatch, fall back to the execution
281
405
  // ancestor, which carries the authoritative decision.
282
- if (ambient &&
406
+ if (executionAncestor.isRemote &&
407
+ ambient &&
283
408
  isSpanContextValid(ambient) &&
284
409
  ambient.traceId === canonical &&
285
410
  (ambient.traceFlags & TraceFlags.SAMPLED) ===
@@ -324,12 +449,11 @@ class InvocationOtelPlugin {
324
449
  if (info.isReplay && this.spanMap.has(info.id)) {
325
450
  return;
326
451
  }
327
- // Operation, continuation, and attempt spans use explicit monotonic
328
- // timestamps rather than durable start/end timestamps. Durable timestamps
329
- // can predate this invocation, while letting each span use the tracer's
330
- // default timestamp can give it an independent wall-clock anchor. A shared
331
- // monotonic clock keeps children inside their parent timing envelopes.
332
- // Only the parentless Workflow span keeps a backdated start.
452
+ // All live spans use the invocation's wall-anchored monotonic clock, so
453
+ // wall-clock adjustments cannot collapse or inflate their durations.
454
+ // Invocation cleanup shares one end time for open spans. Durable timestamps
455
+ // can predate this invocation and are used only for the backdated Workflow
456
+ // and synthetic execution root starts.
333
457
  const deterministicSpanId = deriveSpanIdFromOperationId(info.id, this.executionArn);
334
458
  const spanName = info.name ?? info.type;
335
459
  // Resolve parent span: use parentId from map, or fall back to invocation span
@@ -369,7 +493,7 @@ class InvocationOtelPlugin {
369
493
  }, () => this.startSpan(spanName, {
370
494
  attributes,
371
495
  links: this.workflowLinks(),
372
- startTime: hrTime(),
496
+ startTime: this.liveTimestamp(),
373
497
  }, parentContext));
374
498
  }
375
499
  else if (info.type === "CONTEXT" || info.type === "STEP") {
@@ -378,17 +502,10 @@ class InvocationOtelPlugin {
378
502
  // to the reproducible Workflow span, and links back to the initial logical
379
503
  // operation span (deterministic on the execution trace) so the segments
380
504
  // stay correlated across invocations.
381
- //
382
- // WaitForCondition is modeled differently by the OTel conformance
383
- // contract: the resumed operation span keeps only its Workflow link, while
384
- // the non-terminal first polling attempt links back to the first operation
385
- // span once it is known to have completed successfully.
386
505
  span = this.startSpan(spanName, {
387
506
  attributes,
388
- links: info.subType === "WaitForCondition"
389
- ? this.workflowLinks()
390
- : this.replayLinks(info.id),
391
- startTime: hrTime(),
507
+ links: this.replayLinks(info.id),
508
+ startTime: this.liveTimestamp(),
392
509
  }, parentContext);
393
510
  }
394
511
  // Push to map and stack
@@ -408,20 +525,33 @@ class InvocationOtelPlugin {
408
525
  return context.with(trace.setSpan(context.active(), span), fn);
409
526
  }
410
527
  async onOperationEnd(info) {
528
+ this.finishOperation(info);
529
+ }
530
+ // Child completion and parent finalization share one synchronous turn. A
531
+ // provider flush must not reset invocation state between these two actions.
532
+ finishOperation(info) {
411
533
  if (!this.tracingEnabled) {
412
534
  return;
413
535
  }
414
- // Skip span creation for WAIT, INVOKE, CHAINED_INVOKE, and CALLBACK operations on replay
415
- if (info.isReplay &&
416
- (info.type === "WAIT" ||
417
- info.type === "INVOKE" ||
418
- info.type === "CHAINED_INVOKE" ||
419
- info.type === "CALLBACK")) {
536
+ // Checkpoint updates may complete an unawaited operation from an earlier
537
+ // invocation. Drain it before removing its live parent from spanMap.
538
+ if (info.type === "CONTEXT" && !info.isReplay) {
539
+ for (const child of this.externalCompletions.pending.values()) {
540
+ if (child.parentId === info.id) {
541
+ this.finishOperation({ ...child, isReplay: false });
542
+ }
543
+ }
544
+ }
545
+ // Updates and traversal can report the same completion in either order.
546
+ // The set is reset each invocation so failed-invocation redelivery remains
547
+ // eligible, while normal replay never exports a completion a second time.
548
+ if (this.externalCompletions.shouldSkip(info)) {
420
549
  return;
421
550
  }
422
- if (this.spanMap.has(info.id)) {
423
- // Operation was started in this invocation
424
- const span = this.spanMap.get(info.id);
551
+ const currentSpan = this.spanMap.get(info.id);
552
+ if (currentSpan && !this.endedOperationSpans.has(currentSpan)) {
553
+ // Operation was started in this invocation and its segment is still open
554
+ const span = currentSpan;
425
555
  // Finalize the operation status from the core-supplied terminal status.
426
556
  // Container CONTEXT ops receive a terminal status from the core too:
427
557
  // run-in-child-context-handler passes SUCCEEDED/FAILED on both the
@@ -436,25 +566,12 @@ class InvocationOtelPlugin {
436
566
  info.attempt != null) {
437
567
  span.setAttribute("durable.attempt.number", info.attempt);
438
568
  }
439
- // Record error if present; otherwise stamp explicit OK ONLY on a
440
- // SUCCEEDED terminal status (matches Python OTel plugin #604). Only
441
- // reached for operations that terminate this invocation — suspended ops
442
- // early-return above and keep their STARTED status UNSET. Terminal
443
- // FAILURE statuses (TIMED_OUT/STOPPED/FAILED/CANCELLED) can arrive with
444
- // NO error object (callback-timeout, chained-invoke fast paths); those
445
- // must NOT be labelled OK, so they are left UNSET.
569
+ setOperationSpanStatus(span, info);
446
570
  if (info.error) {
447
- span.setStatus({
448
- code: SpanStatusCode.ERROR,
449
- message: info.error.message,
450
- });
451
- span.recordException(info.error);
452
- }
453
- else if (info.status === "SUCCEEDED") {
454
- span.setStatus({ code: SpanStatusCode.OK });
571
+ span.recordException(info.error, this.liveTimestamp());
455
572
  }
456
573
  // End the span
457
- span.end(hrTime());
574
+ this.endOperationSpan(span, this.liveTimestamp());
458
575
  // Remove from map
459
576
  this.spanMap.delete(info.id);
460
577
  // Remove from stack (find by reference)
@@ -463,7 +580,11 @@ class InvocationOtelPlugin {
463
580
  this.spanStack.splice(stackIndex, 1);
464
581
  }
465
582
  }
466
- else if (!info.isReplay) {
583
+ else if (!info.isReplay ||
584
+ this.externalCompletions.pending.has(info.id)) {
585
+ // A fresh checkpoint completion can be replay-marked: updated IDs were
586
+ // captured before this invocation received the update. Export it while
587
+ // its child parent is still active, without changing the SDK's info.
467
588
  // Operation was started in a prior invocation — create Continuation_Span
468
589
  const spanName = info.name ?? info.type;
469
590
  // Resolve parent span: use parentId from map (e.g. the CONTEXT span for
@@ -505,27 +626,16 @@ class InvocationOtelPlugin {
505
626
  // deterministic on the execution trace, so the segments of one logical
506
627
  // operation stay correlated across invocations.
507
628
  links: this.replayLinks(info.id),
508
- startTime: hrTime(),
629
+ startTime: this.liveTimestamp(),
509
630
  }, parentContext);
510
- // Record error if present; otherwise stamp explicit OK ONLY on a
511
- // SUCCEEDED terminal status (matches Python OTel plugin #604). This is
512
- // the terminal completion path for an operation started in a prior
513
- // invocation. Terminal FAILURE statuses can arrive with NO error object
514
- // (callback-timeout, chained-invoke 'already failed' cross-invocation
515
- // fast paths); those must NOT be labelled OK, so they are left UNSET.
631
+ setOperationSpanStatus(continuationSpan, info);
516
632
  if (info.error) {
517
- continuationSpan.setStatus({
518
- code: SpanStatusCode.ERROR,
519
- message: info.error.message,
520
- });
521
- continuationSpan.recordException(info.error);
522
- }
523
- else if (info.status === "SUCCEEDED") {
524
- continuationSpan.setStatus({ code: SpanStatusCode.OK });
633
+ continuationSpan.recordException(info.error, this.liveTimestamp());
525
634
  }
526
635
  // Immediately end
527
- continuationSpan.end(hrTime());
636
+ this.endOperationSpan(continuationSpan, this.liveTimestamp());
528
637
  }
638
+ this.externalCompletions.markExported(info);
529
639
  }
530
640
  async onOperationAttemptStart(info) {
531
641
  if (!this.tracingEnabled) {
@@ -555,7 +665,7 @@ class InvocationOtelPlugin {
555
665
  }
556
666
  const attemptSpan = this.startSpan(spanName, {
557
667
  attributes,
558
- startTime: hrTime(),
668
+ startTime: this.liveTimestamp(),
559
669
  }, parentContext);
560
670
  this.spanMap.set(this.attemptSpanKey(info.id, info.attempt), attemptSpan);
561
671
  }
@@ -576,7 +686,7 @@ class InvocationOtelPlugin {
576
686
  const key = this.attemptSpanKey(info.id, info.attempt);
577
687
  const attemptSpan = this.spanMap.get(key);
578
688
  if (attemptSpan) {
579
- attemptSpan.addLinks(this.attemptLinks(info));
689
+ attemptSpan.addLinks(this.workflowLinks());
580
690
  attemptSpan.setAttribute("durable.attempt.outcome", info.outcome);
581
691
  if (info.outcome === "FAILED") {
582
692
  attemptSpan.setStatus({
@@ -584,19 +694,21 @@ class InvocationOtelPlugin {
584
694
  message: info.error?.message ?? "Attempt failed",
585
695
  });
586
696
  if (info.error) {
587
- attemptSpan.recordException(info.error);
697
+ attemptSpan.recordException(info.error, this.liveTimestamp());
588
698
  }
589
699
  }
590
700
  else {
591
701
  // Non-failed attempt: stamp explicit OK (matches Python OTel #604).
592
702
  attemptSpan.setStatus({ code: SpanStatusCode.OK });
593
703
  }
594
- attemptSpan.end(hrTime());
704
+ this.endOperationSpan(attemptSpan, this.liveTimestamp());
595
705
  this.spanMap.delete(key);
596
706
  }
597
707
  }
598
- async onOperationChange(_info) {
599
- // No-op for this plugin
708
+ async onOperationChange(info) {
709
+ if (this.tracingEnabled) {
710
+ this.externalCompletions.observe(info.updatedOperations, info.operations);
711
+ }
600
712
  }
601
713
  enrichLogContext() {
602
714
  if (!this.tracingEnabled || !this.enrichLogger) {
@@ -644,14 +756,6 @@ class InvocationOtelPlugin {
644
756
  links.push(...this.workflowLinks());
645
757
  return links;
646
758
  }
647
- attemptLinks(info) {
648
- if (info.subType === "WaitForCondition" &&
649
- info.attempt === 1 &&
650
- info.outcome === "SUCCEEDED") {
651
- return this.replayLinks(info.id);
652
- }
653
- return this.workflowLinks();
654
- }
655
759
  attemptSpanKey(operationId, attempt) {
656
760
  return `attempt:${operationId}:${attempt}`;
657
761
  }
@@ -1 +1 @@
1
- {"version":3,"file":"invocation-plugin.mjs","sources":["../src/invocation-plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"invocation-plugin.mjs","sources":["../src/invocation-clock.ts","../src/invocation-plugin.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { E as ExecutionOtelPlugin } from './execution-plugin.mjs';
2
+ import './plugin-registration.mjs';
2
3
  import '@opentelemetry/api';
3
- import './global-id-generator.mjs';
4
4
  import '@opentelemetry/sdk-trace-node';
5
5
  import 'node:async_hooks';
6
6
  import 'node:crypto';
@@ -1 +1 @@
1
- {"version":3,"file":"otel-execution.mjs","sources":["../src/execution-plugin-provider.ts"],"names":[],"mappings":";;;;;;;AAGO,MAAM,8BAA8B,GAAG;AAC5C,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,UAAU,EAAE,mBAAmB;AAC/B,IAAA,YAAY,EAAE,MAAM,IAAI,mBAAmB,EAAE;;;;;"}
1
+ {"version":3,"file":"otel-execution.mjs","sources":["../src/execution-plugin-provider.ts"],"names":[],"mappings":";;;;;;;AAGO,MAAM,8BAA8B,GAAG;AAC5C,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,UAAU,EAAE,mBAAmB;AAC/B,IAAA,YAAY,EAAE,MAAM,IAAI,mBAAmB,EAAE;;;"}
@@ -1,10 +1,10 @@
1
1
  import { I as InvocationOtelPlugin } from './invocation-plugin.mjs';
2
+ import './plugin-registration.mjs';
2
3
  import '@opentelemetry/api';
3
- import '@opentelemetry/core';
4
4
  import '@opentelemetry/sdk-trace-node';
5
- import './global-id-generator.mjs';
6
5
  import 'node:async_hooks';
7
6
  import 'node:crypto';
7
+ import '@opentelemetry/core';
8
8
 
9
9
  const durableExecutionPluginProvider = {
10
10
  pluginApiVersion: 1,
@@ -1 +1 @@
1
- {"version":3,"file":"otel-invocation.mjs","sources":["../src/invocation-plugin-provider.ts"],"names":[],"mappings":";;;;;;;;AAGO,MAAM,8BAA8B,GAAG;AAC5C,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,UAAU,EAAE,oBAAoB;AAChC,IAAA,YAAY,EAAE,MAAM,IAAI,oBAAoB,EAAE;;;;;"}
1
+ {"version":3,"file":"otel-invocation.mjs","sources":["../src/invocation-plugin-provider.ts"],"names":[],"mappings":";;;;;;;;AAGO,MAAM,8BAA8B,GAAG;AAC5C,IAAA,gBAAgB,EAAE,CAAC;AACnB,IAAA,UAAU,EAAE,oBAAoB;AAChC,IAAA,YAAY,EAAE,MAAM,IAAI,oBAAoB,EAAE;;;"}