Skip to content

Commit

Permalink
Merge branch 'main' into PMM-13314-add-yum-flag
Browse files Browse the repository at this point in the history
  • Loading branch information
konopka90 authored Oct 18, 2024
2 parents 2cace8a + de95e53 commit ecef81d
Show file tree
Hide file tree
Showing 173 changed files with 7,103 additions and 14,003 deletions.
20 changes: 10 additions & 10 deletions .github/workflows/agent.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,15 @@ jobs:
strategy:
matrix:
images:
- { mysql: 'mysql:5.6', mongo: 'mongo:4.2', postgres: 'postgres:10', pmm_server: 'percona/pmm-server:2.0.0' }
- { mysql: 'mysql:5.7', mongo: 'mongo:4.4', postgres: 'postgres:11', pmm_server: 'percona/pmm-server:2.0.1' }
- { mysql: 'mysql:8.0', mongo: 'mongo:4.4', postgres: 'postgres:12', pmm_server: 'percona/pmm-server:2.1.0' }
- { mysql: 'mysql:8.0', mongo: 'mongo:4.4', postgres: 'postgres:13', pmm_server: 'percona/pmm-server:2.2.0' }
- { mysql: 'mysql:5.6', mongo: 'mongo:4.2', postgres: 'postgres:14', pmm_server: 'percona/pmm-server:2.0.0' }
- { mysql: 'mysql:5.7', mongo: 'mongo:4.4', postgres: 'postgres:15', pmm_server: 'percona/pmm-server:2.0.1' }
- { mysql: 'mysql:8.0', mongo: 'mongo:4.4', postgres: 'postgres:16', pmm_server: 'percona/pmm-server:2.1.0' }
- { mysql: 'mysql:8.0', mongo: 'mongo:4.4', postgres: 'postgres:17rc1', pmm_server: 'percona/pmm-server:2.2.0' }

# Percona + latest PMM Server release
- { mysql: 'percona:5.6', mongo: 'percona/percona-server-mongodb:4.2', postgres: 'perconalab/percona-distribution-postgresql:11', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' }
- { mysql: 'percona:5.7', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'perconalab/percona-distribution-postgresql:12.8-pg_stat', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' }
- { mysql: 'percona:8.0', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'perconalab/percona-distribution-postgresql:13.5-pg_stat', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' }
- { mysql: 'percona:5.6', mongo: 'percona/percona-server-mongodb:4.2', postgres: 'perconalab/percona-distribution-postgresql:15', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' }
- { mysql: 'percona:5.7', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'perconalab/percona-distribution-postgresql:16', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' }
- { mysql: 'percona:8.0', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'perconalab/percona-distribution-postgresql:17-dev', pg_libs: 'pg_stat_statements,pg_stat_monitor', pmm_server: 'percona/pmm-server:2' }

# MariaDB (only 3 latest GA versions)
# + older supported MongoDB versions
Expand All @@ -44,9 +44,9 @@ jobs:
# - MYSQL_IMAGE=mariadb:10.0
# - MYSQL_IMAGE=mariadb:10.1

- { mysql: 'mariadb:10.2', mongo: 'mongo:4.4', postgres: 'postgres:9.4', pmm_server: 'perconalab/pmm-server:dev-latest' }
- { mysql: 'mariadb:10.3', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'postgres:9.5', pmm_server: 'perconalab/pmm-server:dev-latest' }
- { mysql: 'mariadb:10.4', postgres: 'postgres:9.6', pmm_server: 'perconalab/pmm-server:dev-latest' }
- { mysql: 'mariadb:10.2', mongo: 'mongo:4.4', postgres: 'postgres:12', pmm_server: 'perconalab/pmm-server:dev-latest' }
- { mysql: 'mariadb:10.3', mongo: 'percona/percona-server-mongodb:4.4', postgres: 'postgres:13', pmm_server: 'perconalab/pmm-server:dev-latest' }
- { mysql: 'mariadb:10.4', postgres: 'postgres:14', pmm_server: 'perconalab/pmm-server:dev-latest' }

continue-on-error: true

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/clean.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
fail-fast: false
matrix:
go:
- version: 1.22.x
- version: 1.23.x
may-fail: false
- version: tip
may-fail: true
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# This Dockerfile is used only for API tests.

FROM golang:1.22
FROM golang:1.23

RUN export GOPATH=$(go env GOPATH) && \
mkdir -p $GOPATH/src/github.com/percona/pmm
Expand Down
3 changes: 2 additions & 1 deletion admin/commands/pmm/server/docker/deps.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
tea "github.com/charmbracelet/bubbletea"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/api/types/image"
"github.com/docker/docker/api/types/volume"
"github.com/docker/docker/client"

Expand All @@ -47,7 +48,7 @@ type Functions interface { //nolint:interfacebloat
// Imager holds methods to interact with Docker images.
type Imager interface {
ParsePullImageProgress(r io.Reader, p *tea.Program) (<-chan struct{}, <-chan error)
PullImage(ctx context.Context, dockerImage string, opts types.ImagePullOptions) (io.Reader, error)
PullImage(ctx context.Context, dockerImage string, opts image.PullOptions) (io.Reader, error)
}

// Installer holds methods related to Docker installation.
Expand Down
4 changes: 2 additions & 2 deletions admin/commands/pmm/server/docker/install.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ import (
"strconv"

tea "github.com/charmbracelet/bubbletea"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/image"
"github.com/docker/docker/api/types/volume"
"github.com/docker/go-connections/nat"
"github.com/pkg/errors"
Expand Down Expand Up @@ -145,7 +145,7 @@ func (c *InstallCommand) runContainer(ctx context.Context, volume *volume.Volume

// pullImage pulls a docker image and displays progress.
func (c *InstallCommand) pullImage(ctx context.Context, globals *flags.GlobalFlags) (commands.Result, error) {
reader, err := c.dockerFn.PullImage(ctx, c.DockerImage, types.ImagePullOptions{})
reader, err := c.dockerFn.PullImage(ctx, c.DockerImage, image.PullOptions{})
if err != nil {
return nil, err
}
Expand Down
9 changes: 5 additions & 4 deletions admin/commands/pmm/server/docker/mock_functions_test.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion admin/commands/pmm/server/docker/upgrade.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (

"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/api/types/image"
"github.com/docker/docker/api/types/mount"
"github.com/docker/docker/api/types/strslice"
"github.com/pkg/errors"
Expand Down Expand Up @@ -204,7 +205,7 @@ func (c *UpgradeCommand) backupVolumes(ctx context.Context, container *types.Con
}

func (c *UpgradeCommand) pullImage(ctx context.Context, imageName string) error {
reader, err := c.dockerFn.PullImage(ctx, imageName, types.ImagePullOptions{})
reader, err := c.dockerFn.PullImage(ctx, imageName, image.PullOptions{})
if err != nil {
return err
}
Expand Down
4 changes: 2 additions & 2 deletions admin/pkg/docker/docker.go
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ func (b *Base) GetDockerClient() *client.Client {

// FindServerContainers finds all containers running PMM Server.
func (b *Base) FindServerContainers(ctx context.Context) ([]types.Container, error) {
return b.Cli.ContainerList(ctx, types.ContainerListOptions{ //nolint:exhaustruct
return b.Cli.ContainerList(ctx, container.ListOptions{ //nolint:exhaustruct
All: true,
Filters: filters.NewArgs(filters.KeyValuePair{
Key: "label",
Expand Down Expand Up @@ -221,7 +221,7 @@ func (b *Base) RunContainer(ctx context.Context, config *container.Config, hostC
return "", err
}

if err := b.Cli.ContainerStart(ctx, res.ID, types.ContainerStartOptions{}); err != nil { //nolint:exhaustruct
if err := b.Cli.ContainerStart(ctx, res.ID, container.StartOptions{}); err != nil { //nolint:exhaustruct
return "", err
}

Expand Down
4 changes: 2 additions & 2 deletions admin/pkg/docker/pull_image.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,13 @@ import (
"io"

tea "github.com/charmbracelet/bubbletea"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/image"

"github.com/percona/pmm/admin/pkg/bubbles/progress"
)

// PullImage pulls image from Docker registry.
func (b *Base) PullImage(ctx context.Context, dockerImage string, opts types.ImagePullOptions) (io.Reader, error) {
func (b *Base) PullImage(ctx context.Context, dockerImage string, opts image.PullOptions) (io.Reader, error) {
return b.Cli.ImagePull(ctx, dockerImage, opts)
}

Expand Down
79 changes: 51 additions & 28 deletions agent/agents/postgres/pgstatmonitor/pgstatmonitor.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,13 @@ const (
pgStatMonitorVersion20PG13
pgStatMonitorVersion20PG14
pgStatMonitorVersion20PG15
pgStatMonitorVersion20PG16
pgStatMonitorVersion21PG12
pgStatMonitorVersion21PG13
pgStatMonitorVersion21PG14
pgStatMonitorVersion21PG15
pgStatMonitorVersion21PG16
pgStatMonitorVersion21PG17
)

const (
Expand Down Expand Up @@ -184,40 +191,54 @@ func getPGMonitorVersion(q *reform.Querier) (pgStatMonitorVersion, pgStatMonitor

var version pgStatMonitorVersion
switch {
case vPGSM.Core().GreaterThanOrEqual(v21):
switch {
case vPG >= 17:
version = pgStatMonitorVersion21PG17
case vPG >= 16:
version = pgStatMonitorVersion21PG16
case vPG >= 15:
version = pgStatMonitorVersion21PG15
case vPG >= 14:
version = pgStatMonitorVersion21PG14
case vPG >= 13:
version = pgStatMonitorVersion21PG13
default:
version = pgStatMonitorVersion21PG12
}
case vPGSM.Core().GreaterThanOrEqual(v20):
if vPG >= 15 {
switch {
case vPG >= 16:
version = pgStatMonitorVersion20PG16
case vPG >= 15:
version = pgStatMonitorVersion20PG15
break
}
if vPG >= 14 {
case vPG >= 14:
version = pgStatMonitorVersion20PG14
break
}
if vPG >= 13 {
case vPG >= 13:
version = pgStatMonitorVersion20PG13
break
default:
version = pgStatMonitorVersion20PG12
}
version = pgStatMonitorVersion20PG12
case vPGSM.Core().GreaterThanOrEqual(v11):
if vPG >= 14 {
switch {
case vPG >= 14:
version = pgStatMonitorVersion11PG14
break
}
if vPG >= 13 {
case vPG >= 13:
version = pgStatMonitorVersion11PG13
break
default:
version = pgStatMonitorVersion11PG12
}
version = pgStatMonitorVersion11PG12

case vPGSM.Core().GreaterThanOrEqual(v10):
if vPG >= 14 {
switch {
case vPG >= 14:
version = pgStatMonitorVersion10PG14
break
}
if vPG >= 13 {
case vPG >= 13:
version = pgStatMonitorVersion10PG13
break
default:
version = pgStatMonitorVersion10PG12
}
version = pgStatMonitorVersion10PG12

case vPGSM.GreaterThanOrEqual(v09):
version = pgStatMonitorVersion09
case vPGSM.GreaterThanOrEqual(v08):
Expand Down Expand Up @@ -563,10 +584,10 @@ func (m *PGStatMonitorQAN) makeBuckets(current, cache map[time.Time]map[string]*
mb.Postgresql.HistogramItems = histogram
}

if (currentPSM.PlanTotalTime - prevPSM.PlanTotalTime) != 0 {
mb.Postgresql.MPlanTimeSum = float32(currentPSM.PlanTotalTime-prevPSM.PlanTotalTime) / 1000
mb.Postgresql.MPlanTimeMin = float32(currentPSM.PlanMinTime) / 1000
mb.Postgresql.MPlanTimeMax = float32(currentPSM.PlanMaxTime) / 1000
if (currentPSM.TotalPlanTime - prevPSM.TotalPlanTime) != 0 {
mb.Postgresql.MPlanTimeSum = float32(currentPSM.TotalPlanTime-prevPSM.TotalPlanTime) / 1000
mb.Postgresql.MPlanTimeMin = float32(currentPSM.MinPlanTime) / 1000
mb.Postgresql.MPlanTimeMax = float32(currentPSM.MaxPlanTime) / 1000
mb.Postgresql.MPlanTimeCnt = count
}

Expand Down Expand Up @@ -618,9 +639,11 @@ func (m *PGStatMonitorQAN) makeBuckets(current, cache map[time.Time]map[string]*
{float32(currentPSM.WalBytes - prevPSM.WalBytes), &mb.Postgresql.MWalBytesSum, &mb.Postgresql.MWalBytesCnt},

// convert milliseconds to seconds
{float32(currentPSM.TotalTime-prevPSM.TotalTime) / 1000, &mb.Common.MQueryTimeSum, &mb.Common.MQueryTimeCnt},
{float32(currentPSM.BlkReadTime-prevPSM.BlkReadTime) / 1000, &mb.Postgresql.MBlkReadTimeSum, &mb.Postgresql.MBlkReadTimeCnt},
{float32(currentPSM.BlkWriteTime-prevPSM.BlkWriteTime) / 1000, &mb.Postgresql.MBlkWriteTimeSum, &mb.Postgresql.MBlkWriteTimeCnt},
{float32(currentPSM.TotalExecTime-prevPSM.TotalExecTime) / 1000, &mb.Common.MQueryTimeSum, &mb.Common.MQueryTimeCnt},
{float32(currentPSM.SharedBlkReadTime-prevPSM.SharedBlkReadTime) / 1000, &mb.Postgresql.MSharedBlkReadTimeSum, &mb.Postgresql.MSharedBlkReadTimeCnt},
{float32(currentPSM.SharedBlkWriteTime-prevPSM.SharedBlkWriteTime) / 1000, &mb.Postgresql.MSharedBlkWriteTimeSum, &mb.Postgresql.MSharedBlkWriteTimeCnt},
{float32(currentPSM.LocalBlkReadTime-prevPSM.LocalBlkReadTime) / 1000, &mb.Postgresql.MLocalBlkReadTimeSum, &mb.Postgresql.MLocalBlkReadTimeCnt},
{float32(currentPSM.LocalBlkWriteTime-prevPSM.LocalBlkWriteTime) / 1000, &mb.Postgresql.MLocalBlkWriteTimeSum, &mb.Postgresql.MLocalBlkWriteTimeCnt},

// convert microseconds to seconds
{float32(cpuSysTime) / 1000000, &mb.Postgresql.MCpuSysTimeSum, &mb.Postgresql.MCpuSysTimeCnt},
Expand Down
Loading

0 comments on commit ecef81d

Please sign in to comment.