feat(otel): add Workflow span to InvocationOtelPlugin - #593
Conversation
caacb55 to
3a9ba39
Compare
InvocationOtelPlugin now emits a deterministic, execution-scoped Workflow root span (span ID derived from the execution ARN, INTERNAL, started at execution_start_time), exported once on a terminal invocation (SUCCEEDED->OK, FAILED->ERROR; non-terminal dropped unexported). Created unconditionally since this plugin has no default/owned tracer-provider distinction. Operation and attempt spans link to the Workflow span while remaining parented to the Invocation span. The workflow span name is configurable via a new workflow_span_name constructor kwarg. Span display names are capitalized in both plugins: "Workflow" (default) and "Invocation".
3a9ba39 to
5c3adc9
Compare
Codex AI review
Reviewed commit |
Claude AI reviewSummaryThis PR adds an execution-scoped Workflow root span to Findings
Residual test risk
Reviewed commit |
|
I think we will be covering the Residual test risk in our conformance testing. |
Issue #, if available: aws/aws-durable-execution-conformance-tests#23 (comment)
Description of changes: InvocationOtelPlugin now emits a deterministic, execution-scoped Workflow root span (span ID derived from the execution ARN, INTERNAL, started at execution_start_time), exported once on a terminal invocation (SUCCEEDED->OK, FAILED->ERROR; non-terminal dropped unexported). Created unconditionally since this plugin has no default/owned tracer-provider distinction. Operation and attempt spans link to the Workflow span while remaining parented to the invocation span. The span name is configurable via a new workflow_span_name constructor kwarg (default "Workflow").
The "invocation" span is renamed to "Invocation" to match the capitalization for the "Workflow" and the configuration in other language's Otel plugins.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.