Slowpoke vs Laravel Nightwatch
Nightwatch has the broadest Laravel-native instrumentation there is, and it is made by the people who make Laravel. It is also hosted only, Laravel only, and billed per event. Every query, job and cache hit counts as an event, so a single request can emit a dozen.
The short answer
Which one you should pick
If your world is one Laravel application and the bill stays inside the free tier, Nightwatch is hard to argue with. The calculation changes with traffic, with a second language, and with a security review.
Choose Laravel Nightwatch if
One Laravel app, and you want first-party depth
- You want the widest Laravel coverage available: requests, queries, exceptions, jobs, commands, schedules, cache, mail, notifications, outgoing requests, logs.
- Your whole estate is that one Laravel application.
- Your event volume fits comfortably inside the free tier, or the bill is acceptable.
- You would rather it was hosted, and sending application telemetry to a vendor is fine.
Choose Slowpoke if
More than Laravel, or a bill you do not want metered
- You also have a Django service, a WordPress install, or a Go binary nobody instrumented.
- The database server, the PHP-FPM pools and the queue machines are part of your problem.
- You do not want the bill to grow with exactly the traffic you are trying to make cheaper.
- Your data has to stay on your machines.
- You want the work prioritised and verified, not only recorded.
Side by side
Slowpoke and Laravel Nightwatch, line by line
Written to be fair, including where Laravel Nightwatch 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 | Laravel Nightwatch |
|---|---|---|
| Price model | €0, self-hosted, no meter | Per event: every query, job and cache hit counts |
| Free tier | Everything, forever | Up to 300,000 events a month |
| Cost at 1M+ events a month | €0 | Roughly $40 to $80 a month, overage about $0.35 per 100k |
| Hosting | Your machines | Hosted only |
| Languages covered | Any: logs, DB statistics and OTLP; packages for framework origins | Laravel |
| Covers the machine and database server | CPU, iowait, swap, OOM, disk, Redis, PHP-FPM pools | Application only |
| Laravel depth | Requests, queries, jobs, scheduled commands, code origins | Also cache, mail, notifications, outgoing requests, logs, users |
| Code origin of a query | File and line, 2.0 µs per query, no extension | Yes, first party |
| Query plans with a fix | Real EXPLAIN, twelve named diagnoses | No |
| Prioritised in business terms | Seconds of waiting per day | No |
| Work that verifies itself | Missions closed by measurement | No |
| Report for non-engineers | Effort, return per hour, budget, DORA | No |
| Read by your coding assistant | Missions over MCP | No |
An event is smaller than you think
Nightwatch Cloud is free below 300,000 events a month and billed per event above it, with overage around $0.35 per 100,000 on the lower paid tiers. The number that matters is what counts as an event: a request is one, and so is every query it runs, every job it queues, every cache hit and every outgoing call. An ordinary page with a dozen queries is therefore well over a dozen events.
A Laravel application doing a million events a month lands in the region of $40 to $80, and it scales from there with traffic. That is a reasonable price for the product. The trouble is the one every usage-priced observability tool has: the busier and less efficient your application is, the more it costs to watch, and busy and inefficient is exactly what you bought the tool to fix.
Slowpoke has no meter. It is open source, it runs on machines you already pay for, and the number of requests, queries and jobs it prices has no effect on what it costs you.
Our Laravel package, and what it costs your requests
We are not going to claim broader Laravel coverage than the Laravel team. Nightwatch instruments more of the framework than we do, and that is a real advantage inside Laravel.
What we did instead was make the one thing that matters most exact and cheap: the file and line behind every query. slowpoke/laravel costs 2.0 µs per query on PHP 7.4 and 1.9 µs on PHP 8.3. That is 0.10 ms for a request with fifty queries, about one ten-thousandth of a request that spends 800 ms in your code and your database. Run ./bin/bench and you get those numbers on your own machine.
It sends after the response, from a terminating callback, with a hard 0.1 second socket budget and every error swallowed: a missing or slow agent costs you one trace, never a request. It copies none of your data: backtraces are taken without arguments. It needs no OpenTelemetry SDK and no PHP extension, and it is tested from PHP 7.4 to 8.5 against Laravel 5.8 to 13.
The slow thing is often not in Laravel
An application-level tool sees the application. A large share of real slowness is somewhere else: a PHP-FPM pool with too few workers, a database server at 17% iowait, a Redis evicting its working set, a nightly schedule:run that overlaps the backup, a queue worker nobody has read since it was written, or the Django reporting service that shares the database.
Slowpoke's agent reads all of those on the machine itself, and prices them in the same unit as your Laravel routes, so they compete for attention on one list. It also runs EXPLAIN next to the database and tells you the index to add, which an application SDK has no way to do.
Can you run both?
Yes, though there is one thing to get right. Do not run both the Slowpoke Laravel package and OpenTelemetry auto-instrumentation in the same application, or every statement is reported twice. Slowpoke deduplicates its own sources, but two tracers describing the same query is a mess worth avoiding. Nightwatch and Slowpoke themselves coexist fine: neither sits in the request path.
FAQ
Slowpoke and Nightwatch, asked plainly
Is Slowpoke a free, self-hosted Nightwatch alternative?
How much does the Slowpoke Laravel package slow my app down?
Does Slowpoke work with older Laravel versions?
Does Slowpoke work with frameworks other than Laravel?
Find out what you inherited
Give it fifteen minutes on one server and the first number is yours. Finding out costs nothing.