Performance monitoring

Find the slow request,
and what slowed it

LaraBug times every request and keeps the ones worth keeping. You get the endpoints that are slow, how often, and a waterfall of everything that happened inside the one you are looking at.

✔︎ 14-day free trial ✔︎ No credit card required

One request in the LaraBug panel: POST /checkout in 738ms, with its queries, the call to Mollie, the mail and the notification on one timeline
Timeline

A waterfall per request

Queries, cache, outgoing HTTP, mail and notifications on one timeline, in the order they ran, each with its own duration. The wide bar is the answer, and when the request ended in an error the issue is one click away.

POST /checkout 302 537ms

production • www.whiskerworks.shop • 1 in 5 sampled

Timeline Queries 9 Cache 2 Outgoing 1 Mail 1 Notifications 1
—134ms268ms402ms537ms
  • Bootstrap

    13ms
  • Before middleware

    3ms
  • Action 14

    514ms 96%
  • select * from `sessions` where `id` = ? limit 1 mysql

    <1ms
  • select * from `carts` where `session_id` = ? mysql

    <1ms
  • update `inventory` set `stock` = `stock` - ? mysql

    5ms
  • payment:methods hit

    <1ms
  • POST api.mollie.com/v2/payments 201

    238ms
  • insert into `orders` (`number`, `user_id`, …) mysql

    4ms
  • App\Mail\OrderConfirmation mail

    9ms
  • App\Notifications\NewOrderPlaced slack

    1ms
Routes

The slow endpoints, ranked

Every route with its p95, its throughput and its errors on one row, over the window you pick. The route that is slow for everyone stands out from the one that was slow once, and a route that is fast because it fails is never mistaken for a healthy one.

The routes list in the LaraBug panel: every route with its application, its request counts by status and its p95, the slowest first
Sampling

Sampled, so it is affordable

Full tracing on a busy app is a lot of data, so each application sets its own sample rate: one in five on the store, every request on the API. Whatever the rate, the slow and the failed are always kept, so the sample never hides the request you needed.

The head of a request in the LaraBug panel: POST /checkout, one in four sampled, with its duration, memory and what ran inside it
Performance monitoring

Every request, and what it raises

  • Requests Every route, with its p95, throughput and errors.
  • Traces A request, the job it queued and the job that one queued, as one trace.
  • Outgoing HTTP Calls through the HTTP client, timed, with failures.
  • Slow routes A route whose p95 has gone past its threshold.
  • Error rates A route failing more often than it should.
  • Large responses A response grown past the size you set.
  • High memory A route whose p95 memory spikes.
  • Slow dependencies An outgoing call that got slower.

All features

Keep reading

Catch the next bug before your users do

Two minutes to install, a free plan that stays free, and your data kept in the EU. Teams have trusted LaraBug with their Laravel errors since 2016.