wu-sheng opened a new pull request, #47:
URL: https://github.com/apache/skywalking-horizon-ui/pull/47
## What
A new per-layer **Deployment** tab: the deployment topology of one service's
instances — the instance-to-instance call graph **within** a single service,
via OAP's `getServiceInstanceTopology(svc, svc)` (same id on both sides
collapses the relation filter to intra-service instance relations). Where the
existing Instance map drills into the instances *between two* services, this
shows how one service's own instances are deployed and talk to each other (e.g.
a clustered store's nodes calling each other).
### The tab
- Instances render as **health-ring hexagons** with a center metric;
pan/zoom, animated edge flow, self-loops and bidirectional pairs drawn
distinctly; per-call client/server metric sidebar; node popover with the
instance's **attributes** and an **Open instance dashboard** deep link.
- Three independent, operator-editable rules shape the graph:
- **`clusterBy`** — labelled dashed boxes by one attribute, several
attributes (composite key; absent attributes drop out), or a name regex.
- **`siblingBy`** — bundle containers into **pods**: the main container as
a full hex, siblings attached as half-size hexes; edges resolve to the exact
container.
- **`roleBy` + `roles`** — per-container-type metrics and main-hex
selection.
- Cluster boxes pack **left→right along the inter-cluster call flow**; pods
tier by call depth inside each box, wrap into staggered columns (max 4 per
column), and stay draggable.
- **Opt-in per layer**: `components.deployment` + a top-level `deployment`
template block. No bundled layer ships it enabled; the route answers 404
without the config.
### Admin & preview
- The Layer-dashboards admin gains a **Deployment scope**: node /
server-edge / client-edge metric editors (instance scope) plus a four-mode
clusterBy picker. Draft **Preview** renders the real page before publishing.
- The whole admin page is now **layer-list-oriented**: every layer the OAP
reports is listed and editable — un-templated layers open on a blank default
and publish on first save; a **Not configured** filter and banner counts make
the gaps visible.
### 3D infra map
Layers carrying the cap gain a side-panel toggle that swaps the layer's zone
from service cubes to **instance cubes** wired by their intra-service
relations; selecting an instance cube opens the instance dashboard. The 3D path
fetches a new **structure-only** mode (`structure=1`) that skips all
metric/attribute fan-out.
### Also in this branch
- **Every OAP-reported layer appears in the sidebar.** The hard-coded
hidden-layer list is gone, replaced by a config-driven `layers.excluded` block
in `horizon.yaml` (defaults: `FAAS`, `VIRTUAL_GATEWAY`; clear it to surface
everything). Documented in the config reference.
- The legacy per-layer `overview` template block (parsed but no longer
rendered anywhere) is **removed** from every bundled template, its i18n
catalogs, and the docs.
- **Clearer cluster/namespace boundaries** on all topology views (service
map, instance map, Deployment): theme-proof dashed `--sw-fg-3` stroke,
transparent fill; the Deployment layout packs boxes evenly with no dead
corridors.
- Deployment UI strings localized in **all eight languages**.
## Wire & scope notes
- Pure consumer of the existing query protocol:
`getServiceInstanceTopology`, `listInstances` (attributes), `execExpression`
under `ServiceInstance` / instance-relation scopes. No protocol changes.
- RBAC: the new route maps to `topology:read`.
- Validated against the Apache demo OAP end-to-end (route gating, preview
flow, empty states, admin scope, 3D toggle, all themes); full type-check, 160
BFF + 85 UI tests, license headers green.
## Docs
`docs/customization/layer-templates.md` (Deployment block reference,
admin-editor update, overview removal) and `docs/setup/horizon-yaml.md`
(`layers.excluded`). CHANGELOG updated under 0.7.0.
--
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]