Commit be2c502
authored
Add detached-trace invocation span (0061) (#168)
* Add detached-trace invocation span (0061)
The OTel observer now synthesizes an openarmature.invocation span at
the root of each detached trace (a detached subgraph and each detached
fan-out instance), carrying the parent's shared invocation_id and the
detached unit's own entry_node, with the detached subgraph/instance
span nested beneath it. A raising detached subgraph surfaces ERROR plus
the error category and an exception event on both the parent dispatch
span and the detached invocation span.
Observer-side only: no graph-engine change, and the Langfuse observer
is unchanged. Pins the spec submodule to v0.61.0 and brings conformance
fixtures 008 (rewritten) and 058 (newly covered) live.
* Clear stale detached-error marker on span open
errored_detached_keys gates the synthetic close paths' default
set_status(OK) so a detached-trace ERROR survives export. The set is
invocation-scoped but never cleared mid-invocation, so a detached
prefix that errors and then re-runs successfully within the same
invocation (cyclic or fire-and-forget re-entry) could leave the later
success span UNSET instead of OK.
Discard the key when a fresh detached invocation span opens at it (the
only point keys are introduced), so each generation's close reflects
only its own status. Reading the live span status was rejected as it
depends on _Span.status, which is not part of the public OTel Span
interface.1 parent 9342e3a commit be2c502
10 files changed
Lines changed: 437 additions & 46 deletions
File tree
- docs/concepts
- src/openarmature
- observability/otel
- tests
- conformance
- unit
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
687 | 687 | | |
688 | 688 | | |
689 | 689 | | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
644 | 644 | | |
645 | 645 | | |
646 | 646 | | |
647 | | - | |
648 | | - | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
649 | 652 | | |
650 | 653 | | |
651 | 654 | | |
| |||
Submodule openarmature-spec updated 10 files
- CHANGELOG.md+10
- README.md+3-2
- docs/open-questions.md+18
- docs/proposals.md+2-2
- proposals/0061-detached-trace-invocation-span.md+2-2
- spec/observability/conformance/008-otel-detached-trace-mode.md+27-6
- spec/observability/conformance/008-otel-detached-trace-mode.yaml+104-6
- spec/observability/conformance/033-langfuse-detached-trace-mode.yaml+2-1
- spec/observability/conformance/058-implementation-attribution-otel.yaml+10-1
- spec/observability/spec.md+100-11
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
66 | | - | |
| 66 | + | |
67 | 67 | | |
68 | 68 | | |
69 | 69 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
13 | | - | |
| 13 | + | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
25 | 25 | | |
26 | 26 | | |
27 | 27 | | |
28 | | - | |
| 28 | + | |
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
| |||
0 commit comments