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 | Slowpoke | Percona PMM |
|---|---|---|
| What it answers | Where the time goes across the whole stack | Which queries load the database hardest |
| Price | €0 | €0 |
| Self-hosted | Yes, 21 MB image | Yes, a multi-service stack |
| Scope | Endpoints, queries, PHP stalls, jobs, schedules, machines, caches | Databases only |
| Query analytics | Ranked by seconds of waiting per day | Ranked by load, with deep engine detail |
| Query plans | Real EXPLAIN, twelve named diagnoses with the fix | EXPLAIN, shown as a plan |
| Code origin of a query | File and line, via framework packages | — |
| Priced for non-engineers | Seconds of waiting per day, effort, ROI, DORA | Database metrics |
| Work that verifies itself | Missions closed by measurement | — |
| MongoDB | Slow operation log from mongod | Full support, first class |
| Replication and engine internals | Not covered | Deep |
| Database security checks | Never | Yes |
| Who it is built for | The engineer who just took over | The 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?
Which databases does Slowpoke support?
Does Slowpoke run queries against my production database?
Is Slowpoke lighter to run than PMM?
Find out what you inherited
Fifteen minutes on one server, and the first number is yours — it costs nothing to find out.