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

   ## Why
   
   Requested in [discussion 
#13934](https://github.com/apache/skywalking/discussions/13934): when a service 
/ API's latency or error rate looks abnormal on a trend chart, operators want 
to click the spike and land on the matching traces instead of hand-building a 
trace filter. Only latency and success/error metrics have a natural trace 
criterion, so the drill is scoped to those.
   
   ## What
   
   - **Metric → native-trace drill on the General service layer.** 
Drill-capable line widgets — Avg Response Time, Response Time Percentile, Error 
Rate, Apdex, Success Rate, MQ consume latency, across the Service / Instance / 
Endpoint scopes — carry a **traces** flag in their header and their datapoints 
are clickable. Clicking a point pins a small "View slow/error traces →" 
popover; the link opens the native Traces list in a **new browser tab**, 
pre-filtered to that service (and the selected instance / endpoint) and 
centered on the clicked bucket's window.
     - Latency widget → slowest-first (`queryOrder=BY_DURATION`) with 
`minTraceDuration` = the clicked value.
     - Error / success-rate widget → `traceState=ERROR`.
     - Throughput / resource widgets offer no drill.
   - **Config, not inference.** A new optional `traceDrill: { mode: 'latency' | 
'error' }` field on `DashboardWidget`, authored in the widget editor next to 
the MQE and enabled only when the layer's native Traces component is on 
(disabled with a notice otherwise). The bundled General service template stamps 
the ten eligible widgets; it also works on custom General-service dashboards.
   - **Fix:** the dashboard "Reading data…" gate hung on Back-from-Traces — a 
warm vue-query cache repopulates synchronously on remount with no change event, 
so the freshness watch now runs immediately at mount.
   - **Fix:** the drill popover no longer stacks under the chart hover tooltip.
   - **Remove:** the deprecated `layerScope` widget option. It emitted OAP's 
`scope: All` entity (deprecated in the query-protocol since 9.4.0) and no 
bundled dashboard used it; legacy stored dashboards degrade to normal service 
scope.
   
   No backend / query-protocol change — `minTraceDuration` + `traceState` 
already exist on the trace query.
   
   ## Validation
   
   - `type-check`, `build-ui`, `build-bff`, `license:check` (0 invalid), 
`lint`, `test:unit` (BFF 172, UI 133) all green.
   - New UI strings translated across all 8 locales (`en` source + zh-CN / es / 
pt / ja / ko / de / fr); completeness verified.
   - Rendered against the demo OAP in the dev stack: the traces flag renders on 
the eligible General-service widgets, a datapoint click opens the pre-filtered 
Traces tab, and the popover/tooltip no longer overlap.
   - Still worth a focused check on a live OAP before release: the 
instance/endpoint **name → OAP id** resolution on the Instance/Endpoint scopes 
(endpoint id is a `serviceId`+name composite), and the second-precision 
centered window.


-- 
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