@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.
- package/README.md +338 -12
- package/dist/execution-plugin.mjs +227 -50
- package/dist/execution-plugin.mjs.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/invocation-plugin.mjs +209 -105
- package/dist/invocation-plugin.mjs.map +1 -1
- package/dist/otel-execution.mjs +1 -1
- package/dist/otel-execution.mjs.map +1 -1
- package/dist/otel-invocation.mjs +2 -2
- package/dist/otel-invocation.mjs.map +1 -1
- package/dist/{global-id-generator.mjs → plugin-registration.mjs} +147 -4
- package/dist/plugin-registration.mjs.map +1 -0
- package/dist-cjs/execution-plugin.js +240 -63
- package/dist-cjs/execution-plugin.js.map +1 -1
- package/dist-cjs/index.js +10 -10
- package/dist-cjs/invocation-plugin.js +221 -117
- package/dist-cjs/invocation-plugin.js.map +1 -1
- package/dist-cjs/otel-execution.js +1 -1
- package/dist-cjs/otel-execution.js.map +1 -1
- package/dist-cjs/otel-invocation.js +2 -2
- package/dist-cjs/otel-invocation.js.map +1 -1
- package/dist-cjs/{global-id-generator.js → plugin-registration.js} +152 -2
- package/dist-cjs/plugin-registration.js.map +1 -0
- package/dist-types/execution-plugin.d.ts +25 -4
- package/dist-types/execution-plugin.d.ts.map +1 -1
- package/dist-types/execution-trace-context.d.ts +4 -2
- package/dist-types/execution-trace-context.d.ts.map +1 -1
- package/dist-types/external-completions.d.ts +11 -0
- package/dist-types/external-completions.d.ts.map +1 -0
- package/dist-types/global-sampler.d.ts +2 -0
- package/dist-types/global-sampler.d.ts.map +1 -1
- package/dist-types/invocation-clock.d.ts +9 -0
- package/dist-types/invocation-clock.d.ts.map +1 -0
- package/dist-types/invocation-plugin.d.ts +18 -2
- package/dist-types/invocation-plugin.d.ts.map +1 -1
- package/dist-types/operation-span-status.d.ts +5 -0
- package/dist-types/operation-span-status.d.ts.map +1 -0
- package/dist-types/otel-plugin-config.d.ts +8 -0
- package/dist-types/otel-plugin-config.d.ts.map +1 -1
- package/dist-types/otel-plugin-provider.d.ts +7 -0
- package/dist-types/otel-plugin-provider.d.ts.map +1 -1
- package/dist-types/plugin-registration.d.ts +2 -0
- package/dist-types/plugin-registration.d.ts.map +1 -0
- package/dist-types/propagation-metadata.d.ts +12 -0
- package/dist-types/propagation-metadata.d.ts.map +1 -0
- package/package.json +13 -9
- package/dist/global-id-generator.mjs.map +0 -1
- 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 {
|
|
3
|
+
import { otperformance, millisToHrTime } from '@opentelemetry/core';
|
|
3
4
|
import { SamplingDecision } from '@opentelemetry/sdk-trace-node';
|
|
4
|
-
|
|
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
|
-
|
|
109
|
-
this.
|
|
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:
|
|
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
|
-
|
|
148
|
-
//
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
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
|
-
|
|
216
|
-
//
|
|
217
|
-
//
|
|
218
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
|
276
|
-
// execution trace AND carries the same sampled bit as the execution
|
|
277
|
-
// ancestor.
|
|
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 (
|
|
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
|
-
//
|
|
328
|
-
//
|
|
329
|
-
//
|
|
330
|
-
//
|
|
331
|
-
//
|
|
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:
|
|
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.
|
|
389
|
-
|
|
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
|
-
//
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
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
|
-
|
|
423
|
-
|
|
424
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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:
|
|
629
|
+
startTime: this.liveTimestamp(),
|
|
509
630
|
}, parentContext);
|
|
510
|
-
|
|
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.
|
|
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.
|
|
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:
|
|
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.
|
|
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.
|
|
704
|
+
this.endOperationSpan(attemptSpan, this.liveTimestamp());
|
|
595
705
|
this.spanMap.delete(key);
|
|
596
706
|
}
|
|
597
707
|
}
|
|
598
|
-
async onOperationChange(
|
|
599
|
-
|
|
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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"}
|
package/dist/otel-execution.mjs
CHANGED
|
@@ -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;;;"}
|
package/dist/otel-invocation.mjs
CHANGED
|
@@ -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;;;"}
|