Skip to content

PMM-13860: finalize HA Overview dashboard - #5691

Open
fabio-silva wants to merge 37 commits into
mainfrom
PMM-13860-finalize-ha-overview-dashboard
Open

PMM-13860: finalize HA Overview dashboard#5691
fabio-silva wants to merge 37 commits into
mainfrom
PMM-13860-finalize-ha-overview-dashboard

Conversation

@fabio-silva

@fabio-silva fabio-silva commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Ticket number: PMM-13860

Screenshot 2026-07-28 at 15 38 39 Screenshot 2026-07-28 at 15 38 51 Screenshot 2026-07-28 at 15 39 01 Screenshot 2026-07-28 at 15 39 11 Screenshot 2026-07-28 at 15 39 17 Screenshot 2026-07-28 at 15 39 28 Screenshot 2026-07-28 at 15 39 34

Summary by CodeRabbit

  • New Features
    • Renamed the dashboard to PMM HA Overview with expanded, metric-focused health information.
    • Updated High Availability navigation to provide direct access to the overview and node details.
  • Documentation
    • Updated installation and dashboard guides with the new name, navigation paths, and clearer explanations of health metrics, leadership, replication, component status, and manual refresh behavior.

@codecov

codecov Bot commented Jul 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 37.03%. Comparing base (31318c7) to head (733fe85).
⚠️ Report is 91 commits behind head on main.

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     
Flag Coverage Δ
admin 34.96% <ø> (+0.17%) ⬆️
agent ?
managed ?
unittests 41.29% <ø> (?)
vmproxy ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@fabio-silva fabio-silva added the auto-update-branch used by .github/workflows/auto-update-base.yaml label Jul 23, 2026
@fabio-silva
fabio-silva requested a review from Copilot July 23, 2026 16:58

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@cursor

cursor Bot commented Jul 24, 2026

Copy link
Copy Markdown

Screenshots — PMM HA Overview

Overview (with PMM HA sidebar navigation)

PMM HA Overview - top

PMM HA Overview - with resource usage

Resources, storage & service availability

Resources, storage and availability

Pod status tables

PMM, PostgreSQL and ClickHouse pods

ClickHouse and VictoriaMetrics pods

HAProxy pods and backends

Kiosk view (clean panels)

PMM HA Overview kiosk

@fabio-silva
fabio-silva marked this pull request as ready for review July 27, 2026 09:39
@fabio-silva
fabio-silva requested review from a team and Nailya as code owners July 27, 2026 09:39
@fabio-silva
fabio-silva requested review from matejkubinec and mattiasimonato and removed request for a team July 27, 2026 09:39

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 6 out of 7 changed files in this pull request and generated no new comments.

Comment on lines 786 to 788
#### 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`.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fabio-silva quick question on the docs vs UI here

From what I can tell:

  • this PR removes the sidebar leader item
  • the Helm release variable 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?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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:

  1. Two series in the same Stat (Alive, Expected) with textMode: value_and_name
  2. Or a small overview table: Component | Alive | Expected | Health

@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

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

Changes

PMM HA Overview update

Layer / File(s) Summary
Dashboard name and documentation
dashboards/..., documentation/docs/install-pmm/install-HA-clustered.md, documentation/docs/reference/dashboards/dashboard-ha-health-overview.md
Dashboard names and references now use PMM HA Overview. Documentation describes instance counts, leader roles, replication, backend states, health percentages, and manual refresh.
High-availability navigation targets
ui/apps/pmm/src/contexts/navigation/navigation.constants.ts
The parent navigation item and new Overview item point to the PMM HA Overview Grafana dashboard.
High-availability navigation children
ui/apps/pmm/src/contexts/navigation/navigation.utils.tsx
The navigation builder removes leader-specific text and assigns static Overview and Nodes children.

Estimated code review effort: 2 (Simple) | ~10 minutes

Suggested reviewers: nailya, matejkubinec

Poem

A rabbit checks the dashboard light,
“HA Overview” now reads just right.
Overview and Nodes align,
Health metrics clearly shine.
Paths hop neatly into line.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description includes the ticket and screenshots but omits the required Feature build field and a written change summary. Add the Feature build entry and briefly summarize the dashboard, documentation, and navigation changes.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly identifies the PMM HA Overview dashboard as the primary change.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch PMM-13860-finalize-ha-overview-dashboard

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
ui/apps/pmm/src/contexts/navigation/navigation.constants.ts (1)

793-793: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Centralize 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 one PMM_HA_HEALTH_OVERVIEW_URL constant 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

📥 Commits

Reviewing files that changed from the base of the PR and between 11abd8f and 73eb5a9.

📒 Files selected for processing (7)
  • dashboards/dashboards/AGENTS.md
  • dashboards/dashboards/PMM Health/PMM_HA_Health_Overview.json
  • dashboards/pmm-app/src/plugin.json
  • documentation/docs/install-pmm/install-HA-clustered.md
  • documentation/docs/reference/dashboards/dashboard-ha-health-overview.md
  • ui/apps/pmm/src/contexts/navigation/navigation.constants.ts
  • ui/apps/pmm/src/contexts/navigation/navigation.utils.tsx

Comment on lines +15 to +19
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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🎯 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: replace all three and 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%.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

auto-update-branch used by .github/workflows/auto-update-base.yaml documentation Documentation changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants