Repository navigation
docs(observability): design trace context on every outbound Go hop (RIG-5321) - #2271
rigel-mintaka wants to merge 6 commits into
Conversation
|
Merging to
After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here |
|
Compass engineering docs preview: https://compass-ux-5321-trace-hops-d.compass-eng-docs.pages.dev Deployed from Changed pages: |
…IG-5321) Spec-impact: none Refs RIG-5321 Refs RIG-5186 Co-authored-by: Matt Wilkinson <matt@rigel.build>
…s per call (RIG-5321) Spec-impact: none Refs RIG-5321 Refs RIG-5186 Co-authored-by: Matt Wilkinson <matt@rigel.build>
… an open question (RIG-5321) Spec-impact: none Refs RIG-5321 Refs RIG-5186 Co-authored-by: Matt Wilkinson <matt@rigel.build>
…outer (RIG-5321) Spec-impact: none Refs RIG-5321 Refs RIG-5186 Co-authored-by: Matt Wilkinson <matt@rigel.build>
628a759 to
aace901
Compare
…IG-5321) OQ1 is (b): third-party egress gets a client span and no traceparent header. OQ10 is (b): add H8, a per-frame traceparent on PublishEvents, restored before deliverSession so runner-caused presence edges keep the command's trace. Spec-impact: none Ledger-impact: none Refs RIG-5398 Co-authored-by: Matt Wilkinson <matt@rigel.build>
…he gateway publisher (RIG-5321) The shared publisher runs on the socket-lifetime ctx, so H8 now passes the traceparent per frame through sendLocked and forwardState, and tests both the shared and one-shot streams. Spec-impact: none Ledger-impact: none Refs RIG-5321 Co-authored-by: Matt Wilkinson <matt@rigel.build>
Review result
Notes: 0018da4 records Matt's RIG-5398 rulings (OQ1=(b), OQ10=(b)) and adds H8. Review found one medium: H8 had no path for the Reload trace on the shared publisher stream. cf476cb passes the traceparent per frame through Gates: rumdl and design-ledger-gate pass; pre-push hooks pass. Promote to ready once CI is green; merging it freezes the amendment. |
|
Moved to RigelBuild/docs#18. Design records now live in the docs repo. The record is unchanged except that its two parent links are absolute URLs to compass main. |
…IG-5321) Moved unchanged from RigelBuild/compass#2271, which closes. The two parent records stay in the compass repo until the corpus moves, so they link there by absolute URL. Ledger-impact: none Spec-impact: none Refs RIG-5321 Co-authored-by: Matt Wilkinson <matt@rigel.build>
…IG-5321) (#18) Moved unchanged from RigelBuild/compass#2271, which closes. The two parent records stay in the compass repo until the corpus moves, so they link there by absolute URL. Ledger-impact: none Spec-impact: none Refs RIG-5321 Co-authored-by: Matt Wilkinson <matt@rigel.build>
Summary
This PR adds the design record
docs/designs/observability/compass-go-trace-hops/design.md. It answers Matt's ruling on RIG-5276: "need traceparents everywhere, make sure we're passing it through all services/RPCs".The trace-logs record (#2219) puts a span on every inbound request. This record covers the outbound hops that still drop the trace:
main.otelx.HTTPTransporton every server HTTP egress (forge, Linear, Trunk, linearagent, auth verifier, object store).url.fullquery values are redacted.No proto change. Tasks stack on the trace-logs stack (T9, #2270).
Do not merge yet. Open Question 1 (third-party egress: inject the header or record a span only) is load-bearing and waits on Matt's ruling in RIG-5398. Open Question 10 (a traceparent on runner frames, one internal proto field) is in the same issue.
Verification
rumdl checkis clean.CGO_ENABLED=0 GOOS=linux go build -trimpath -ldflags='-s -w'. The record's Placement section uses the feat(runner): span AgentGateway RPCs and strip stream spans (RIG-5313) #2259 split of provider setup intointernal/otel/otelsetup: the CLI is 13,709,472 bytes at the stack tip, andotelhttpinotelxadds 8,192 bytes.Risks
Compatibility
Documentation
The record is the spec.
Spec-impact: none
Ledger-impact: none — design text only; no decision-ledger row changes.
Refs RIG-5321, RIG-5186