Slowpoke vs SigNoz
SigNoz is the answer most people give when you ask for a self-hosted Datadog replacement, and it deserves it. It is also a place to put telemetry and ask questions of it. Slowpoke is the opposite shape: it asks the question for you and hands back a list.
The short answer
Which one you should pick
Both are free and self-hosted, so this is not about price. It is about whether you want a platform to build on or an answer to act on.
Choose SigNoz if
You want a telemetry platform you control
- You are already emitting OpenTelemetry, or you are happy to instrument everything with it.
- You want traces, logs and metrics correlated in one place, with a query builder over them.
- You want to build your own dashboards and alerts, and you have someone to run ClickHouse.
- You need distributed tracing across many services โ genuinely the thing Slowpoke does not do.
Choose Slowpoke if
You want the answer, not the data
- You have not instrumented anything, and you would rather not start with a month of OpenTelemetry work.
- You do not want to operate a ClickHouse cluster to find out why checkout is slow.
- You need the file and line behind each query โ which OpenTelemetry auto-instrumentation does not give you.
- You want the findings prioritised in business terms and turned into work that closes itself.
- You have three VPSes and a managed MySQL, not a service mesh.
Side by side
Slowpoke and SigNoz, line by line
Written to be fair, including where SigNoz 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 | SigNoz |
|---|---|---|
| What it is | A priced, ordered backlog of performance work | A telemetry store with an APM interface |
| Price | €0 | €0 for the open source core |
| What it costs to run | One 21 MB binary, SQLite or PostgreSQL | ClickHouse, and the disk and memory it wants |
| Before the first answer | One command per machine, about 15 minutes | Instrument your services with OpenTelemetry |
| Works with no instrumentation | Yes: access logs, slow logs, DB statistics, /proc | Little to show without OTel |
| Maps what you inherited | Reads sites, pools, databases, caches, apps and frameworks | Shows what you instrumented |
| Says what it cannot see | Yes, with the lines that fix it | — |
| Prioritised for you | Seconds of waiting per day, one list | Charts and a query builder |
| Code origin of a query | File and line, via framework packages | Auto-instrumentation points into vendor/ or sends nothing |
| Query plans with a fix | Real EXPLAIN, twelve named diagnoses | Query spans, no plan |
| Work that verifies itself | Missions closed by measurement | — |
| Distributed tracing | Not its job | Full trace waterfalls across services |
| Logs and metrics platform | Custom metrics only | Logs, metrics, traces, alerting |
The instrumentation you have to do first
SigNoz is OpenTelemetry-native, which is its great strength and also the bill you pay up front. Until your services emit OTel, there is not much to look at, and instrumenting a real estate โ several languages, some of them old โ is not an afternoon.
Slowpoke starts from what your servers already write. Access logs, the php-fpm slow log, the MySQL slow log and performance_schema, pg_stat_statements, Redis, /proc. Zero lines of application code changed, and the first priced items appear within fifteen minutes. OpenTelemetry is supported โ the agent receives OTLP directly โ but it is an upgrade, not a prerequisite.
What we learned trying to get code origins out of OpenTelemetry
This is worth saying plainly, because it cost us a lot of time. OpenTelemetry auto-instrumentation does not give a usable query origin in any language we tested. In Laravel the spans point into vendor/. In Python, Node and Go, nothing usable comes through at all. SQLAlchemy with psycopg2 nests two spans per statement. otelhttp sends no http.route. Laravel's instrumentation sends routes without a leading slash.
So "the slow query is in your code somewhere" is where an OTel-only tool leaves you. Slowpoke ships its own framework packages to close that gap: the Laravel package gives the file and line of every query for 2.0 ยตs per query โ 0.10 ms on a request with fifty of them โ with no OpenTelemetry SDK and no PHP extension. You can reproduce the number with ./bin/bench.
A store answers questions. Slowpoke asks them for you.
SigNoz will faithfully answer any question you know how to ask. That is exactly right when you understand the system and are investigating something specific.
The person Slowpoke is built for does not know what to ask yet. They started three weeks ago, they have been told the app is slow, and they need to walk into a planning meeting with an ordered list and a price. So Slowpoke ships one opinion โ cost is duration multiplied by frequency, measured in seconds of waiting per day โ applies it to endpoints, queries, jobs and scheduled commands alike, deduplicates so nothing is counted twice, and sorts.
Then it does the part a store structurally cannot: it turns the top of that list into missions with an owner and a finish line, and closes them only when the measured cost has stayed down for three windows.
Can you run both?
Yes, and they do not overlap much in practice. If you already run SigNoz, keep it for tracing and logs and let Slowpoke do prioritisation and the database work โ the Slowpoke agent can receive the same OTLP you are already emitting, so you are not instrumenting twice. Slowpoke also reads Prometheus and StatsD.
FAQ
Slowpoke and SigNoz, asked plainly
Is Slowpoke an alternative to SigNoz?
Do I need OpenTelemetry to use Slowpoke?
Does Slowpoke need ClickHouse?
Does Slowpoke do distributed tracing?
Find out what you inherited
Fifteen minutes on one server, and the first number is yours โ it costs nothing to find out.