@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,7 @@
1
1
  'use strict';
2
2
 
3
+ var pluginRegistration = require('./plugin-registration.js');
3
4
  var api = require('@opentelemetry/api');
4
- var globalIdGenerator = require('./global-id-generator.js');
5
5
  var sdkTraceNode = require('@opentelemetry/sdk-trace-node');
6
6
 
7
7
  const DEFAULT_INSTRUMENTATION_NAME = "aws-durable-execution-sdk-js";
@@ -19,6 +19,9 @@ const DEFAULT_INSTRUMENTATION_NAME = "aws-durable-execution-sdk-js";
19
19
  * onOperationEnd, so nothing is left un-ended across invocations (issue #831).
20
20
  */
21
21
  class ExecutionOtelPlugin {
22
+ static [pluginRegistration.PLUGIN_REGISTRATION] = {
23
+ exclusiveGroup: "durable-opentelemetry-view",
24
+ };
22
25
  // Shared utilities (reused from existing package)
23
26
  idGenerator;
24
27
  contextExtractor;
@@ -26,6 +29,7 @@ class ExecutionOtelPlugin {
26
29
  tracerProvider;
27
30
  tracer;
28
31
  instrumentationName;
32
+ flushTimeoutMillis;
29
33
  // Non-recording context carrying the deterministic Workflow identity; the real
30
34
  // span is created+ended once, at the terminal invocation (issue #831).
31
35
  workflowSpan;
@@ -47,10 +51,20 @@ class ExecutionOtelPlugin {
47
51
  // start and reused when the real span is created at terminal.
48
52
  executionAncestor;
49
53
  executionStartTimestamp;
54
+ // Only a backend timestamp can define a retry-stable, zero-duration anchor.
55
+ syntheticRootAnchorTimestamp;
56
+ syntheticRootMaterialized = false;
50
57
  usesGlobalProvider;
51
58
  globalIdGeneratorInstalled;
52
59
  durableSampler;
53
60
  tracingEnabled = false;
61
+ // Operation ends received after a flush starts may still be in a batch buffer.
62
+ operationSpansNeedFlush = false;
63
+ externalCompletions = new pluginRegistration.ExternalCompletions();
64
+ // A real context span can finish even when an enclosing completed context
65
+ // suppresses its terminal checkpoint. Keep that observed parent identity.
66
+ recordedContextIds = new Set();
67
+ invocationEndOperations;
54
68
  // Workflow span name (configurable)
55
69
  workflowSpanName;
56
70
  // Whether enrichLogContext() contributes trace context to log records
@@ -58,18 +72,19 @@ class ExecutionOtelPlugin {
58
72
  constructor(config) {
59
73
  const instrumentationName = config?.instrumentationName ?? DEFAULT_INSTRUMENTATION_NAME;
60
74
  this.instrumentationName = instrumentationName;
61
- this.idGenerator = new globalIdGenerator.DeterministicIdGenerator();
62
- this.contextExtractor = config?.contextExtractor ?? globalIdGenerator.xRayContextExtractor;
75
+ this.flushTimeoutMillis = pluginRegistration.resolveFlushTimeoutMillis(config?.flushTimeoutMillis);
76
+ this.idGenerator = new pluginRegistration.DeterministicIdGenerator();
77
+ this.contextExtractor = config?.contextExtractor ?? pluginRegistration.xRayContextExtractor;
63
78
  this.workflowSpanName = config?.workflowSpanName ?? "Workflow";
64
79
  this.enrichLogger = config?.enrichLogger ?? true;
65
- const { tracerProvider, usesGlobalProvider } = globalIdGenerator.createTracerProvider(config, this.idGenerator);
80
+ const { tracerProvider, usesGlobalProvider } = pluginRegistration.createTracerProvider(config, this.idGenerator);
66
81
  this.tracerProvider = tracerProvider;
67
82
  this.usesGlobalProvider = usesGlobalProvider;
68
83
  this.tracer = this.tracerProvider.getTracer(instrumentationName);
69
- this.durableSampler = globalIdGenerator.tryInstallDurableSampler(this.tracer);
84
+ this.durableSampler = pluginRegistration.tryInstallDurableSampler(this.tracer);
70
85
  this.globalIdGeneratorInstalled = !this.usesGlobalProvider;
71
86
  if (this.usesGlobalProvider) {
72
- const installedIdGenerator = globalIdGenerator.tryInstallGlobalIdGenerator(this.tracer);
87
+ const installedIdGenerator = pluginRegistration.tryInstallGlobalIdGenerator(this.tracer);
73
88
  if (installedIdGenerator) {
74
89
  this.idGenerator = installedIdGenerator;
75
90
  this.globalIdGeneratorInstalled = true;
@@ -99,15 +114,15 @@ class ExecutionOtelPlugin {
99
114
  // start time. The execution ancestor is a complete remote parent, else a
100
115
  // synthetic execution root. A live ambient span is not used as the ancestor
101
116
  // (its trace is not stable across reinvocations).
102
- const canonical = globalIdGenerator.canonicalTraceId(extractedContext, info.executionArn, info.executionStartTimestamp);
103
- const execTraceContext = globalIdGenerator.resolveExecutionTraceContext(extractedContext, canonical, info.executionArn, () => globalIdGenerator.rootSamplingDecision(this.tracer, canonical, this.workflowSpanName, {
117
+ const canonical = pluginRegistration.canonicalTraceId(extractedContext, info.executionArn, info.executionStartTimestamp);
118
+ const execTraceContext = pluginRegistration.resolveExecutionTraceContext(extractedContext, canonical, info.executionArn, () => pluginRegistration.rootSamplingDecision(this.tracer, canonical, this.workflowSpanName, {
104
119
  "durable.execution.arn": info.executionArn,
105
120
  }));
106
121
  this.executionTraceId = canonical;
107
122
  this.executionTraceFlags = execTraceContext.traceFlags;
108
123
  this.executionSamplingDecision = execTraceContext.samplingDecision;
109
124
  // 4. Derive the workflow span ID from execution ARN
110
- const workflowSpanId = globalIdGenerator.deriveWorkflowSpanId(info.executionArn);
125
+ const workflowSpanId = pluginRegistration.deriveWorkflowSpanId(info.executionArn);
111
126
  // 5. Resolve the Workflow_Span identity as a NON-RECORDING context. A whole
112
127
  // execution spans many invocations, so only the terminal one can complete
113
128
  // the real span; carrying a real recording span across invocations would
@@ -119,10 +134,13 @@ class ExecutionOtelPlugin {
119
134
  // carries the execution sampled bit so a parent-based sampler stays
120
135
  // consistent with the eventual root.
121
136
  this.executionAncestor = execTraceContext.executionAncestor;
137
+ // Snapshot the Date: another hook must not be able to alter a later copy
138
+ // of this invocation's anchor by mutating the input object.
139
+ this.syntheticRootAnchorTimestamp = info.executionStartTimestamp
140
+ ? new Date(info.executionStartTimestamp.getTime())
141
+ : undefined;
122
142
  this.executionStartTimestamp =
123
- info.executionStartTimestamp ??
124
- this.executionStartTimestamp ??
125
- new Date();
143
+ this.syntheticRootAnchorTimestamp ?? new Date();
126
144
  this.workflowSpan = api.trace.wrapSpanContext({
127
145
  traceId: this.executionTraceId,
128
146
  spanId: workflowSpanId,
@@ -167,6 +185,22 @@ class ExecutionOtelPlugin {
167
185
  kind: api.SpanKind.INTERNAL,
168
186
  attributes: invocationAttributes,
169
187
  }, invocationParentContext);
188
+ this.externalCompletions.observe(info.updatedOperations, info.operations);
189
+ // Each sampled invocation can recover an earlier undelivered anchor. An
190
+ // opaque tracer retains terminal-only creation: without the sampler wrapper,
191
+ // an early anchor would independently query its hidden sampler again.
192
+ if (this.durableSampler && this.syntheticRootAnchorTimestamp) {
193
+ this.createSyntheticRoot()?.end(this.syntheticRootAnchorTimestamp);
194
+ }
195
+ }
196
+ providePropagationMetadata(input) {
197
+ if (!this.tracingEnabled ||
198
+ !this.invocationSpan ||
199
+ !this.workflowSpan ||
200
+ !pluginRegistration.isDurableSamplerInstalled(this.tracer, this.durableSampler)) {
201
+ return undefined;
202
+ }
203
+ return pluginRegistration.createPropagationMetadata(input, this.executionArn, this.executionTraceId, this.executionTraceFlags);
170
204
  }
171
205
  wrapInvocation(_info, fn) {
172
206
  if (!this.tracingEnabled || !this.workflowSpan) {
@@ -179,6 +213,11 @@ class ExecutionOtelPlugin {
179
213
  this.resetInvocationState();
180
214
  return;
181
215
  }
216
+ this.invocationEndOperations = info.operations ?? {};
217
+ // Prefer normal lifecycle hooks, which preserve live parent scopes. Before
218
+ // returning, export any fresh completion the workflow did not reach. A
219
+ // later resume may label it replay even though it has never been exported.
220
+ this.drainExternalCompletions(info);
182
221
  // 1. Always end and export Invocation_Span
183
222
  if (this.invocationSpan) {
184
223
  this.invocationSpan.setAttribute("durable.invocation.status", info.status);
@@ -211,7 +250,10 @@ class ExecutionOtelPlugin {
211
250
  if (this.executionSamplingDecision === sdkTraceNode.SamplingDecision.RECORD_AND_SAMPLED &&
212
251
  this.executionAncestor &&
213
252
  (info.status === "SUCCEEDED" || info.status === "FAILED")) {
214
- const workflowSpanId = globalIdGenerator.deriveWorkflowSpanId(this.executionArn);
253
+ // Keep terminal-only fallback for providers without an early anchor.
254
+ // An anchor already materialized in this invocation is not emitted twice.
255
+ const syntheticRootSpan = this.createSyntheticRoot();
256
+ const workflowSpanId = pluginRegistration.deriveWorkflowSpanId(this.executionArn);
215
257
  const executionAncestorContext = api.trace.setSpanContext(api.ROOT_CONTEXT, this.executionAncestor);
216
258
  const workflowSpan = this.idGenerator.withIds({ spanId: workflowSpanId }, () => this.startSpan(this.workflowSpanName, {
217
259
  kind: api.SpanKind.INTERNAL,
@@ -231,28 +273,93 @@ class ExecutionOtelPlugin {
231
273
  workflowSpan.setStatus({ code: api.SpanStatusCode.OK });
232
274
  }
233
275
  workflowSpan.end();
276
+ syntheticRootSpan?.end(this.syntheticRootAnchorTimestamp);
234
277
  }
235
- // Non-terminal (PENDING/RETRYING): no real Workflow_Span is created, so
236
- // nothing to end — the identity was only ever a non-recording context.
278
+ // PENDING/RETRYING never materializes Workflow. A sampled invocation may
279
+ // already have ended its stable synthetic anchor before customer code ran.
237
280
  // 3. End any attempt span still open (safeguard against a leak on a
238
281
  // non-terminal invocation, issue #831). Operation placeholders have no
239
282
  // recording span and are dropped in resetInvocationState.
240
- for (const span of this.spanMap.values()) {
241
- if (span.isRecording()) {
242
- span.end();
243
- }
244
- }
245
- // 4. Always flush TracerProvider at invocation boundaries
246
- if ("forceFlush" in this.tracerProvider) {
283
+ this.endOpenAttemptSpans();
284
+ // End owns the drain/flush loop; change hooks only enqueue notifications.
285
+ // A response received during an awaited flush must not be cleared below.
286
+ const flushDeadline = performance.now() + this.flushTimeoutMillis;
287
+ const flush = async () => {
247
288
  try {
248
- await this.tracerProvider.forceFlush();
289
+ await pluginRegistration.flushTracerProvider(this.tracerProvider, this.usesGlobalProvider, Math.max(0, flushDeadline - performance.now()));
249
290
  }
250
291
  catch (e) {
251
292
  console.error("[ExecutionOtelPlugin] forceFlush failed:", e instanceof Error ? e.message : e);
252
293
  }
253
- }
254
- // 5. Clear per-invocation state
294
+ };
295
+ do {
296
+ this.drainExternalCompletions(info);
297
+ this.operationSpansNeedFlush = false;
298
+ await flush();
299
+ } while ([...this.externalCompletions.pending.values()].some((operation) => !this.hasOpenUnrecordedParent(operation)) &&
300
+ performance.now() < flushDeadline);
301
+ // Finalize the remaining live parents after the open drain/flush phase.
302
+ // A normal parent End may already have exported its child during that wait.
303
+ if (this.externalCompletions.pending.size > 0) {
304
+ this.drainExternalCompletions(info, [...this.externalCompletions.pending.values()], true);
305
+ }
306
+ // Attempts started during the awaited flush are owned by this invocation too.
307
+ this.endOpenAttemptSpans();
308
+ // Close this invocation's hooks before flushing the finalized snapshot.
309
+ // New operation-end hooks during this last wait cannot revise the snapshot.
310
+ const flushFinalOperations = this.operationSpansNeedFlush;
255
311
  this.resetInvocationState();
312
+ if (flushFinalOperations && performance.now() < flushDeadline) {
313
+ await flush();
314
+ }
315
+ }
316
+ drainExternalCompletions(info, operations = this.externalCompletions.pending.values(), finalDrain = false) {
317
+ const terminal = info.status === "SUCCEEDED" || info.status === "FAILED";
318
+ for (const operation of operations) {
319
+ // Even below a checkpointed terminal ancestor, a live context can still
320
+ // finish locally while forceFlush awaits. Give its End hook first choice.
321
+ const openParent = this.hasOpenUnrecordedParent(operation);
322
+ if (openParent && !finalDrain)
323
+ continue;
324
+ const recordedParent = operation.parentId && this.recordedContextIds.has(operation.parentId);
325
+ // A terminal handler can abandon an unawaited child. Its still-open
326
+ // placeholder will be discarded below, so it cannot parent this export.
327
+ const parentId = !recordedParent &&
328
+ ((terminal && openParent) ||
329
+ this.hasAbandonedParent(operation.parentId, this.invocationEndOperations))
330
+ ? undefined
331
+ : operation.parentId;
332
+ this.finishOperation({ ...operation, parentId, isReplay: false });
333
+ }
334
+ }
335
+ hasOpenUnrecordedParent(operation) {
336
+ return (operation.parentId !== undefined &&
337
+ this.operationContexts.has(operation.parentId) &&
338
+ !this.recordedContextIds.has(operation.parentId));
339
+ }
340
+ /** Creates at most one SDK-owned root per invocation; the caller ends it. */
341
+ createSyntheticRoot() {
342
+ if (this.syntheticRootMaterialized ||
343
+ this.executionSamplingDecision !== sdkTraceNode.SamplingDecision.RECORD_AND_SAMPLED ||
344
+ !this.executionAncestor ||
345
+ this.executionAncestor.isRemote) {
346
+ return undefined;
347
+ }
348
+ const span = this.idGenerator.withIds({
349
+ traceId: this.executionTraceId,
350
+ spanId: this.executionAncestor.spanId,
351
+ }, () => this.startSpan("DurableExecutionRoot", {
352
+ kind: api.SpanKind.INTERNAL,
353
+ attributes: {
354
+ "durable.execution.synthetic_root": true,
355
+ "durable.execution.arn": this.executionArn,
356
+ },
357
+ startTime: this.syntheticRootAnchorTimestamp ??
358
+ this.executionStartTimestamp ??
359
+ new Date(),
360
+ }, api.ROOT_CONTEXT));
361
+ this.syntheticRootMaterialized = true;
362
+ return span;
256
363
  }
257
364
  ensureGlobalIdGeneratorInstalled() {
258
365
  if (!this.usesGlobalProvider || this.globalIdGeneratorInstalled) {
@@ -263,8 +370,8 @@ class ExecutionOtelPlugin {
263
370
  // again at invocation start, after preload initialization has completed.
264
371
  this.tracerProvider = api.trace.getTracerProvider();
265
372
  this.tracer = this.tracerProvider.getTracer(this.instrumentationName);
266
- this.durableSampler = globalIdGenerator.tryInstallDurableSampler(this.tracer);
267
- const installedIdGenerator = globalIdGenerator.tryInstallGlobalIdGenerator(this.tracer);
373
+ this.durableSampler = pluginRegistration.tryInstallDurableSampler(this.tracer);
374
+ const installedIdGenerator = pluginRegistration.tryInstallGlobalIdGenerator(this.tracer);
268
375
  if (installedIdGenerator) {
269
376
  this.idGenerator = installedIdGenerator;
270
377
  this.globalIdGeneratorInstalled = true;
@@ -273,7 +380,21 @@ class ExecutionOtelPlugin {
273
380
  console.warn("[ExecutionOtelPlugin] Expected a compatible OpenTelemetry SDK tracer at invocation start; telemetry is disabled for this invocation. Ensure the OpenTelemetry SDK is configured before invocation start.");
274
381
  return false;
275
382
  }
383
+ endOpenAttemptSpans() {
384
+ for (const span of this.spanMap.values()) {
385
+ if (span.isRecording())
386
+ this.endOperationSpan(span);
387
+ }
388
+ }
389
+ endOperationSpan(span, endTime) {
390
+ span.end(endTime);
391
+ this.operationSpansNeedFlush = true;
392
+ }
276
393
  resetInvocationState() {
394
+ this.externalCompletions.clear();
395
+ this.operationSpansNeedFlush = false;
396
+ this.recordedContextIds.clear();
397
+ this.invocationEndOperations = undefined;
277
398
  this.spanMap.clear();
278
399
  this.operationContexts.clear();
279
400
  this.operationStarts.clear();
@@ -281,6 +402,8 @@ class ExecutionOtelPlugin {
281
402
  this.invocationSpan = undefined;
282
403
  this.executionAncestor = undefined;
283
404
  this.executionStartTimestamp = undefined;
405
+ this.syntheticRootAnchorTimestamp = undefined;
406
+ this.syntheticRootMaterialized = false;
284
407
  this.executionArn = "";
285
408
  this.executionTraceId = "";
286
409
  this.executionTraceFlags = 0;
@@ -301,14 +424,16 @@ class ExecutionOtelPlugin {
301
424
  invocationParentContext(executionAncestor, canonical) {
302
425
  const activeContext = api.context.active();
303
426
  const ambient = api.trace.getSpanContext(activeContext);
304
- // Adopt the ambient span as the Invocation parent only when it is on the
305
- // execution trace AND carries the same sampled bit as the execution
306
- // ancestor. Matching the trace ID alone is not enough: if the ambient span's
427
+ // Adopt the ambient span only in propagated-parent mode, when it is on
428
+ // the execution trace AND carries the same sampled bit as the execution
429
+ // ancestor. Synthetic fallback keeps Workflow and Invocation on the same
430
+ // SDK-owned root. Matching the trace ID alone is not enough: if the ambient span's
307
431
  // sampled bit differs, the Invocation span would inherit the ambient
308
432
  // decision and could export after an explicit Sampled=0, or drop after the
309
433
  // root sampler chose sampled. On a mismatch, fall back to the execution
310
434
  // ancestor, which carries the authoritative decision.
311
- if (ambient &&
435
+ if (executionAncestor.isRemote &&
436
+ ambient &&
312
437
  api.isSpanContextValid(ambient) &&
313
438
  ambient.traceId === canonical &&
314
439
  (ambient.traceFlags & api.TraceFlags.SAMPLED) ===
@@ -335,7 +460,7 @@ class ExecutionOtelPlugin {
335
460
  }
336
461
  // Defer the span: store only a deterministic non-recording placeholder that
337
462
  // children/attempts parent onto; the real span is created in onOperationEnd.
338
- const deterministicSpanId = globalIdGenerator.deriveSpanIdFromOperationId(info.id, this.executionArn);
463
+ const deterministicSpanId = pluginRegistration.deriveSpanIdFromOperationId(info.id, this.executionArn);
339
464
  this.operationContexts.set(info.id, {
340
465
  traceId: this.executionTraceId,
341
466
  spanId: deterministicSpanId,
@@ -366,14 +491,33 @@ class ExecutionOtelPlugin {
366
491
  return api.context.with(api.trace.setSpanContext(api.context.active(), operationContext), fn);
367
492
  }
368
493
  async onOperationEnd(info) {
494
+ this.finishOperation(info);
495
+ }
496
+ // Child completion and parent finalization share one synchronous turn. A
497
+ // provider flush must not reset invocation state between these two actions.
498
+ finishOperation(info) {
369
499
  if (!this.tracingEnabled) {
370
500
  return;
371
501
  }
372
- // The only place an operation span is created: start+end it here under its
373
- // deterministic ID, so it is exported exactly once even across suspend/resume.
502
+ // A queued external completion can precede its live context's end even
503
+ // when traversal never awaited it. Export it while that parent is open.
504
+ if (info.type === "CONTEXT" && !info.isReplay) {
505
+ for (const child of this.externalCompletions.pending.values()) {
506
+ if (child.parentId === info.id) {
507
+ this.finishOperation({ ...child, isReplay: false });
508
+ }
509
+ }
510
+ }
511
+ // Release placeholders even when this is a previously observed completion.
374
512
  const started = this.operationStarts.get(info.id);
375
513
  this.operationContexts.delete(info.id);
376
514
  this.operationStarts.delete(info.id);
515
+ // Updates and traversal can report the same completion in either order.
516
+ // The set is reset each invocation so failed-invocation redelivery remains
517
+ // eligible, while normal replay never exports a completion a second time.
518
+ if (this.externalCompletions.shouldSkip(info)) {
519
+ return;
520
+ }
377
521
  // The end event may omit name/subType; fall back to what start captured.
378
522
  const name = info.name ?? started?.name;
379
523
  const subType = info.subType ?? started?.subType;
@@ -399,41 +543,46 @@ class ExecutionOtelPlugin {
399
543
  attributes["durable.attempt.number"] = info.attempt;
400
544
  }
401
545
  const links = this.buildInvocationLinks();
402
- // Earliest known start, so the span never begins after its own attempt/child
403
- // spans (created earlier at start).
404
- const startTime = this.earliestStart(started?.startTimestamp, info.startTimestamp);
405
- const operationSpanId = globalIdGenerator.deriveSpanIdFromOperationId(info.id, this.executionArn);
546
+ // Reuse the earliest start already recorded by lifecycle hooks.
547
+ // With no recorded start, represent a known completion as a zero-duration
548
+ // span instead of starting at a later local time than its exception event.
549
+ const startTime = this.earliestStart(started?.startTimestamp, info.startTimestamp) ??
550
+ info.endTimestamp;
551
+ const operationSpanId = pluginRegistration.deriveSpanIdFromOperationId(info.id, this.executionArn);
406
552
  const span = this.idGenerator.withIds({
407
553
  traceId: this.executionTraceId,
408
554
  spanId: operationSpanId,
409
555
  }, () => this.startSpan(spanName, { attributes, startTime, links }, parentContext));
556
+ // Preserve the backend completion on both the exception and the span end.
557
+ // When absent, use the tracer's existing default timestamp behavior.
558
+ const endTime = info.endTimestamp;
559
+ pluginRegistration.setOperationSpanStatus(span, info);
410
560
  if (info.error) {
411
- span.setStatus({
412
- code: api.SpanStatusCode.ERROR,
413
- message: info.error.message,
414
- });
415
- span.recordException(info.error);
416
- }
417
- else if (info.status === "SUCCEEDED") {
418
- // Stamp explicit OK ONLY on a SUCCEEDED terminal status. Terminal
419
- // FAILURE statuses (TIMED_OUT/STOPPED/FAILED/CANCELLED) can arrive with
420
- // NO error object (callback-timeout, chained-invoke fast paths); those
421
- // must NOT be labelled OK, so they are left UNSET.
422
- span.setStatus({ code: api.SpanStatusCode.OK });
423
- }
424
- span.end(info.endTimestamp);
561
+ span.recordException(info.error, endTime);
562
+ }
563
+ const recordedContext = info.type === "CONTEXT" && span.isRecording();
564
+ this.endOperationSpan(span, endTime);
565
+ if (recordedContext)
566
+ this.recordedContextIds.add(info.id);
567
+ this.externalCompletions.markExported(info);
425
568
  }
426
569
  /**
427
570
  * The parent context for an operation or attempt span: the parent operation's
428
- * deterministic placeholder context when known, otherwise the deferred
429
- * Workflow span's context so the span still hangs off the execution trace.
571
+ * deterministic identity, or the Workflow identity for a top-level operation.
572
+ * A completion notification can arrive without traversing its parent in this
573
+ * invocation (for example, a completed child context skipped during replay).
574
+ * An exported parent's context remains a valid parent after it ends. Reusing
575
+ * its identity does not recreate the parent span or compare clock domains.
430
576
  */
431
577
  resolveOperationParentContext(parentId) {
432
578
  if (parentId) {
433
- const parentContext = this.operationContexts.get(parentId);
434
- if (parentContext) {
435
- return api.trace.setSpanContext(api.context.active(), parentContext);
436
- }
579
+ const parentContext = this.operationContexts.get(parentId) ?? {
580
+ traceId: this.executionTraceId,
581
+ spanId: pluginRegistration.deriveSpanIdFromOperationId(parentId, this.executionArn),
582
+ traceFlags: this.executionTraceFlags,
583
+ isRemote: false,
584
+ };
585
+ return api.trace.setSpanContext(api.context.active(), parentContext);
437
586
  }
438
587
  const workflowContext = this.workflowSpan?.spanContext();
439
588
  if (workflowContext) {
@@ -441,7 +590,27 @@ class ExecutionOtelPlugin {
441
590
  }
442
591
  return api.context.active();
443
592
  }
444
- /** The earlier of two timestamps, ignoring undefined; undefined only when both are. */
593
+ hasAbandonedParent(parentId, operations = {}) {
594
+ const parent = parentId ? operations[parentId] : undefined;
595
+ if (parent?.type !== "CONTEXT" ||
596
+ !["STARTED", "READY", "PENDING"].includes(parent.status ?? ""))
597
+ return false;
598
+ // Completed contexts do not restart unfinished descendants. ReplayChildren
599
+ // can rebuild a successful result by traversing completed children, but
600
+ // ReplaySucceededContext still blocks unfinished child operations.
601
+ const visited = new Set([parent.id]);
602
+ let ancestorId = parent.parentId;
603
+ while (ancestorId && !visited.has(ancestorId)) {
604
+ visited.add(ancestorId);
605
+ const ancestor = operations[ancestorId];
606
+ if (ancestor?.type !== "CONTEXT")
607
+ return false;
608
+ if (["SUCCEEDED", "FAILED", "TIMED_OUT", "STOPPED", "CANCELLED"].includes(ancestor.status ?? ""))
609
+ return true;
610
+ ancestorId = ancestor.parentId;
611
+ }
612
+ return false;
613
+ }
445
614
  earliestStart(a, b) {
446
615
  if (!a) {
447
616
  return b;
@@ -499,6 +668,7 @@ class ExecutionOtelPlugin {
499
668
  const key = this.getAttemptKey(info.id, info.attempt);
500
669
  const attemptSpan = this.spanMap.get(key);
501
670
  if (attemptSpan) {
671
+ const endTime = info.endTimestamp;
502
672
  attemptSpan.setAttribute("durable.attempt.outcome", info.outcome);
503
673
  if (info.outcome === "FAILED") {
504
674
  attemptSpan.setStatus({
@@ -506,19 +676,26 @@ class ExecutionOtelPlugin {
506
676
  message: info.error?.message ?? "Attempt failed",
507
677
  });
508
678
  if (info.error) {
509
- attemptSpan.recordException(info.error);
679
+ attemptSpan.recordException(info.error, endTime);
510
680
  }
511
681
  }
512
682
  else {
513
683
  // Non-failed attempt: stamp explicit OK (matches Python OTel #604).
514
684
  attemptSpan.setStatus({ code: api.SpanStatusCode.OK });
515
685
  }
516
- attemptSpan.end(info.endTimestamp);
686
+ this.endOperationSpan(attemptSpan, endTime);
517
687
  this.spanMap.delete(key);
518
688
  }
519
689
  }
520
- async onOperationChange(_info) {
521
- // No-op — same as InvocationOtelPlugin
690
+ async onOperationChange(info) {
691
+ if (this.tracingEnabled) {
692
+ // End may be waiting for a provider flush. New completions must use the
693
+ // ancestry from this newer full snapshot, not End's captured snapshot.
694
+ if (this.invocationEndOperations && info.operations) {
695
+ this.invocationEndOperations = info.operations;
696
+ }
697
+ this.externalCompletions.observe(info.updatedOperations, info.operations);
698
+ }
522
699
  }
523
700
  enrichLogContext() {
524
701
  if (!this.tracingEnabled || !this.enrichLogger) {
@@ -1 +1 @@
1
- {"version":3,"file":"execution-plugin.js","sources":["../src/execution-plugin.ts"],"names":["DeterministicIdGenerator","xRayContextExtractor","createTracerProvider","tryInstallDurableSampler","tryInstallGlobalIdGenerator","SamplingDecision","canonicalTraceId","resolveExecutionTraceContext","rootSamplingDecision","deriveWorkflowSpanId","trace","SpanKind","context","SpanStatusCode","ROOT_CONTEXT","isSpanContextValid","TraceFlags","deriveSpanIdFromOperationId"],"mappings":"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"}
1
+ {"version":3,"file":"execution-plugin.js","sources":["../src/execution-plugin.ts"],"names":["PLUGIN_REGISTRATION","ExternalCompletions","resolveFlushTimeoutMillis","DeterministicIdGenerator","xRayContextExtractor","createTracerProvider","tryInstallDurableSampler","tryInstallGlobalIdGenerator","SamplingDecision","canonicalTraceId","resolveExecutionTraceContext","rootSamplingDecision","deriveWorkflowSpanId","trace","SpanKind","isDurableSamplerInstalled","createPropagationMetadata","context","SpanStatusCode","ROOT_CONTEXT","flushTracerProvider","isSpanContextValid","TraceFlags","deriveSpanIdFromOperationId","setOperationSpanStatus"],"mappings":"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"}
package/dist-cjs/index.js CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  var executionPlugin = require('./execution-plugin.js');
4
4
  var invocationPlugin = require('./invocation-plugin.js');
5
- var globalIdGenerator = require('./global-id-generator.js');
5
+ var pluginRegistration = require('./plugin-registration.js');
6
6
  require('@opentelemetry/api');
7
7
  require('@opentelemetry/sdk-trace-node');
8
8
  require('@opentelemetry/core');
@@ -13,13 +13,13 @@ require('node:crypto');
13
13
 
14
14
  exports.ExecutionOtelPlugin = executionPlugin.ExecutionOtelPlugin;
15
15
  exports.InvocationOtelPlugin = invocationPlugin.InvocationOtelPlugin;
16
- exports.DeterministicIdGenerator = globalIdGenerator.DeterministicIdGenerator;
17
- exports.deriveExecutionRootSpanId = globalIdGenerator.deriveExecutionRootSpanId;
18
- exports.deriveExecutionTraceId = globalIdGenerator.deriveExecutionTraceId;
19
- exports.deriveSpanIdFromOperationId = globalIdGenerator.deriveSpanIdFromOperationId;
20
- exports.deriveTraceIdFromArn = globalIdGenerator.deriveTraceIdFromArn;
21
- exports.deriveTraceIdFromXRayRoot = globalIdGenerator.deriveTraceIdFromXRayRoot;
22
- exports.deriveWorkflowSpanId = globalIdGenerator.deriveWorkflowSpanId;
23
- exports.w3cClientContextExtractor = globalIdGenerator.w3cClientContextExtractor;
24
- exports.xRayContextExtractor = globalIdGenerator.xRayContextExtractor;
16
+ exports.DeterministicIdGenerator = pluginRegistration.DeterministicIdGenerator;
17
+ exports.deriveExecutionRootSpanId = pluginRegistration.deriveExecutionRootSpanId;
18
+ exports.deriveExecutionTraceId = pluginRegistration.deriveExecutionTraceId;
19
+ exports.deriveSpanIdFromOperationId = pluginRegistration.deriveSpanIdFromOperationId;
20
+ exports.deriveTraceIdFromArn = pluginRegistration.deriveTraceIdFromArn;
21
+ exports.deriveTraceIdFromXRayRoot = pluginRegistration.deriveTraceIdFromXRayRoot;
22
+ exports.deriveWorkflowSpanId = pluginRegistration.deriveWorkflowSpanId;
23
+ exports.w3cClientContextExtractor = pluginRegistration.w3cClientContextExtractor;
24
+ exports.xRayContextExtractor = pluginRegistration.xRayContextExtractor;
25
25
  //# sourceMappingURL=index.js.map