PMM-13860: finalize HA Overview dashboard - #5691
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5691 +/- ##
==========================================
- Coverage 43.59% 37.03% -6.56%
==========================================
Files 415 215 -200
Lines 43134 7168 -35966
Branches 0 585 +585
==========================================
- Hits 18804 2655 -16149
+ Misses 22454 4317 -18137
+ Partials 1876 196 -1680
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Updates PMM’s High Availability navigation and documentation to reflect the finalized PMM HA Overview Grafana dashboard (PMM-13860), making it the default HA landing page and aligning dashboard naming across UI and docs.
Changes:
- Point the top-level PMM HA menu entry to the PMM HA Overview Grafana dashboard and add an explicit Overview child entry.
- Rename dashboard references from “PMM HA Health Overview” to “PMM HA Overview” in docs and plugin dashboard metadata.
- Refresh the dashboard reference documentation to describe the updated panels/semantics (alive vs expected, leaders/primaries, etc.).
Reviewed changes
Copilot reviewed 6 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| ui/apps/pmm/src/contexts/navigation/navigation.utils.tsx | Adds the Overview item into the HA menu’s dynamically-built children list. |
| ui/apps/pmm/src/contexts/navigation/navigation.constants.ts | Makes the HA landing URL the new Grafana dashboard and introduces NAV_HIGH_AVAILABILITY_OVERVIEW. |
| documentation/docs/reference/dashboards/dashboard-ha-health-overview.md | Renames and rewrites the HA dashboard reference content to match the finalized “PMM HA Overview” dashboard. |
| documentation/docs/install-pmm/install-HA-clustered.md | Updates installation docs to reference the new dashboard name and where to find it in the UI. |
| dashboards/pmm-app/src/plugin.json | Updates the dashboard display name to “PMM HA Overview” while keeping the existing JSON path. |
| dashboards/dashboards/AGENTS.md | Updates the dashboards folder description list to use the new dashboard name. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Screenshots — PMM HA OverviewOverview (with PMM HA sidebar navigation)PMM HA Overview - with resource usage Resources, storage & service availabilityResources, storage and availability Pod status tablesPMM, PostgreSQL and ClickHouse pods ClickHouse and VictoriaMetrics pods Kiosk view (clean panels) |
| #### Identify the leader node | ||
|
|
||
| PMM displays a visual badge on the side menu and displays the name of the active PMM instance that's currently handling all monitoring operations. For example, `pmm-ha-0`, `pmm-ha-1`, or `pmm-ha-2`. |
There was a problem hiding this comment.
@fabio-silva quick question on the docs vs UI here
From what I can tell:
- this PR removes the sidebar leader item
- the Helm
releasevariable looks hidden (hide: 2)
But the install docs still mention the sidebar leader name, and the dashboard reference still talks about using the Helm release filter.
Was that intentional (e.g. leader now only on the Overview dashboard), or should the docs/screenshot still match the old sidebar UX?
There was a problem hiding this comment.
It looks like Alive/Expected is encoded as alive * 1000 + expected, then mapped back with a large value-mappings list (repeated across the health panels). That seems to be what makes the dashboard JSON quite large (~2MB), and it may also cap the display around 40/40.
Was that the intended approach for showing 3/3-style counts in Grafana?
If not, a simpler option could be:
- Two series in the same Stat (
Alive,Expected) withtextMode: value_and_name - Or a small overview table: Component | Alive | Expected | Health
WalkthroughThe PMM HA dashboard is renamed to PMM HA Overview. Documentation now describes metric-based health details. High-availability navigation links directly to the Grafana dashboard and shows Overview and Nodes entries. ChangesPMM HA Overview update
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
ui/apps/pmm/src/contexts/navigation/navigation.constants.ts (1)
793-793: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winCentralize the PMM HA Overview URL.
The dashboard route is repeated at Line 793 and Line 800. The UI guideline requires URL constants from
src/lib/constants.ts. Define onePMM_HA_HEALTH_OVERVIEW_URLconstant and use it for both navigation items.Proposed fix
- import { PMM_NEW_NAV_GRAFANA_PATH, PMM_NEW_NAV_PATH } from 'lib/constants'; + import { + PMM_HA_HEALTH_OVERVIEW_URL, + PMM_NEW_NAV_GRAFANA_PATH, + PMM_NEW_NAV_PATH, + } from 'lib/constants'; ... - url: `${PMM_NEW_NAV_GRAFANA_PATH}/d/pmm-ha-health-overview/pmm-ha-overview`, + url: PMM_HA_HEALTH_OVERVIEW_URL,Use the same replacement in
NAV_HIGH_AVAILABILITY_OVERVIEW.Also applies to: 796-800
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@ui/apps/pmm/src/contexts/navigation/navigation.constants.ts` at line 793, Define a shared PMM_HA_HEALTH_OVERVIEW_URL constant in src/lib/constants.ts for the PMM HA overview dashboard route, then replace both duplicated URL expressions in NAV_HIGH_AVAILABILITY_OVERVIEW with that constant.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@documentation/docs/reference/dashboards/dashboard-ha-health-overview.md`:
- Line 247: Update the Common patterns entry near the health-overview guidance
to replace the remaining “Not Healthy” condition with the percentage-based
condition, using health percentage below 100% consistently with the surrounding
VictoriaMetrics instructions.
- Around line 15-19: Update the HA overview wording at
documentation/docs/reference/dashboards/dashboard-ha-health-overview.md:15-19 to
refer to the configured PMM replica count, mentioning three only as the default
example; revise
documentation/docs/reference/dashboards/dashboard-ha-health-overview.md:216-222
to replace “all three” and the fixed two-pod threshold with guidance derived
from the configured replica count. Keep the Active PMM Instance and PMM Pods
guidance unchanged.
---
Nitpick comments:
In `@ui/apps/pmm/src/contexts/navigation/navigation.constants.ts`:
- Line 793: Define a shared PMM_HA_HEALTH_OVERVIEW_URL constant in
src/lib/constants.ts for the PMM HA overview dashboard route, then replace both
duplicated URL expressions in NAV_HIGH_AVAILABILITY_OVERVIEW with that constant.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro Plus
Run ID: 211c31f3-1f34-4001-a3af-c74575d746a4
📒 Files selected for processing (7)
dashboards/dashboards/AGENTS.mddashboards/dashboards/PMM Health/PMM_HA_Health_Overview.jsondashboards/pmm-app/src/plugin.jsondocumentation/docs/install-pmm/install-HA-clustered.mddocumentation/docs/reference/dashboards/dashboard-ha-health-overview.mdui/apps/pmm/src/contexts/navigation/navigation.constants.tsui/apps/pmm/src/contexts/navigation/navigation.utils.tsx
| Shows PMM instances alive versus expected and the resulting health percentage. | ||
|
|
||
| In HA Cluster mode, you have three PMM server replicas providing full redundancy. If one replica fails, the remaining two continue serving requests with no user-visible impact, but you should investigate quickly to restore full redundancy. | ||
|
|
||
| Check the **PMM Pods** table in the Pod Status Details section below to see which specific pods are affected. | ||
| The **Active PMM Instance** panel identifies the current Raft leader. Check the **PMM Pods** table to see every instance's status and Active or Follower role. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Use the configured PMM replica count throughout the dashboard reference.
The installation guide supports scaling PMM replicas beyond three. Make both sections use count-independent wording:
documentation/docs/reference/dashboards/dashboard-ha-health-overview.md#L15-L19: describe the configured replica count, with three as the default example.documentation/docs/reference/dashboards/dashboard-ha-health-overview.md#L216-L222: replaceall threeand the fixed two-pod threshold with guidance based on the configured count.
📍 Affects 1 file
documentation/docs/reference/dashboards/dashboard-ha-health-overview.md#L15-L19(this comment)documentation/docs/reference/dashboards/dashboard-ha-health-overview.md#L216-L222
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@documentation/docs/reference/dashboards/dashboard-ha-health-overview.md`
around lines 15 - 19, Update the HA overview wording at
documentation/docs/reference/dashboards/dashboard-ha-health-overview.md:15-19 to
refer to the configured PMM replica count, mentioning three only as the default
example; revise
documentation/docs/reference/dashboards/dashboard-ha-health-overview.md:216-222
to replace “all three” and the fixed two-pod threshold with guidance derived
from the configured replica count. Keep the Active PMM Instance and PMM Pods
guidance unchanged.
| Failures in `vmselect` pods reduce query capacity but don't cause data loss. Down `vmagent` or `vmauth` pods affect metric scraping and authentication respectively. | ||
|
|
||
| Use this table to identify which specific components need attention when the [**VictoriaMetrics**](#victoriametrics) health indicator shows **Not Healthy**. | ||
| Use this table to identify which components need attention when the [**VictoriaMetrics**](#victoriametrics) health percentage is below 100%. |
There was a problem hiding this comment.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Replace the remaining Not Healthy condition.
This section now uses a health percentage below 100%, but the Common patterns entry at Line 308 still says Not Healthy. Use the percentage-based condition consistently.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@documentation/docs/reference/dashboards/dashboard-ha-health-overview.md` at
line 247, Update the Common patterns entry near the health-overview guidance to
replace the remaining “Not Healthy” condition with the percentage-based
condition, using health percentage below 100% consistently with the surrounding
VictoriaMetrics instructions.
Ticket number: PMM-13860
Summary by CodeRabbit