Skip to main content

See where every request spent its time.

Inspect traffic trends, request logs, platform spans, application OpenTelemetry, cold starts, and multiplexed function invocations in one place.

Notice the spike first

Request volume by status for every project, with the busiest and failing routes right underneath. Bandwidth, function errors, and compute have charts of their own.

Edge Requests
All requests at the edge
Last 6 hours
2XX
15,141
3XX
1,201
4XX
862
RouteRequests5xx
/api/checkout182K3,912
/294K0
/products/[slug]211K4

Find the requests behind it

Filter Logs by status, route, cache result, environment, or deployment. Every request shows whether a function ran, how the cache answered, and what the firewall decided.

Requests
status:5xx path:/api/checkout
Live
19:41:58POST502/api/checkout3Payment provider timed out
19:41:55POST502/api/checkout3Payment provider timed out
19:41:51POST200/api/checkout2Order 48213 confirmed
19:41:47POST502/api/checkout3Payment provider timed out
  1. 19:41:57.002[checkout] Creating charge for cart_9f2a
  2. 19:41:57.984[checkout] Payment provider timed out after 980ms
  3. 19:41:58.010Responded 502 in 1210ms

Follow one request through the stack

The trace starts at the edge and runs through routing, middleware, and your function. Your OpenTelemetry spans nest inside it, so the slow call stands out.

Easel platformApplicationExternal fetch
POST /api/checkout1.21s
Invoke function1.18s
POST /api/checkout1.15s
load cart
fetch POST api.payments.dev/v1/charges982ms
save order

Debug from your terminal

easel logs streams matching requests as they happen, with the same filters as the dashboard.

$ easel logs --follow --status-code 5xxFollowing production logs for lumen-chat…19:41:58  502  POST /api/checkout   1.21s19:41:55  502  POST /api/checkout   1.19s19:41:47  502  POST /api/checkout   1.24s

Built into every deployment

Nothing to install before the first request shows up.

  • OpenTelemetry without a collector

    Register @vercel/otel or the standard SDK. Spans arrive with the request; there is no endpoint to run.

  • Cache status on every request

    Each response carries X-Easel-Cache, and Logs filter by hit, miss, stale, or bypass.

  • Firewall decisions in Logs

    Blocked and challenged requests show the action and the rule that matched, next to the rest of your traffic.

  • Custom queries

    Chart any platform metric by route, status, or function, with p75, p90, p95, and p99.

Trace your next preview

Deploy an app, send it some traffic, and open Observability. Add OpenTelemetry to see your own spans inside every request.