wu-sheng opened a new pull request, #53: URL: https://github.com/apache/skywalking-horizon-ui/pull/53
## Why Operators routinely need to put several services / instances / endpoints next to each other — "is this instance slower than its siblings?", "do these two services share the spike?". Today you can only look at one entity at a time per layer dashboard. ## What A **preview** feature (flag-gated, off by default — `VITE_FF_ENTITY_COMPARE=1` or `localStorage['horizon:ff:entity-compare']='1'` then reload; with nothing locked every page renders byte-for-byte as before): - **Lock several entities — across different services — and compare them inline** on the service / instance / endpoint dashboards. Instance and endpoint pins are cross-service. - **The entity you're viewing is always the `CURRENT` member** (accent hue, drives the header KPIs); pins add to it (up to six, stable hues). Comparison-bar chips are **display-only** — they never refocus the banner (no disruptive reload); `×` unpins. - **Each widget compares inline in its own tile** — line = N overlaid hued series; card = N rows; top-N / record = per-entity tabs + a merged "All"; table = an **Entity** column with an `(others)` fold. Labeled series lead with the label so it survives truncation; a widget shows whenever *any* compared entity has it (e.g. JVM widgets when a Java service is pinned next to a non-JVM one). - **Per-entity fan-out** (one dashboard request per entity, bounded concurrency), progressive loading, per-entity error isolation. Folded in alongside (see commit body): - Chart axes/tooltips use **SI suffixes** (`45.1k`, `1.34M`) instead of scientific notation; the multi-series tooltip is a fixed, aligned table. - **Fix Go runtime Mspan/Mcache widgets to report KB** (were raw bytes mislabeled as MB, ~1000× too large). - Type the infra-3d OrbitControls / camera refs (drop 3 `any`). - Pre-existing in-flight DSL rule-editor + banyandb template tweaks ride along. ## Validation - `pnpm -r run type-check` (vue-tsc/tsc strict) ✓ · `build` UI + BFF ✓ · `pnpm -r run lint` 0 ✓ · `pnpm -r run test:unit` 225 passing ✓ · `license:check` 0 invalid ✓. - **i18n**: new UI strings authored in `en.json` and translated across all 8 locales; missing-key sweep reports every catalog complete. - **Live OAP** (demo.skywalking.apache.org): cross-service per-entity fan-out validated at the wire (distinct, isolated per-(service,instance) data, cross-checked against direct MQE); the Mspan/Mcache KB fix validated against the metric (raw bytes → KB) and pushed to the demo template store. Interactive browser pass on the compare grid, cohort bar, tooltips, and `visibleWhen` union. -- 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]
