Verify parity against the baseline #143
Notifications
Due Date
No due date set.
Depends on
#137 Capture the pre-migration span baseline
Apps/ImageApi
#140 Migrate the LLM client + streaming spans to tracing
Apps/ImageApi
#141 Migrate the DAO-layer context threading to tracing
Apps/ImageApi
#142 Give background jobs a root span
Apps/ImageApi
Reference: Apps/ImageApi#143
Reference in new issue
Block a user
Part of #135
Work
Re-capture traces against the local Jaeger setup (same endpoint set as the baseline), then diff against the pre-migration baseline:
traceparentpropagation intact end to end.child.parent_span_idset).llm.model/llm.backend/ traceparent attributes still present where they were.Then run the full suite:
cargo build,cargo clippy --all-targets,cargo test(with the env vars),cargo fmt --check.Resolution
The before/after diff result and the full-suite status.
Resolved. Parity confirmed, after two gaps were fixed (details below).
The after-capture used
feature/tracing-migration@f510940, rebased onto master8284509. Everything else matched the baseline procedure: the same local Jaeger, the same request set, and a fresh.backupof the live DB, so the agentic job was again 380. The live service was untouched. No source patch was needed this time: master'sLOCAL_BIND_URL=disables the secondary listener.Asset: branch
baseline/span-parity-143(commite754e14, on top of the baseline branch) →docs/tracing-baseline/post-migration/: README (the parity table),traces.json,span-inventory.json,diff-report.txt, andanalyze.py/replay.shto reproduce. The branch is local and not pushed yet.Before/after diff (run 2, the capture of record)
find_relevant_events_hybridis a tool the model chooses; run 1 hit it, run 2 didn't.)list_photos' ~27 request attrs,ai.insight.generate_agentic,ai.rag.*,generate_video_thumbnail,db.*andllm.request.llm.requestspans are kind=client withllm.model/llm.provider/llm.operation/llm.tokens.*/http.status_code.llm.backendwas absent from every baseline span (it lives only on the async-turn path, which neither capture exercises), so nothing was lost.traceparentstill works.GET /photosis CHILD_OF the remote2222…, withlist_photosand its DB spans under it, all in trace1111….watcher.initial_probe.POST /insights/chat/stream→ai.chat.turn.stream→llm.request (chat_stream)+ DB. The baseline had it fragmented.ai.chat.turn.streamand job-root spans;db→image-server;code.*/thread.*/target/busy_ns/idle_nsmetadata;file writespan.Gaps found by run 1 and fixed in
f510940tokio::task::spawn(for panic isolation) that wasn't instrumented, so the agentic background was still its own trace. My earlier spawn audit only grepped fortokio::spawn; the new audit covers all spawn forms.count_for_libraryspans. It now runs underwatcher.initial_probe.Rebase: master's e2e changes (#145) landed during the work. The branch is rebased cleanly onto them, and
tests/otel_propagation.rsis fmt-fixed (983102c).Full suite on
f510940:cargo build✅,cargo clippy --all-targets0 warnings ✅,cargo fmt --check✅,cargo test✅ (690 lib + 775 integration + 5 OTel regression + 4 doc).Update:
baseline/span-parity-143is now pushed (https://git.crkc.xyz/Apps/ImageApi/src/branch/baseline/span-parity-143/docs/tracing-baseline/post-migration). The migration is up for review as PR #148.