Capture the pre-migration span baseline #137
Notifications
Due Date
No due date set.
Blocks
#143 Verify parity against the baseline
Apps/ImageApi
Reference: Apps/ImageApi#137
Reference in new issue
Block a user
Part of #135
Work
Capture the app's CURRENT span output before any migration change, so the "after" can be diffed.
da3901c), not thefeature/tracing-migrationbranch — this is the "before" snapshot.docker run -d --name jaeger -p 16686:16686 -p 4317:4317 jaegertracing/all-in-one:latest.cargo build --release.OTLP_OTLS_ENDPOINT=http://localhost:4317plus the usual media env.GET /photosor/memories), an insight generate (POST /insights/generate/agentic), a streaming chat turn (POST /insights/chat/stream), and a video/HLS path if cheap.llm.model,llm.backend, db attributes), parent/child nesting. Save trace IDs / screenshots as the baseline asset and link it here.Resolution
What was captured and where the baseline asset lives.
Resolution
Captured from master @
da3901c(release build — debug is a no-op,otel::init_tracingis#[cfg(not(debug_assertions))]). Jaeger all-in-one local; DB = private.backupof the liveauth.db(21,298image_exifrows, 4 NAS libraries); LLM = the live local stack (LLM_BACKEND=llamacpp,LLAMA_SWAP_URL,qwen3.8-27b-abliterated). The liveimage-rs.servicewas left running and untouched; all output dirs pointed at temp.Exercised:
GET /photos,GET /memories,POST /insights/generate/agentic(202 job_id=380 → async),POST /insights/chat/stream(SSE, 88 deltas +done), plus atraceparentpropagation probe.Baseline asset — branch
baseline/span-baseline-137, commit73523c6, underdocs/tracing-baseline/pre-migration/:README.md— shape, findings, re-capture proceduretraces-no-traceparent.json(33 traces),traces-with-traceparent.jsonspan-inventory.json— per-op span/trace counts, kind, scope, attribute keys (the direct before/after diff input)Deviation from pristine
da3901c: the hardcoded secondary.bind("localhost:8088")was moved to:18088because the live service owns 8088. Listen port cannot affect span production; everything else unmodified.Span shape ("before")
image-server. No per-request HTTP root span — handlers open operation-named roots:list_photos,list_memories,http.insights.generate_agentic.db.{query_type}.{operation}(query/insert/update), tracer scopedb, attrsdb.query_type+db.operation,span.kind=internal.llm.request,span.kind=client, attrsllm.model,llm.provider,llm.operation(chatfor tool calls,chat_streamfor SSE),llm.tokens.input/output,http.status_code.list_photoscarries ~20 request attrs (path, recursive, sort, pagination., file_count/returned_count/total_count, optimization., filters).Headline findings (what the migration must change / preserve)
db.query.get_prefs,db.query.count_for_library,db.update.*, …). Onlylist_photos,list_memories, and the agentic loop nest correctly.http.insights.generate_agentic, trace948d2756…) and its background work (ai.insight.generate_agentic, trace9b520713…) are separate traces. The streaming chat path is likewise fragmented — no handler span, DB calls andllm.requestas lone single-span traces.traceparentIS honored. Withtraceparent: 00-1111…-2222…-01,list_photoslands in trace11111111…and references the remote2222…span asCHILD_OF. This is the propagation behavior the migration must preserve.Trace IDs:
cb07eeec…(photos),44b3b67d…(memories),948d2756…+9b520713…(agentic HTTP + background),c682a851…(RAG),11111111…(propagation probe),b94440d1…(222-span thumbnail sweep).