# Outgoing HTTP request monitoring for Laravel, compared

> How Requizon compares to Laravel Nightwatch, NightOwl, Pulse, Telescope and Laravel Spy for
> monitoring the HTTP calls a Laravel application makes, and the other tools in the same space.

Source: https://requizon.boring-observability.dev/vs
Section: Comparisons — Requizon

---

## Tools with a dedicated comparison

### Requizon vs Laravel Nightwatch

Laravel's hosted monitoring service. An agent ships requests, queries, jobs, exceptions and outgoing requests to a dashboard run by Laravel.

- What it is: Hosted APM for the whole app
- Laravel Nightwatch licence: Hosted, free tier then from $20/mo by event volume
- Full comparison: https://requizon.boring-observability.dev/vs/nightwatch.md

**Bottom line:** If you want one tool for the whole application, Nightwatch is that tool, and its outgoing requests page answers "which host is slow" with counts, 4xx and 5xx splits and a p95. Requizon goes further on that one question: it groups by API, host and path, tells a timeout from a 500 from a 200 with an error in the body, keeps the body of what failed, and never samples. It also keeps everything in your own database for a single payment. Plenty of teams will want both.

### Requizon vs NightOwl

A monitoring dashboard for Laravel that runs Nightwatch's instrumentation and stores the telemetry in a PostgreSQL database you provide, read by a hosted dashboard.

- What it is: Nightwatch's capture, your own Postgres
- NightOwl licence: Hosted dashboard, flat plans from $5/mo
- Full comparison: https://requizon.boring-observability.dev/vs/nightowl.md

**Bottom line:** NightOwl is the answer if you like Nightwatch but not its event bill or its data centre: the same instrumentation, every event type, issues and alerts, stored in your own Postgres for a flat monthly price. For outgoing requests it inherits Nightwatch's record exactly, which means grouping by host, no bodies, sampling that follows the parent trace, and no row for a call that never got a response. Requizon records those, classifies failures, and keeps its dashboard inside your application. Use NightOwl for the application and Requizon for its dependencies, or Requizon alone if outgoing calls are what you need to watch.

### Requizon vs Laravel Pulse

Laravel's free, self-hosted performance dashboard. Its Slow Outgoing Requests card lists HTTP client calls that took longer than a threshold.

- What it is: Self-hosted dashboard, slow calls only
- Laravel Pulse licence: Free, MIT
- Full comparison: https://requizon.boring-observability.dev/vs/pulse.md

**Bottom line:** Pulse is free, already installed in a lot of applications, and its Slow Outgoing Requests card is a good answer to "which API is slow". It only sees calls over its threshold, a second by default, and it records how many and how slow, never the status. An API that fails in 80 ms is invisible to it. If failures and error rates are what you need to see, that is the gap Requizon fills, and the two run side by side without conflict.

### Requizon vs Laravel Telescope

Laravel's free debugging assistant. Its HTTP client watcher stores each outgoing request with headers, payload and response.

- What it is: Debugger, one entry per call
- Laravel Telescope licence: Free, MIT
- Full comparison: https://requizon.boring-observability.dev/vs/telescope.md

**Bottom line:** For local development Telescope is the better tool, and it costs nothing: every call with its headers, payload and response body, next to the queries and jobs around it. It is built to inspect individual entries, though. It keeps a day of data by default, draws no charts, and its default production filter does not keep outgoing requests at all. Requizon is built for the view Telescope does not have, which is how an API has behaved across the last fortnight.

### Requizon vs Laravel Spy

A free package that logs each outgoing HTTP call, with headers and bodies, to an http_logs table, with an optional summary dashboard.

- What it is: Logs every call to a table
- Laravel Spy licence: Free, MIT
- Full comparison: https://requizon.boring-observability.dev/vs/laravel-spy.md

**Bottom line:** If you need a record of exactly what was sent and received, call by call, Laravel Spy keeps it and costs nothing. It is a log: every header and body in a JSON column, a small dashboard of totals and top failing URLs, and queries you write for anything else. Requizon is built the other way round. Out of the box it keeps the response headers and the response body of a call that failed, and neither of them from a call that worked, and spends what it saves on failure types, per-path statistics, response-time charts and a year of history. Pick by the question: "what did we send them" is Spy, "how has this API been behaving" is Requizon.

## Other tools

### Laravel Blanket

- What it is: Logs calls, with a retry button
- Licence: Free, MIT
- Link: https://github.com/AhmadWaleed/laravel-blanket

Wraps Laravel's HTTP client, logs requests and responses with masking and pruning, and lets you retry a logged request from its dashboard. Its README calls it a "highly opinionated fun project" and points to other tools for serious monitoring, and the repository has had no commits since January 2023.

### Barstool

- What it is: Logs Saloon requests only
- Licence: Free, MIT
- Link: https://github.com/saloonphp/barstool

The Saloon project's own logger: every Saloon request and response, with its connector and request class, written to your database for you to query in a database tool. There is no dashboard. If all of your integrations are Saloon connectors, it records them with more context than a transport-level tool can. Requizon sees Saloon traffic once its middleware is on the Guzzle handler stack Saloon sends through.

### A general APM (Sentry, Inspector, Datadog)

- What it is: HTTP spans inside traces
- Licence: Usage-based subscription

Each of these records outgoing HTTP calls as spans in the trace of the request or job that made them, which is the right place to look when one request was slow. Per-API history is usually something you build from those spans with the vendor's query tools, and what you can keep is set by the plan's retention and sampling.

## Common questions

### How do I monitor outgoing HTTP requests in Laravel?

Every option hooks Laravel's HTTP client, and they differ in what they keep. Laravel Nightwatch groups outgoing requests by host inside a hosted APM, and NightOwl stores the same capture in your own PostgreSQL. Laravel Pulse lists the ones slower than a threshold. Laravel Telescope stores each call in full and, by default, only in local development. Logging packages such as Laravel Spy write every call to a table. Requizon records every call with its failure type, rolls them up by API, host and path, and charts them from your own database.

### Is there a free way to monitor third-party API calls in Laravel?

Yes. Pulse is free and shows slow outgoing requests, Telescope is free and shows every call in detail, and Laravel Spy is free and logs every call to your database. Nightwatch has a free tier of 300,000 events a month. What none of the free options give you is a failure rate per API over weeks, which is the part Requizon charges for.

### Which should I choose?

Start from the question you cannot answer today. "Which web request was slow, and why" is an APM question, and Nightwatch answers it for Laravel. "What exactly did we send and receive" is a logging question, answered by Telescope locally or Laravel Spy in production. "Which API is failing, and since when" is the question Requizon is built around.

### Do these tools conflict with each other?

No. Nightwatch (and NightOwl, which uses its instrumentation), Pulse, Telescope, Laravel Spy and Requizon all observe Laravel's HTTP client without changing the request, so any combination records the same calls independently. The cost of running several is one more recorder per call, each writing to its own storage.
