Skip to content

feat(service): Add span instrumentation to backends - #542

Merged
jan-auer merged 2 commits into
mainfrom
feat/instrument-backends
Jul 7, 2026
Merged

feat(service): Add span instrumentation to backends#542
jan-auer merged 2 commits into
mainfrom
feat/instrument-backends

Conversation

@jan-auer

@jan-auer jan-auer commented Jul 6, 2026

Copy link
Copy Markdown
Member

Backend operations now appear as real child spans in Sentry, turning the existing per-request and per-task transactions into full trace waterfalls. They were empty before because the sentry-tracing layer only converts INFO+ spans by default; the logging layer now forwards DEBUG+ spans (TRACE still ignored) and the backend spans moved to debug.

GCS/S3 HTTP calls and BigTable RPCs each get a per-attempt span covering the real request duration (method/URL/status, or action/gRPC status), and the tiered, changelog, and per-backend operations are annotated so the waterfall reads top-down. Spans carry small primitive fields (object id, range, part numbers, URLs); payloads, streams, and metadata are excluded.

Observability-only — no behavior changes and console logging is untouched.

Closes FS-412

@linear-code

linear-code Bot commented Jul 6, 2026

Copy link
Copy Markdown

FS-412

@codecov

This comment has been minimized.

@jan-auer
jan-auer marked this pull request as ready for review July 6, 2026 19:16
@jan-auer
jan-auer requested a review from a team as a code owner July 6, 2026 19:16

@lcian lcian left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks really good!

The span op/name in Sentry is a bit verbose (as it always was).
This can be sometimes useful as it gives you the module where the call came from (useful to tell e.g. which backend), so I might just have to get used to it.
Image

@jan-auer

jan-auer commented Jul 7, 2026

Copy link
Copy Markdown
Member Author

For a moment I was considering to strip the crate names and just leave the last module, but then I came back to the full module. Maybe this is something the UI could collapse in the future.

We can for sure improve the span name, however. It currently just duplicates the function name, but there's more information we could put into the span like instrumentation in other environments does.

@jan-auer
jan-auer merged commit 0773368 into main Jul 7, 2026
27 checks passed
@jan-auer
jan-auer deleted the feat/instrument-backends branch July 7, 2026 09:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants