Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
b1bfc3a
PMM-14109 Fix the read_more URLs
ademidoff Jun 27, 2026
61edeed
PMM-14109 Improve check target selection by skipping only internal Po…
ademidoff Jun 27, 2026
4723833
Merge branch 'main' into PMM-14109-improve-advisor-output
ademidoff Jun 27, 2026
2734a0c
PMM-14109 Enhance advisor output and database schema for check results
ademidoff Jun 27, 2026
1c28fa6
PMM-14109 Add advisor history retention settings and cleanup function…
ademidoff Jun 27, 2026
d1d7b8b
PMM-12345 Refactor check result handling and add history retrieval
ademidoff Jun 27, 2026
88c525e
PMM-14109 Update comments ListCheckResultsHistory response
ademidoff Jun 27, 2026
c372ce6
PMM-12345 Add functionality to mark Advisor check results as read
ademidoff Jun 28, 2026
6478c95
PMM-14109 Implement advisor notifications management with Grafana ale…
ademidoff Jun 28, 2026
cc61ccd
PMM-14109 Remove unused Swagger files and clean up code
ademidoff Jun 28, 2026
12dac40
PMM-12345 Format the code
ademidoff Jun 28, 2026
27c1faa
PMM-14109 Remove nolint directives
ademidoff Jun 28, 2026
7aae5f3
PMM-14109 Refactor error handling in CheckResults
ademidoff Jun 28, 2026
85aff2e
PMM-14109 Enhance advisor settings test with history retention and se…
ademidoff Jun 28, 2026
2fcebfd
PMM-14109 Add tests for CheckResults, Settings, CheckResultRecord, an…
ademidoff Jun 28, 2026
67310ac
PMM-14109 Enhance Advisor notifications handling in server tests
ademidoff Jun 28, 2026
09517ee
Merge branch 'main' into PMM-14109-improve-advisor-output
ademidoff Jul 4, 2026
85d057e
PMM-14109 Add advisors UI
ademidoff Jul 5, 2026
4dda30a
PMM-14109 Improve advisor rendering
ademidoff Jul 5, 2026
282703b
PMM-14109 Add advisor insights page and related functionality
ademidoff Jul 5, 2026
c36e2c6
PMM-12345 Enhance Advisor Check Results with Severity and Triggered B…
ademidoff Jul 5, 2026
ed4e6ff
PMM-14109 Refactor cleanup logic into separate methods
ademidoff Jul 5, 2026
15b92c3
PMM-14109 Format the code
ademidoff Jul 5, 2026
766b7b0
PMM-14109 Remove unused CategorizedAdvisor interface and related imports
ademidoff Jul 5, 2026
b45f27c
PMM-14109 Add Advisor history retention to Settings
ademidoff Jul 5, 2026
bdebeda
PMM-14190 Enhance Advisor Insights with more filtering options
ademidoff Jul 5, 2026
0b0531c
PMM-14109 Expand/Collapse the check result details
ademidoff Jul 5, 2026
9b60564
PMM-14109 Add new fields to CheckResultHistoryItem and update related…
ademidoff Jul 5, 2026
0715e72
PMM-14109 Adjust sidebar positioning in InsightDetailsPane
ademidoff Jul 6, 2026
6cdfae3
PMM-14109 Improve advisor output by adding outcome and summary fields…
ademidoff Jul 7, 2026
0e0bd9e
Merge branch 'main' into PMM-14109-improve-advisor-output
ademidoff Jul 7, 2026
8c9d060
Merge remote-tracking branch 'origin/main' into PMM-14109-improve-adv…
ademidoff Jul 8, 2026
f258600
PMM-14109 Fix grafana datasource lookup after grafana-openapi-client-…
ademidoff Jul 8, 2026
ea8960d
PMM-14109 Apply prettier formatting to advisor UI files
ademidoff Jul 8, 2026
e58428d
PMM-14109 Merge branch 'main' into PMM-14109-improve-advisor-output
ademidoff Jul 13, 2026
705b713
[ADVISOR-456] Refactor advisor checks to use batch ID instead of run ID
ademidoff Jul 13, 2026
b301c96
Merge branch 'main' into PMM-14109-improve-advisor-output
ademidoff Jul 13, 2026
4e75d22
PMM-14109 Improve advisor output and filtering functionality
ademidoff Jul 14, 2026
b5b4383
PMM-14109 Enhance advisor output and functionality, including filter …
ademidoff Jul 14, 2026
556f646
PMM-14109 Enhance filtering functionality with URL-based state manage…
ademidoff Jul 14, 2026
c828273
PMM-14109 Add Get Advisor Check Script API and UI Integration
ademidoff Jul 14, 2026
77e871b
Merge branch 'main' into PMM-14109-improve-advisor-output
ademidoff Jul 15, 2026
c2af18c
Merge branch 'main' into PMM-14109-improve-advisor-output
ademidoff Jul 15, 2026
6196a66
PMM-14109 Revert advisor check link fixes (moved to PMM-15179)
ademidoff Jul 16, 2026
92dc13d
Merge branch 'main' into PMM-14109-improve-advisor-ux
ademidoff Jul 16, 2026
912feb5
Merge branch 'main' into PMM-14109-improve-advisor-ux
ademidoff Jul 16, 2026
165bf9b
Merge branch 'main' into PMM-14109-improve-advisor-ux
ademidoff Jul 16, 2026
4386087
PMM-14109 Send advisor check summaries by email via Grafana SMTP
ademidoff Jul 18, 2026
807d89e
PMM-14109 Restore managed/Makefile
ademidoff Jul 18, 2026
105552b
PMM-14109 Update binary descriptor file
ademidoff Jul 18, 2026
f227904
Merge branch 'main' into PMM-14109-improve-advisor-ux
ademidoff Jul 18, 2026
928fbd5
PMM-14109 Add Advisors settings page and functionality
ademidoff Jul 19, 2026
6e3187e
PMM-14109 Remove deprecated category field from advisor checks
ademidoff Jul 19, 2026
a5862b5
PMM-12345 Stop shipping advisors on-disk, update related tests and UI…
ademidoff Jul 19, 2026
c209631
PMM-14109 Rearrange category and subcategory fields in CheckResultHis…
ademidoff Jul 19, 2026
82b6045
PMM-14109 Add CRUD for user-authored advisor checks
ademidoff Jul 20, 2026
aa4e1d7
PMM-14109 Reuse common.Severity for persisted check results
ademidoff Jul 20, 2026
81dab78
PMM-14109 Enhance advisor insights UX with read state toggle and tooltip
ademidoff Jul 20, 2026
a142dce
PMM-14109 Update summaries and descriptions for clarity and consistency
ademidoff Jul 21, 2026
e9eab3f
Merge branch 'main' into PMM-14109-improve-advisor-ux
ademidoff Jul 21, 2026
db1f213
PMM-14109 Fix check result test fixtures missing severity
ademidoff Jul 21, 2026
e081a97
PMM-14109 Surface advisor check failure cause instead of exit status 1
ademidoff Jul 21, 2026
9406600
PMM-14109 Fix MySQL advisor checks erroring on 5.7 and edge cases
ademidoff Jul 21, 2026
2298228
PMM-14109 Fix MongoDB advisor checks erroring on standalone and v8.2
ademidoff Jul 21, 2026
682f9c9
PMM-14109 Update summaries for MongoDB and MySQL checks for clarity
ademidoff Jul 22, 2026
e534f89
PMM-14109 Remove commented category line from MongoDB version check
ademidoff Jul 22, 2026
4ffa51e
Merge remote-tracking branch 'origin/main' into PMM-14109-improve-adv…
ademidoff Jul 22, 2026
be7923f
PMM-14109 Update descriptions for MySQL automatic password expiry check
ademidoff Jul 22, 2026
3732889
PMM-14109 Update MySQL automatic password expiry warning message and …
ademidoff Jul 22, 2026
ec9baf5
PMM-14109 Refactor checks service interface and implement disable/ena…
ademidoff Jul 23, 2026
08e082e
PMM-14109 Improve advisor check error messages
ademidoff Jul 24, 2026
7902634
PMM-14109 Add advisor check test endpoint and Test button in the chec…
ademidoff Jul 24, 2026
afe579d
PMM-14109 Improve error messages for unexpected document counts in Mo…
ademidoff Jul 24, 2026
84b722b
PMM-14109 Return script print output and dedicated results from advis…
ademidoff Jul 24, 2026
5bf496e
PMM-14109 Keep script print output out of check test error messages
ademidoff Jul 24, 2026
247cf2e
PMM-14109 Add script syntax highlighting and polish the check test re…
ademidoff Jul 24, 2026
838da93
PMM-14109 Add Connected Agents stat panel to Home Dashboard
ademidoff Jul 24, 2026
439146f
Merge branch 'main' into PMM-14109-improve-advisor-ux
ademidoff Jul 24, 2026
0ced845
PMM-14109 Update release version of pmm-managed to 21
ademidoff Jul 24, 2026
e813a62
PMM-14109 Remove deprecated failedServices and checks/failed endpoints
ademidoff Jul 24, 2026
a10f4c1
PMM-14109 Rename leftover alert terminology in the checks registry
ademidoff Jul 24, 2026
7cb93ea
PMM-14109 Rotate Grafana session tokens for API-only clients
ademidoff Jul 24, 2026
2695963
PMM-14109 Cache definitive auth rejections in the Grafana auth server
ademidoff Jul 24, 2026
1b630b7
PMM-14109 Retire unused advisor severities
ademidoff Jul 24, 2026
e2be270
PMM-14109 Reject retired advisor severities instead of coercing
ademidoff Jul 24, 2026
cd9974f
PMM-14109 Upgrade former notice findings in bundled checks to warning
ademidoff Jul 24, 2026
05de7ee
PMM-14109 Align check descriptions with warning severity
ademidoff Jul 24, 2026
85e6d77
PMM-14109 Update severity levels for AHI efficiency checks
ademidoff Jul 25, 2026
6f55c25
PMM-14109 Guard advisor_checks migration against non-array disabled_a…
ademidoff Jul 25, 2026
79f864d
PMM-14109 Refactor severity levels in MySQL checks to use lowercase a…
ademidoff Jul 25, 2026
ca3f751
PMM-14109 Make unused index findings distinguishable in the history
ademidoff Jul 25, 2026
bf6edc2
PMM-14109 Improve summaries and descriptions for PostgreSQL index checks
ademidoff Jul 25, 2026
3fa112a
PMM-14109 Aggregate multi-object advisor findings per database
ademidoff Jul 25, 2026
c26dc5d
PMM-14109 Fix logic bugs in advisor check scripts found during audit
ademidoff Jul 25, 2026
a929a1f
PMM-14109 Fix whitespace artifacts in advisor check outcomes and pin …
ademidoff Jul 25, 2026
07c59f2
PMM-14109 Add bulk mark-as-read for filtered advisor insights
ademidoff Jul 25, 2026
176008b
PMM-14109 Add make format-changed for formatting only branch-changed …
ademidoff Jul 25, 2026
57e7d57
PMM-14109 Rename check results to advisor insights across API, DB and UI
ademidoff Jul 25, 2026
924a004
PMM-14109 Add region and az fields to insight model and database schema
ademidoff Jul 25, 2026
2748a62
PMM-14109 Show advisor check script in a read-only editor in the deta…
ademidoff Jul 25, 2026
ef7bfcf
PMM-14109 Add test-on-service to the advisor check details pane
ademidoff Jul 25, 2026
ccf457e
PMM-14109 Remove the script-only advisor check endpoint
ademidoff Jul 25, 2026
674ea91
PMM-14109 Explain why a service is not eligible for a check test
ademidoff Jul 25, 2026
3924363
PMM-14109 Serve advisor check test targets from the backend
ademidoff Jul 26, 2026
987a269
PMM-14109 Rename advisor check family/vendor to technology
ademidoff Jul 26, 2026
b0f57c2
PMM-14109 Polish the advisor checks table layout
ademidoff Jul 26, 2026
44e6d24
Merge branch 'main' into PMM-14109-improve-advisor-ux
ademidoff Jul 26, 2026
6905c94
PMM-14109 Own the checks and alerting-templates directories as pmm:root
ademidoff Jul 26, 2026
9c5472d
PMM-14109 Show the check source in the details pane
ademidoff Jul 26, 2026
d3e2302
PMM-14109 Top-align a short script in the check details pane
ademidoff Jul 26, 2026
b14448a
PMM-14109 Reject a renaming attempt on advisor check update
ademidoff Jul 26, 2026
549eafd
PMM-14109 Tidy up two MySQL check scripts
ademidoff Jul 26, 2026
cff38de
PMM-14109 Fix the advisors actions column and badge service disablements
ademidoff Jul 26, 2026
ff5052f
PMM-14109 Let the check form Script field fill the pane
ademidoff Jul 26, 2026
3bfec1d
PMM-14109 Configure advisor notification recipients in PMM settings
ademidoff Jul 26, 2026
43aaf28
PMM-14109 Suggest existing categories in the advisor check form
ademidoff Jul 26, 2026
d0f9f35
PMM-14109 Remove the no-op helperTextTestId
ademidoff Jul 26, 2026
2beff6b
PMM-14109 Stop jsdom throwing on React-generated ids in :has() selectors
ademidoff Jul 26, 2026
dde64e5
PMM-14109 Add a per-technology summary to the advisor email report
ademidoff Jul 26, 2026
163ced1
PMM-14109 Show Triggered by instead of Advisor status on the insight …
ademidoff Jul 26, 2026
b650719
PMM-14109 Add an Edit button to the advisor check details pane
ademidoff Jul 26, 2026
df86f89
PMM-14109 Rework the Advisor insights row actions
ademidoff Jul 26, 2026
0db5e84
PMM-14109 Keep the Checked at timestamp on one line
ademidoff Jul 26, 2026
1433117
PMM-14109 Make the advisor check test output easier to read
ademidoff Jul 26, 2026
679a448
PMM-14109 Add linting directives to healthChecker and grafanaClient i…
ademidoff Jul 26, 2026
f04e66a
PMM-14109 Fix the unit tests broken by the advisor changes
ademidoff Jul 26, 2026
7c39ee4
PMM-14109 Merge main
ademidoff Jul 28, 2026
806a9ea
PMM-14109 Merge main
ademidoff Jul 29, 2026
d987177
PMM-14109 Fix saving advisor notification recipients
ademidoff Jul 30, 2026
c544589
PMM-14109 Always open the advisor details panes maximized
ademidoff Jul 30, 2026
8186382
PMM-14109 Add a "Filter by name" insights row action
ademidoff Jul 30, 2026
e8d3a21
PMM-14109 Replace the insights "Read more" link with a document icon
ademidoff Jul 30, 2026
4f7f38c
PMM-14109 Make format-fast work without arguments
ademidoff Jul 30, 2026
eb0c586
Merge branch 'main' into PMM-14109-improve-advisor-ux
ademidoff Jul 31, 2026
f0c2149
PMM-14109 Make advisor check run intervals whole hours
ademidoff Jul 31, 2026
1d29a45
PMM-14109 Drop the arrow from the insights documentation icon
ademidoff Jul 31, 2026
862d9f2
PMM-14109 Clean up advisor comments
ademidoff Aug 3, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion .github/workflows/managed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,6 @@ jobs:
-v ./:/root/go/src/github.com/percona/pmm \
-v ~/go-mod-cache:/home/pmm/.cache/go/mod \
-v ~/go-build-cache:/home/pmm/.cache/go-build \
-v ./managed/data/advisors/:/usr/local/percona/advisors/ \
-v ./managed/data/checks/:/usr/local/percona/checks/ \
-v ./managed/data/alerting-templates/:/usr/local/percona/alerting-templates/ \
-v ./.devcontainer/Makefile:/root/go/src/github.com/percona/pmm/Makefile:ro \
Expand Down
1 change: 0 additions & 1 deletion .github/workflows/percona-intelligence.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ on:
pull_request:
paths:
- 'managed/data/alerting-templates/**'
- 'managed/data/advisors/**'
- 'managed/data/checks/**'

permissions:
Expand Down
2 changes: 0 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ settings.json
# Temporary (OS, build, config, etc)
.DS_Store
/tmp/

.env
.netrc
.modules
Expand All @@ -18,7 +17,6 @@ packer.log
ci.yml
Makefile.local


# PMM specific
bin
/dev/clickhouse-backups/
Expand Down
1 change: 1 addition & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,6 +172,7 @@ Relationships:
- Import grouping: stdlib, then external (`github.com/percona`, third-party), then internal (this repo)
- Use `any` instead of `interface{}`
- Use modern slice helpers (`slices.Contains`), range loops
- Use `new(expr)` instead of `pointer.To(expr)` when a pointer to a value is needed
- Don't use named return values
- Don't inline comments (`code // comment`); put comments on separate lines
- Don't add obvious/redundant comments; only comment non-obvious intent
Expand Down
21 changes: 15 additions & 6 deletions Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -59,16 +59,25 @@ check-all: check-license check ## Run linter and license checks
check-new:
bin/golangci-lint run -c=.golangci.yml --new-from-rev=origin/main --new

FILES = $(shell find . -type f -name '*.go')
# Files passed to the Go formatters: the FILES override if given, the whole tree otherwise.
FILES ?=
GO_FILES = $(if $(strip $(FILES)),$(FILES),$(shell find . -type f -name '*.go'))

format: ## Format source code
# Go files changed on the current branch (committed, staged or unstaged), plus untracked ones.
CHANGED_GO_FILES = $(sort $(shell git diff --name-only --diff-filter=d $$(git merge-base main HEAD) -- '*.go'; git ls-files --others --exclude-standard -- '*.go'))

format: ## Format source code; pass FILES="a.go b.go" to format only those files
make -C api format
go tool gofumpt -l -w $(FILES)
go tool goimports -local github.com/percona/pmm -l -w $(FILES)
go tool gci write --section Standard --section Default --section "Prefix(github.com/percona/pmm)" $(FILES)
go tool gofumpt -l -w $(GO_FILES)
go tool goimports -local github.com/percona/pmm -l -w $(GO_FILES)
go tool gci write --section Standard --section Default --section "Prefix(github.com/percona/pmm)" $(GO_FILES)

format-changed: ## Format the Go files changed on this branch (much faster than `make format`)
@files="$(CHANGED_GO_FILES)"; \
if [ -z "$$files" ]; then echo "No changed Go files."; else $(MAKE) format FILES="$$files"; fi

format-fast: ## Format only (without running goimports and gci)
@go tool gofumpt -l -w $(FILES)
@go tool gofumpt -l -w $(GO_FILES)

serve: ## Serve API documentation with nginx
nginx -p . -c api/nginx/nginx.conf
Expand Down
2 changes: 0 additions & 2 deletions agent/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,6 @@ services:
- "127.0.0.1:443:8443"
environment:
- PMM_DEBUG=1
# for local development
- PMM_DEV_ADVISOR_CHECKS_FILE=/srv/checks/custom-checks.yml
volumes:
- ./testdata/checks:/srv/checks

Expand Down
2 changes: 0 additions & 2 deletions api-tests/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,6 @@ services:
- 127.0.0.1:443:8443
environment:
- PMM_DEBUG=1
# for local development
# - PMM_DEV_ADVISOR_CHECKS_FILE=/srv/checks/custom-checks.yml
volumes:
- ./testdata/checks:/srv/checks

Expand Down
29 changes: 1 addition & 28 deletions api-tests/server/advisors_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,30 +50,6 @@ func TestStartChecks(t *testing.T) {
})
}

func TestGetAdvisorCheckResults(t *testing.T) {
t.Run("with disabled Advisors", func(t *testing.T) {
toggleAdvisorChecks(t, false)
t.Cleanup(func() { RestoreSettingsDefaults(t) })

results, err := advisorClient.Default.AdvisorService.GetFailedChecks(nil)
pmmapitests.AssertAPIErrorf(t, err, 400, codes.FailedPrecondition, `advisor checks are disabled.`)
assert.Nil(t, results)
})

t.Run("with enabled Advisors", func(t *testing.T) {
toggleAdvisorChecks(t, true)
t.Cleanup(func() { RestoreSettingsDefaults(t) })

resp, err := advisorClient.Default.AdvisorService.StartAdvisorChecks(nil)
require.NoError(t, err)
assert.NotNil(t, resp)

results, err := advisorClient.Default.AdvisorService.GetFailedChecks(nil)
require.NoError(t, err)
assert.NotNil(t, results)
})
}

func TestListAdvisorChecks(t *testing.T) {
toggleAdvisorChecks(t, true)
t.Cleanup(func() { RestoreSettingsDefaults(t) })
Expand All @@ -98,11 +74,8 @@ func TestListAdvisors(t *testing.T) {
assert.NotNil(t, resp)
assert.NotEmpty(t, resp.Payload.Advisors)
for _, a := range resp.Payload.Advisors {
assert.NotEmpty(t, a.Name, "%+v", a)
assert.NotEmpty(t, a.Summary, "%+v", a)
assert.NotEmpty(t, a.Description, "%+v", a)
assert.NotEmpty(t, a.Category, "%+v", a)
assert.NotEmpty(t, a.Comment, "%+v", a)
assert.NotEmpty(t, a.Subcategory, "%+v", a)
assert.NotEmpty(t, a.Checks, "%+v", a)

for _, c := range a.Checks {
Expand Down
Loading
Loading