You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by "wu-sheng (via GitHub)" <gi...@apache.org> on 2026/10/22 07:24:39 UTC
[PR] feat(traces): one trace link form, ?traceId=&traceType= [skywalking-horizon-ui]
wu-sheng opened a new pull request, #205:
URL: https://github.com/apache/skywalking-horizon-ui/pull/205
## Why
A trace could be linked four different ways — `?traceId=` with a page-decided popout, `&source=native|zipkin` from the copy buttons, `&traceType=SKYWALKING_NATIVE|OTLP` markers (where `OTLP` meant the Zipkin popout), and `?traceqlId=&ds=` for TraceQL — plus `?evaluationTraceId=` on the Evaluation records tab. A link without a marker opened in whatever popout the page guessed, so a trace could be read from a store it is not in and shown as empty. This makes one form for every trace link, names the query that reads it, and stops guessing.
## What
**One link form: `?traceId=<id>&traceType=<source>`.** The source is one of the names a layer template's `traces.sources` already uses, and says which OAP query reads the trace: `native` (native trace query), `zipkin` (Zipkin query API), `traceql-native` / `traceql-zipkin` / `traceql-otlp` (TraceQL over that datasource). Span keys (`traceSegmentId`, `traceSpanIndex`, `traceSpanId`) and the window keys (`traceAt`, `traceEnd`, `traceLookback`) are unchanged.
| Where | Before | Now |
|---|---|---|
| Native trace card ⧉ url (Traces tab, Trace inspect) | `traceId=X&source=native` | `traceId=X&traceType=native` |
| Zipkin trace card ⧉ url | `…&source=zipkin&traceAt=T` | `…&traceType=zipkin&traceAt=T` |
| TraceQL card ⧉ url | `traceqlId=X&ds=D` | `traceId=X&traceType=traceql-D` |
| Evaluation records row trace link | `SKYWALKING_NATIVE` / `OTLP` (Zipkin) / `traceqlId=X&ds=otlp&traceqlSpanId=S` | `native` / `zipkin` / `traceId=X&traceType=traceql-otlp&traceSpanId=S` |
| Record list trace icon | `SKYWALKING_NATIVE` / `OTLP` / `traceqlId&ds` / no store: bare id | the widget's own `recordTrace.source` / no store: bare id |
| Span detail cross-trace ref | `traceId=X` | `traceId=X&traceType=native` |
| Log rows (Logs, Log inspect, AI chat logs) | `traceId=X&traceAt=T` | `traceId=X&traceType=<the page's source>&traceAt=T` |
| Evaluation records trace condition | `?evaluationTraceId=X`, written as you type | read once from a trace link when the page opens or moves to another group |
- **Each popout opens only for its own source.** A link with no `traceType`, or a value outside the five, opens a notice (`TraceLinkNotice`) that shows the id and the bad value and offers one button per source; the button sets `traceType` on the same link. Nothing falls back to a page default any more.
- **A dashboard record list with no `recordTrace`** — the bundled General, MySQL, PostgreSQL, Redis, Virtual Database and Virtual Cache lists among them — now opens that notice instead of the layer's popout. Bundled templates are untouched; the 1.1.0 changelog carries a **Breaking** entry with how to set the store.
- **An id a Zipkin source cannot hold** (a SkyWalking id with dashes, say) reads *No trace with that id.* at once in the TraceQL and Zipkin popouts and **Pick span…**, instead of *The trace source is not answering.* or a failed request. The BFF decides it with Zipkin's own id rule (`normalizeZipkinTraceId`, mirroring OAP's `Span.normalizeTraceId`) before asking OAP — the Zipkin trace route and the TraceQL `zipkin` datasource only — and answers `notFound` + `invalidId`; a 400 OAP itself returns stays a failure.
- Fix: a native span's cross-trace ref on a Zipkin page now stays native.
- **Layer dashboard editor fix.** Save dropped empty grids of scopes no page renders, even when the template began with them. General Service and Istio Managed SVCs ship such grids, so Reset to bundled → Save wrote OAP's copy back: **Check diff & push** stayed disabled while the sidebar marked the layer diverged. Save now keeps an empty grid the template began with and drops only one the edit created; a new test holds every bundled layer template to "Reset to bundled, Save, unchanged".
- Docs: `operate/traces.md`, `operate/genai-evaluation.md`, `components/dashboard-widgets.md`, `customization/layer-templates.md`; 1.1.0 changelog; new notice strings in all 8 locales.
**e2e**
- `genai`: URL checks use the new values; the trace-condition spec opens the tab from a trace link, closes the popout, and checks the condition was filled.
- `ui/trace-deeplink`: names the source, and adds bare id → notice → pick `native` → waterfall.
- `istio/zipkin-traces`: names `zipkin`. `ui/popouts`: a log-row link names `native`.
## Validation
- `pnpm lint` (repo-wide gate: i18n parity, docs links, source budget, design tokens, security, template + i18n validation), UI and BFF type-check, e2e spec type-check, license headers — green. UI unit tests 1627, BFF unit tests 2178.
- Live, against the public demo OAP (no proxy): the notice for a missing / unknown type; the chooser opening a native trace (61 spans) from a stored Virtual Database record list; *No trace with that id.* for a SkyWalking id asked of `zipkin` and `traceql-zipkin`; copy buttons on Trace inspect writing and reopening the new form; Istio Managed SVCs Reset to bundled → Save enabling Check diff & push (not pushed).
- Earlier in the work, the `genai` browser specs passed 9/9 against the local e2e stack. Not re-run on the final commit: the local Docker engine stopped answering, so the e2e cases are left to CI.
- Reviewed with Codex (gpt-6-astra, max) over several rounds, including whole-change impact evaluations; findings fixed, final review clean.
--
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: notifications-unsubscribe@skywalking.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] feat(traces): one trace link form, ?traceId=&traceType= [skywalking-horizon-ui]
Posted by "wu-sheng (via GitHub)" <gi...@apache.org>.
wu-sheng merged PR #205:
URL: https://github.com/apache/skywalking-horizon-ui/pull/205
--
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: notifications-unsubscribe@skywalking.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org