Menu and Layers
Horizon’s sidebar follows the data OAP reports. You do not hand-build a menu tree in Horizon; you make OAP expose layers, then use templates and user preferences to control how those layers appear.
What Controls the Sidebar
| Source | What it controls |
|---|---|
| OAP layers | Whether a layer exists and whether it has services. |
| Layer templates | Display name, color, group, visible tabs, service-list columns, trace/log behavior, and dashboard widgets. |
| User preference | Personal ordering of visible layers on the landing page and sidebar. |
| RBAC | Whether operate, dashboard setup, and admin pages are visible for the signed-in user. |
The result is intentionally reactive: when OAP starts reporting data for a layer, Horizon shows it; when a user lacks a permission, Horizon hides the page link.
Main Sidebar Areas
| Area | What appears there |
|---|---|
| Overviews | Public overview dashboards, when the user has overview:read. |
| Alarms | The active alarm board, when the user has alarms:read. |
| Layers | Active public OAP layers with at least one service. |
| Platform monitoring | Cluster Status, Data Retention, and OAP Configuration. |
| Operate | Alerting rules, DSL Management, Live Debugger, Capture History, and Metrics Inspect. |
| Dashboard setup | Overview templates, Layer dashboards, Alert page setup, and Global defaults. |
| Admin | Users, Auth status, and Roles & permissions. |
Only rows the current user can open are shown.
Layer Visibility
A layer appears under Layers when all of these are true:
- OAP reports the layer.
- OAP reports at least one service in that layer.
- The layer template uses public visibility.
If a layer is meant for SkyWalking self-observability rather than application observability, set its template visibility to operate; Horizon places it under the Operate area instead of the main Layers list.
First Tab for a Layer
When a user clicks a layer, Horizon opens the first enabled tab in this order:
service -> instance -> endpoint -> topology -> trace -> logs -> profiling
Disable unsupported tabs in the layer template. For example, a layer without traces should turn the trace tab off so users do not land on an empty page.
Common Changes
| Goal | Where to change it |
|---|---|
| Rename a layer | Layer template alias. |
| Change a layer color | Layer template color. |
| Group related layers | Same layer template group value on each layer. |
| Move a layer to Operate | Layer template visibility: operate. |
| Hide a tab | Layer template components. |
| Change layer order | User layer-order preference. |
| Add a new layer | Add it in OAP first, then add a Horizon layer template. |
Use Dashboard setup → Layer dashboards for normal template edits. Save locally to preview, then sync to OAP when you want the change published for everyone.
When OAP Is Unreachable
If OAP is unreachable, Horizon keeps the last known sidebar shape in memory and shows an OAP-unreachable banner. Service counts may show as unknown until OAP is reachable again.
This avoids the worst failure mode during a short OAP outage: an empty sidebar that makes operators think configuration disappeared.
Troubleshooting
| Symptom | Check |
|---|---|
| Layer missing | Confirm OAP reports the layer and at least one service. |
| Layer appears in Operate, not Layers | Check template visibility. |
| Expected tab missing | Check the layer template components. |
| User cannot see an admin page | Check their role grants in Roles & permissions. |