Slowpoke vs Percona PMM

PMM is the closest thing to Slowpoke's query work that already exists: self-hosted, free, ranking queries by load across MySQL, PostgreSQL and MongoDB. It is also a DBA tool that stops at the database boundary, and it will not tell you that the real problem is a queued job or a PHP-FPM pool.

The short answer

Which one you should pick

If your problem is definitely in the database and you have someone who thinks like a DBA, PMM goes deeper than we do. If you are not sure where the problem is, that is the case Slowpoke is built for.

Choose Percona PMM if

Your problem is the database, and you know it

  • You want the deepest free query analytics available, across MySQL, PostgreSQL and MongoDB.
  • You need replication, InnoDB internals, buffer pool and engine-level dashboards.
  • You have a DBA, or you are one, and a Grafana-shaped interface is what you want.
  • You want automated database security and configuration checks, which Slowpoke does not do.

Choose Slowpoke if

You do not yet know where the time goes

  • You need endpoints, queries, PHP stalls, queued jobs and scheduled commands ranked on one scale.
  • You want the file and line of the code that ran the query, not just the statement.
  • You want the cost in seconds of waiting per day, so a non-engineer can read it.
  • You do not want to run Grafana, VictoriaMetrics and ClickHouse to answer the question.
  • You need the findings to turn into work that closes when the numbers say so.

Side by side

Slowpoke and Percona PMM, line by line

Written to be fair, including where Percona PMM is the better tool. If a row here is wrong or out of date, that is a bug: open an issue and it gets corrected.

Aspect SlowpokePercona PMM
What it answersWhere the time goes across the whole stackWhich queries load the database hardest
Price€0€0
Self-hostedYes, 21 MB imageYes, a multi-service stack
ScopeEndpoints, queries, PHP stalls, jobs, schedules, machines, cachesDatabases only
Query analyticsRanked by seconds of waiting per dayRanked by load, with deep engine detail
Query plansReal EXPLAIN, twelve named diagnoses with the fixEXPLAIN, shown as a plan
Code origin of a queryFile and line, via framework packages
Priced for non-engineersSeconds of waiting per day, effort, ROI, DORADatabase metrics
Work that verifies itselfMissions closed by measurement
MongoDBSlow operation log from mongodFull support, first class
Replication and engine internalsNot coveredDeep
Database security checksNeverYes
Who it is built forThe engineer who just took overThe person who owns the databases

The same idea, drawn at a different boundary

PMM's Query Analytics and Slowpoke's slow list rhyme: both rank statements by what they actually cost the system rather than by how slow one execution looked, and both run EXPLAIN to show you why. On the database itself, PMM goes further than we do, and it would be dishonest to pretend otherwise — replication, the buffer pool, engine internals and per-engine dashboards are its home ground.

The difference is where each tool draws its boundary. PMM's world ends at the database socket. That is the correct scope for a DBA, and the wrong scope for the person this site is written for, who has just been handed an unfamiliar system and does not yet know whether the problem is a query, an endpoint, a PHP-FPM pool with four workers, a nightly command that overlaps the backup, or a Redis evicting its way through the working set.

One scale, or no argument can be settled

Slowpoke prices everything it sees in the same unit, so the comparison is possible at all. A query costing 1,840 seconds of waiting per day, an endpoint costing 412, a queued job costing 230 and a nightly report costing 191 sit in one list, in that order, deduplicated so that a request seen by both nginx and OpenTelemetry counts once.

Without that, prioritising means comparing a database dashboard against a web server dashboard against somebody's memory of the queue, which is how teams end up optimising the 30-second report everyone notices instead of the 40 ms query that runs 90,000 times a day and costs six times more.

What you install, and what you get on the first morning

PMM is a server plus exporters, and the server carries a Grafana, a metrics store and a query analytics backend. It is a well-built stack and it is still a stack.

Slowpoke is one 21 MB distroless image with SQLite or PostgreSQL behind it, and one 15 MB agent per machine. The agent is capped at one CPU core and 64 MB, is read-only, reports what it costs the machine between rounds, and works out its own configuration: slowpoke-agent detect finds the nginx sites, the PHP-FPM pools, the local MySQL and PostgreSQL, Redis and the applications with their framework, then tells you which of them it cannot read yet and the exact lines that would fix that.

Can you run both?

Yes, and for a database-heavy shop it is a sensible pair: PMM for the DBA's view of the engine, Slowpoke for the priced backlog the whole team works from. Slowpoke reads performance_schema and pg_stat_statements read-only and ignores its own housekeeping queries, so it does not disturb what PMM is measuring.

FAQ

Slowpoke and Percona PMM, asked plainly

Is Slowpoke a replacement for Percona PMM?
Not for a DBA. PMM is deeper on the database — replication, engine internals, security checks — and it covers MongoDB properly. Slowpoke is wider: it prices queries next to endpoints, jobs, schedules and machines, and names the line of code.
Which databases does Slowpoke support?
MySQL 5.7 and 8, MariaDB, and PostgreSQL, where plans for statements stored without their values need PostgreSQL 16 or newer. Redis for cache statistics and its slow command log, and the mongod slow operation log.
Does Slowpoke run queries against my production database?
Only EXPLAIN, only on statements it has already seen on that machine, and only inside a read-only transaction. The server never chooses the SQL, and real values never leave the machine that saw them.
Is Slowpoke lighter to run than PMM?
Yes. One 21 MB server image with SQLite or PostgreSQL, and a 15 MB agent per machine capped at one core and 64 MB. PMM's server bundles Grafana, a metrics store and a query analytics backend.

Find out what you inherited

Fifteen minutes on one server, and the first number is yours — it costs nothing to find out.