[Bug]: Align Execution view log correlation with Workflow and operation spans

未關閉
#893 1 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

維護者通常 1 天內回覆

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
48/100
Issue 類型
缺陷
描述清晰度
基本清楚
活躍度
活躍
技術堆疊
python
領域
observability

研究方向

Start with get_current_span_context() and on_user_function_start() in execution_plugin.py, then read the two named log-correlation tests and the Execution-view documentation in the README. Run the relevant tests and extend coverage through the durable logger and real handler path. Done means the stated span mapping and replay, scope-restoration, and Invocation-control behaviors are covered, with tracing topology preserved.

由索引模型根據 Issue 內容生成。

描述

bug pkg:otel project
Expected Behavior

With the Execution view's built-in log enrichment enabled, durable log records should identify their logical workflow or operation:

Log location Expected spanId
Top-level handler, including before a durable wait and after resume Workflow span
Step body, including successive retry attempts Step operation span
Child-context body Child operation span
Step body inside a child context That step's operation span

Keep the existing Invocation view behavior. This is a log-correlation change: retain attempt spans, active tracing scopes, and span parentage. Workflow should continue to be exported once at terminal completion; log correlation can use its stable identity before it is exported.

Actual Behavior

The Execution plugin explicitly excludes the enclosing Workflow context when resolving a log's span and falls back to Invocation. Step bodies make the attempt span current, so their log records identify the attempt. Child-context bodies already use the child operation span.

  • get_current_span_context() implements the Workflow exclusion and Invocation fallback.
  • on_user_function_start() activates an attempt for a step body and an operation context for a child body.
  • The inspected checkout also has dedicated tests named test_top_level_log_names_invocation_span_not_the_attached_workflow_span and test_step_attempt_log_names_the_attempt_span; their expectations and the README need to be updated with the behavior.
Steps to Reproduce

This report is based on source and existing-test inspection. The following full execution validation recipe has not been run for this report.

  1. Enable the Execution plugin and its built-in log enrichment, and capture the logger's correlation fields plus exported spans.
  2. Emit a durable log at the top level before any operations.
  3. Run a named step that logs from its body, and a named child context that logs from its body and a nested step.
  4. Perform a durable wait that suspends the invocation, then emit another top-level log after resume.
  5. Compare each record's spanId with the corresponding Workflow, Step operation, Child operation, and Attempt spans.
  6. Add a retrying step to check that records from different attempts use the same Step operation spanId.
SDK Version

aws-durable-execution-sdk-python-otel, public main inspected at 4625d01bbfa97da67050014851af7eb41c61a842.

Python Version

Not applicable to source inspection; no Python runtime reproduction was run for this report.

Is this a regression?

Unknown; no last working version has been established.

Acceptance Criteria
  • Top-level logs before suspension and after resume carry the same Workflow spanId, including when a compatible Lambda span was already active.
  • Step-body logs carry the corresponding Step operation spanId across retries; a nested step uses its own operation span.
  • Child-body logs retain the Child operation spanId; leaving a nested scope restores the enclosing logical scope.
  • Replay suppresses duplicate durable logs from completed work.
  • Attempt spans and tracing topology remain intact, and Workflow is exported once at terminal completion.
  • Add regression coverage through the SDK's durable logger and real handler execution path, including concurrent-invocation isolation, enrichment disabled, and the Invocation view as a control.
  • Update the Execution-view log-correlation documentation and any tests that assert the previous mapping.
Related Issues
主要語言
Python
星號
58
分支
32
平均合併
1 天 6 小時
30 天內合併 PR
80

環境準備

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

aws/aws-durable-execution-sdk-python 的其他 Issue

查看 aws/aws-durable-execution-sdk-python 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。