Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
ce2d188
PMM-14615: Tour should not be dismissible when clicking on backdrop (…
dmitri-saricev-3pillargloball Dec 17, 2025
5c13ecd
PMM-14619 Use meta key only on Apple platforms (#4816)
matejkubinec Dec 17, 2025
cabc6ff
Bump github/codeql-action from 4.31.8 to 4.31.9 (#4851)
dependabot[bot] Dec 18, 2025
31d8cea
Bump actions/cache from 5.0.0 to 5.0.1 (#4842)
dependabot[bot] Dec 18, 2025
7efe587
Bump golang.org/x/sys from 0.38.0 to 0.39.0 (#4835)
dependabot[bot] Dec 18, 2025
173ae69
Bump github.com/alecthomas/kong from 1.12.0 to 1.13.0 (#4846)
dependabot[bot] Dec 18, 2025
5fd1962
PSMDB 7.0.26 / 8.0.16 releases (#4802)
sandraromanchenko Dec 18, 2025
be4e1af
[DOC] Watchtower version (#4827)
catalinaadam Dec 18, 2025
40794b1
PMM-14577 Bump up Go to 1.25.5 (#4854)
ademidoff Dec 19, 2025
779408b
Bump golang.org/x/text from 0.31.0 to 0.32.0 (#4834)
dependabot[bot] Dec 19, 2025
380c8e6
fix: check versionInfo?.latest? when accessing latestVersion (#4867)
fabio-silva Dec 23, 2025
15613ec
Bump anchore/sbom-action from 0.20.11 to 0.21.0 (#4868)
dependabot[bot] Dec 24, 2025
4c121e6
Bump github.com/ClickHouse/clickhouse-go/v2 from 2.41.0 to 2.42.0 (#4…
dependabot[bot] Dec 26, 2025
7af82d7
Bump golang.org/x/tools from 0.39.0 to 0.40.0 (#4856)
dependabot[bot] Dec 26, 2025
a438588
Bump docker/setup-buildx-action from 3.11.1 to 3.12.0 (#4861)
dependabot[bot] Dec 26, 2025
86f2134
Bump github.com/go-delve/delve from 1.25.0 to 1.26.0 in /tools (#4863)
dependabot[bot] Dec 26, 2025
88b4756
Bump google.golang.org/grpc from 1.77.0 to 1.78.0 (#4869)
dependabot[bot] Dec 26, 2025
4e3b1ff
Bump github.com/envoyproxy/protoc-gen-validate from 1.2.1 to 1.3.0 (#…
dependabot[bot] Dec 29, 2025
ef8fdc2
Bump crate-ci/typos from 1.40.0 to 1.41.0 (#4880)
dependabot[bot] Jan 4, 2026
ba2303b
docs: Correct HAProxy health check endpoint for PMM v3 (#4884)
Copilot Jan 5, 2026
86e35a5
Update documentation for helm deployment (#4876)
chilagrow Jan 6, 2026
4088a94
PMM HA (#4677)
ademidoff Jan 6, 2026
6528682
Bump dependabot/fetch-metadata from 2.4.0 to 2.5.0 (#4885)
dependabot[bot] Jan 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/admin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
cache: false

- name: Enable Go build cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/.cache/go-build
key: ${{ runner.os }}-go-build-${{ github.ref }}-${{ hashFiles('**') }}
Expand All @@ -55,7 +55,7 @@ jobs:
${{ runner.os }}-go-build-

- name: Enable Go modules cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-modules-${{ hashFiles('**/go.sum') }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/agent.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ jobs:
cache: false

- name: Enable Go build cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/.cache/go-build
key: ${{ runner.os }}-go-build-${{ github.ref }}-${{ hashFiles('**') }}
Expand All @@ -89,7 +89,7 @@ jobs:
${{ runner.os }}-go-build-

- name: Enable Go modules cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-modules-${{ hashFiles('**/go.sum') }}
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/clean.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,14 @@ jobs:
lfs: true

- name: Enable Go modules cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-modules-${{ hashFiles('**/go.sum') }}
restore-keys: ${{ runner.os }}-go-modules-

- name: Enable Go build cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/.cache/go-build
key: ${{ runner.os }}-go-build-${{ github.ref }}-${{ hashFiles('**') }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
steps:
- name: Dependabot metadata
id: metadata
uses: dependabot/fetch-metadata@08eff52bf64351f401fb50d4972fa95b9f2c2d1b # v2.4.0
uses: dependabot/fetch-metadata@21025c705c08248db411dc16f3619e6b5f9ea21a # v2.5.0
with:
github-token: "${{ secrets.GITHUB_TOKEN }}"

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/devcontainer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
ref: ${{ github.event.inputs.branch }}

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0

- name: Login to ghcr.io registry
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # v3.6.0
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ jobs:
cache: false

- name: Enable Go build cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/.cache/go-build
key: ${{ runner.os }}-go-build-${{ github.ref }}-${{ hashFiles('**') }}
Expand All @@ -39,7 +39,7 @@ jobs:
${{ runner.os }}-go-build-

- name: Enable Go modules cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-modules-${{ hashFiles('**/go.sum') }}
Expand Down Expand Up @@ -116,7 +116,7 @@ jobs:
env:
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.ROBOT_TOKEN || secrets.GITHUB_TOKEN }}
run: |
if out=$(bin/go-consistent -pedantic -exclude "tests" ./...); exit_code=$?; [ $exit_code -eq 0 ]; then
if out=$(bin/go-consistent -pedantic -exclude "tests|api/agent" ./...); exit_code=$?; [ $exit_code -eq 0 ]; then
echo "$out"
exit 0
fi
Expand All @@ -126,7 +126,7 @@ jobs:
exit $exit_code
fi

echo "$out" | bin/reviewdog -f=go-consistent -reporter=github-pr-review -fail-on-error
echo "$out" | bin/reviewdog -f=go-consistent -reporter=github-pr-review -fail-level=error

- name: Test common API
run: make test-common
Expand All @@ -147,7 +147,7 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1

- name: Check spelling of md files
uses: crate-ci/typos@2d0ce569feab1f8752f1dde43cc2f2aa53236e06 # v1.40.0
uses: crate-ci/typos@5c19779cb52ea50e151f5a10333ccd269227b5ae # v1.41.0
with:
files: "**/*.md ./documentation/**/*.md"

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/managed.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1

- name: Enable Go build and module cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: |
~/go-build-cache
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/qan-api2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
cache: false

- name: Enable Go build cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/.cache/go-build
key: ${{ runner.os }}-go-build-${{ github.ref }}-${{ hashFiles('**') }}
Expand All @@ -55,7 +55,7 @@ jobs:
${{ runner.os }}-go-build-

- name: Enable Go modules cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-modules-${{ hashFiles('**/go.sum') }}
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/sbom.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,13 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1

- name: Create SBOM for PMM
uses: anchore/sbom-action@43a17d6e7add2b5535efe4dcae9952337c479a93 # v0.20.11
uses: anchore/sbom-action@a930d0ac434e3182448fe678398ba5713717112a # v0.21.0
with:
file: go.mod
artifact-name: pmm.spdx.json

- name: Publish SBOM for PMM
uses: anchore/sbom-action/publish-sbom@43a17d6e7add2b5535efe4dcae9952337c479a93 # v0.20.11
uses: anchore/sbom-action/publish-sbom@a930d0ac434e3182448fe678398ba5713717112a # v0.21.0
with:
sbom-artifact-match: ".*\\.spdx\\.json$"

Expand All @@ -30,12 +30,12 @@ jobs:
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1

- name: Create SBOM for vmproxy
uses: anchore/sbom-action@43a17d6e7add2b5535efe4dcae9952337c479a93 # v0.20.11
uses: anchore/sbom-action@a930d0ac434e3182448fe678398ba5713717112a # v0.21.0
with:
path: ./vmproxy
artifact-name: vmproxy.spdx.json

- name: Publish SBOM for vmproxy
uses: anchore/sbom-action/publish-sbom@43a17d6e7add2b5535efe4dcae9952337c479a93 # v0.20.11
uses: anchore/sbom-action/publish-sbom@a930d0ac434e3182448fe678398ba5713717112a # v0.21.0
with:
sbom-artifact-match: ".*\\.spdx\\.json$"
2 changes: 1 addition & 1 deletion .github/workflows/scorecard.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,6 @@ jobs:

# Upload the results to GitHub's code scanning dashboard (optional).
- name: "Upload to code-scanning"
uses: github/codeql-action/upload-sarif@1b168cd39490f61582a9beae412bb7057a6b2c4e # v4.31.8
uses: github/codeql-action/upload-sarif@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v4.31.9
with:
sarif_file: results.sarif
4 changes: 2 additions & 2 deletions .github/workflows/vmproxy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ jobs:
cache: false

- name: Enable Go build cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/.cache/go-build
key: ${{ runner.os }}-go-build-${{ github.ref }}-${{ hashFiles('**') }}
Expand All @@ -55,7 +55,7 @@ jobs:
${{ runner.os }}-go-build-

- name: Enable Go modules cache
uses: actions/cache@a7833574556fa59680c1b7cb190c1735db73ebf0 # v5.0.0
uses: actions/cache@9255dc7a253b0ccc959486e2bca901246202afeb # v5.0.1
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-go-modules-${{ hashFiles('**/go.sum') }}
Expand Down
1 change: 1 addition & 0 deletions .golangci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,7 @@ linters:
- nonamedreturns # not critical for tests, albeit desirable
- testpackage # senseless
- unused # very annoying false positive: https://github.com/golangci/golangci-lint/issues/791
- unusedwrite # not critical for tests
path: _test\.go
- linters:
- recvcheck
Expand Down
14 changes: 4 additions & 10 deletions .mockery.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# This is the top-level configuration file for mockery.
disable-version-string: True
with-expecter: False
resolve-type-alias: False
inpackage: True
dir: "{{.InterfaceDir}}"
filename: "mock_{{ .InterfaceName | snakecase }}_test.go"
Expand All @@ -21,9 +22,6 @@ packages:
github.com/percona/pmm/managed/services/checks:
interfaces:
agentsRegistry:
github.com/percona/pmm/managed/services/grafana:
interfaces:
awsInstanceChecker:
github.com/percona/pmm/managed/services/inventory:
interfaces:
agentService:
Expand Down Expand Up @@ -69,10 +67,8 @@ packages:
interfaces:
agentsStateUpdater:
checksService:
emailer:
grafanaClient:
prometheusService:
rulesService:
supervisordService:
telemetryService:
templatesService:
Expand All @@ -83,18 +79,16 @@ packages:
Versioner:
config:
mockname: "Mock{{ .InterfaceName | camelcase | firstUpper }}"
github.com/percona/pmm/managed/services/victoriametrics:
interfaces:
haService:
github.com/percona/pmm/managed/services/telemetry:
interfaces:
DataSource:
DataSourceLocator:
distributionUtilService:
sender:
# admin
github.com/percona/pmm/admin/commands/pmm/server/docker:
interfaces:
Functions:
config:
mockname: "Mock{{ .InterfaceName | camelcase | firstUpper }}"
# agent
github.com/percona/pmm/agent/agentlocal:
interfaces:
Expand Down
File renamed without changes.
6 changes: 3 additions & 3 deletions Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ gen: clean ## Generate files
make format ## TODO: One formatting run is not enough, figure out why.
go install -v ./...

clean: ## Remove generated files
clean: ## Remove generated files
make -C api clean

gen-mocks:
Expand All @@ -53,9 +53,9 @@ check: ## Run required checkers and linters
bin/buf lint -v api
LOG_LEVEL=error bin/golangci-lint run
bin/go-sumtype ./...
bin/go-consistent -pedantic ./...
bin/go-consistent -pedantic -exclude "tests|api/agent" ./...

check-license: ## Run license header checks against source files
check-license: ## Run license header checks against source files
bin/license-eye -c .licenserc.yaml header check

check-all: check-license check ## Run golangci linter to check for changes against main
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@

## Percona Monitoring and Management

A **single pane of glass** to easily view and monitor the performance of your MySQL, MongoDB, PostgreSQL, and MariaDB databases.
A **single pane of glass** to easily view and monitor the performance of your MySQL, MongoDB, PostgreSQL, Valkey, and Redis databases.

[Percona Monitoring and Management (PMM)](https://www.percona.com/software/database-tools/percona-monitoring-and-management) is a best-of-breed open source database monitoring solution. It helps you reduce complexity, optimize performance, and improve the security of your business-critical database environments, no matter where they are located or deployed.
[Percona Monitoring and Management (PMM)](https://www.percona.com/software/database-tools/percona-monitoring-and-management) is the best-of-breed open source database monitoring solution. It helps you reduce complexity, optimize performance, and improve the security of your business-critical database environments, no matter where they are located or deployed.
PMM helps users to:
* Reduce Complexity
* Optimize Database Performance
Expand Down
2 changes: 1 addition & 1 deletion admin/commands/summary.go
Original file line number Diff line number Diff line change
Expand Up @@ -411,6 +411,6 @@ func (cmd *SummaryCommand) RunCmdWithContext(ctx context.Context, globals *flags
// register command.
var (
hostname, _ = os.Hostname()
filename = fmt.Sprintf("summary_%s_%s.zip",
filename = fmt.Sprintf("/tmp/summary_%s_%s.zip",
strings.ReplaceAll(hostname, ".", "_"), time.Now().Format("2006_01_02_15_04_05"))
)
13 changes: 6 additions & 7 deletions admin/commands/summary_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@ package commands

import (
"archive/zip"
"context"
"os"
"path/filepath"
"testing"
Expand All @@ -29,12 +28,12 @@ import (
)

func TestSummary(t *testing.T) {
agentlocal.SetTransport(context.TODO(), true, agentlocal.DefaultPMMAgentListenPort)
agentlocal.SetTransport(t.Context(), true, agentlocal.DefaultPMMAgentListenPort)

f, err := os.CreateTemp("", "pmm-admin-test-summary")
f, err := os.CreateTemp("", "pmm-admin-test-summary-*.zip") //nolint:usetesting
require.NoError(t, err)
filename := f.Name()
t.Log(filename)
t.Logf("Using temp file: %s", filename)

defer os.Remove(filename) //nolint:errcheck
assert.NoError(t, f.Close())
Expand All @@ -43,7 +42,7 @@ func TestSummary(t *testing.T) {
cmd := &SummaryCommand{
Filename: filename,
}
res, err := cmd.RunCmdWithContext(context.TODO(), &flags.GlobalFlags{})
res, err := cmd.RunCmdWithContext(t.Context(), &flags.GlobalFlags{})
require.NoError(t, err)
expected := &summaryResult{
Filename: filename,
Expand All @@ -56,7 +55,7 @@ func TestSummary(t *testing.T) {
Filename: filename,
SkipServer: true,
}
res, err := cmd.RunCmdWithContext(context.TODO(), &flags.GlobalFlags{})
res, err := cmd.RunCmdWithContext(t.Context(), &flags.GlobalFlags{})
require.NoError(t, err)
expected := &summaryResult{
Filename: filename,
Expand All @@ -74,7 +73,7 @@ func TestSummary(t *testing.T) {
SkipServer: true,
Pprof: true,
}
res, err := cmd.RunCmdWithContext(context.TODO(), &flags.GlobalFlags{})
res, err := cmd.RunCmdWithContext(t.Context(), &flags.GlobalFlags{})
require.NoError(t, err)
expected := &summaryResult{
Filename: filename,
Expand Down
2 changes: 1 addition & 1 deletion agent/config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ func get(args []string, cfg *Config, l *logrus.Entry) (string, error) { //nolint

if cfg.Paths.TempDir == "" {
cfg.Paths.TempDir = filepath.Join(cfg.Paths.PathsBase, agentTmpPath)
l.Infof("Temporary directory is not configured and will be set to %s", cfg.Paths.TempDir)
l.Infof("Temporary directory will default to %s", cfg.Paths.TempDir)
}

if cfg.Paths.NomadDataDir == "" {
Expand Down
1 change: 1 addition & 0 deletions agent/connectionuptime/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ func (c *Service) removeFirstElementsUntilIndex(i int) {
func (c *Service) RunCleanupGoroutine(ctx context.Context) {
go func() {
ticker := time.NewTicker(periodForRunningDeletingOldEvents)
defer ticker.Stop()
for {
select {
case <-ticker.C:
Expand Down
6 changes: 3 additions & 3 deletions api-tests/inventory/nodes_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ func TestGenericNode(t *testing.T) {

// Check for duplicates.
res, err = client.Default.NodesService.AddNode(params)
pmmapitests.AssertAPIErrorf(t, err, 409, codes.AlreadyExists, "Node with name %q already exists.", nodeName)
pmmapitests.AssertAPIErrorf(t, err, 409, codes.AlreadyExists, "Node with name %s already exists.", nodeName)
if !assert.Nil(t, res) {
pmmapitests.RemoveNodes(t, res.Payload.Generic.NodeID)
}
Expand Down Expand Up @@ -250,7 +250,7 @@ func TestContainerNode(t *testing.T) {

// Check for duplicates.
res, err = client.Default.NodesService.AddNode(params)
pmmapitests.AssertAPIErrorf(t, err, 409, codes.AlreadyExists, "Node with name %q already exists.", nodeName)
pmmapitests.AssertAPIErrorf(t, err, 409, codes.AlreadyExists, "Node with name %s already exists.", nodeName)
if !assert.Nil(t, res) {
pmmapitests.RemoveNodes(t, res.Payload.Container.NodeID)
}
Expand Down Expand Up @@ -314,7 +314,7 @@ func TestRemoteNode(t *testing.T) {

// Check duplicates.
res, err = client.Default.NodesService.AddNode(params)
pmmapitests.AssertAPIErrorf(t, err, 409, codes.AlreadyExists, "Node with name %q already exists.", nodeName)
pmmapitests.AssertAPIErrorf(t, err, 409, codes.AlreadyExists, "Node with name %s already exists.", nodeName)
if !assert.Nil(t, res) {
pmmapitests.RemoveNodes(t, res.Payload.Remote.NodeID)
}
Expand Down
Loading
Loading