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

Đang mở
#893 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
48/100
Loại issue
Lỗi
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
python
Lĩnh vực
observability

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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
Ngôn ngữ chính
Python
Star
58
Fork
32
Merge trung bình
1 ngày 6 giờ
Pull request đã merge (30 ngày)
80

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của aws/aws-durable-execution-sdk-python

Tất cả issue của aws/aws-durable-execution-sdk-python

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.