wu-sheng opened a new pull request, #97:
URL: https://github.com/apache/skywalking-horizon-ui/pull/97

   ## Why
   On a Zipkin-tracing layer (mesh / Kubernetes), clicking a trace in the 
results list rendered its span waterfall by re-fetching the trace by id 
(`/api/zipkin/trace/:id`) — even though Zipkin's `/api/v2/traces` list response 
already contains every span for every trace. The BFF was summarising the list 
rows and **discarding** those spans, forcing a redundant second round-trip to 
OAP for data it already had. (Native BanyanDB traces already ship spans inline 
on the list row and render with no re-fetch; this brings Zipkin in line.)
   
   ## What
   - `ZipkinTraceListRow` gains an optional `spans?: ZipkinSpan[]` (mirrors 
`NativeTraceListRow.spans?`).
   - `/api/zipkin/traces` keeps the spans it already fetched (`{ 
...summariseTrace(spans), spans }`) instead of dropping them.
   - `LayerZipkinTracesView` renders the inline waterfall from the selected 
row's spans, falling back to the by-id fetch only when a selected id isn't in 
the current list.
   - The `/api/zipkin/trace/:id` route and the popout are **unchanged** — 
opening a trace by a pasted id / a shared deep link / a log→trace jump has no 
list row and legitimately needs the by-id query.
   - The AI-assistant Zipkin list path (`client/zipkin.ts`) is untouched; 
`spans` is optional so it simply omits it.
   
   ## Validation
   - Static gate green: `type-check`, `build` (UI + BFF), `lint` + 
source-budget, license headers, 356 unit tests.
   - Live public demo OAP (istio/mesh Zipkin data): the list response now 
carries `spans` on every row (`spans.length === spanCount`); for a sampled 
trace the embedded spans are **byte-identical** to the `/api/zipkin/trace/:id` 
detail response; the detail endpoint still returns correctly for the popout. 
The inline waterfall renders from the row and the by-id query is gated off when 
spans are present. A literal browser network-tab click-through wasn't run — 
validated the data contract + gated code path instead.
   - No new UI strings (no i18n changes).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to