Skip to content

Find the slow request, then the slow span.

Send OpenTelemetry traces and browser Web Vitals. Squasher charts p95 latency, draws each trace as a span waterfall, and links spans to logs by trace ID.

Free plan. No credit card required.

app.squasher.ai/acme/checkout-api/traces
POST/api/checkout8a71f0c24e9d4b1f9a3c6e2d7b5f0a14
Service
checkout-api
Duration
2.31 s
Spans
5
Status
Error
Span0 ms578 ms1.16 s1.73 s2.31 s
checkout-apiPOST/api/checkout
2.31 s
checkout-apicart.load
162 ms
pricingGET/prices
1.90 s
pricingdb.query prices
1.76 s
checkout-apiparseCurrency
4 ms

Example trace

Works with the tracing you already run.

  • OpenTelemetry
  • Node.js
  • Python
  • Go
  • Vercel

What you can see today.

Traces, latency, and real-user scores in the same project as your errors and logs.

  • Trace explorer

    Filter by service, root span, duration, HTTP method, status code, or errors. Sort by duration to find the slowest.

  • Span waterfall

    Search spans, show only errors, zoom up to 4×, and read each span's attributes, events, and links.

  • Latency trends

    p95 trace latency, error rate, and request volume for the project, on the dashboard home page.

  • Web Vitals

    LCP, INP, CLS, FCP, and TTFB from real users, from p50 to p99, by page, country, browser, and device.

  • Logs by trace ID

    Each trace lists its related logs. Each log with a trace ID opens its waterfall.

  • Uptime response times

    HTTP monitors record response time per check and region, and can mark a slow check degraded or failed.

The dashboard home page charts the numbers you check first when something feels slow.

  • p95 trace latency, error rate, and request volume, per time bucket.
  • Error rate is the share of traces with at least one error span.
  • squasher traces operations lists p50, p95, and error rate per operation.
  • Query spans with SQL from the CLI or MCP.
Traces API
app.squasher.ai/acme/checkout-api

Dashboard

Live traces, logs, metrics, and error health for this project.

Trace latency (p95)95th percentile trace latency per bucket.2.31 sLatest p95
Error rateShare of traces with at least one error span.4.8%Window rate
Request volumeTrace requests per bucket.48,210Last 1h

Example data

A failed span leads to its logs.

Slow and failed requests share one trace ID with the logs they wrote.

  • A span with ERROR status is also stored as an error log, with the same IDs.
  • Related logs on a trace lists every log line with its trace ID.
  • A log's Trace tab draws the waterfall around it.
  • With GitHub linked, spans with code attributes open the source file.
Error monitoring

Waterfalltrace 8a71f0c2

  1. POST /api/checkout
  2. cart.load
  3. pricing.load
  4. db.query prices
  5. render.total
  6. 0 msrender.total threw2.31 s

Related logssame trace ID

  1. 14:06:09infoPOST /api/checkout 200 188ms
  2. 14:06:11infocart.load cart=8f21 items=3
  3. 14:06:12warnpricing: price pending at render
  4. 14:06:12errorTypeError: reading 'amount' of undefined
  5. 14:06:14infoPOST /api/checkout 500 2.31s
  6. 14:06:15warnretry pricing.load attempt=2
  7. 14:06:16infoGET /api/cart 200 84ms
  8. 14:06:18errorTypeError: reading 'amount' of undefined
  9. 14:06:09infoPOST /api/checkout 200 188ms
  10. 14:06:11infocart.load cart=8f21 items=3
  11. 14:06:12warnpricing: price pending at render
  12. 14:06:12errorTypeError: reading 'amount' of undefined
  13. 14:06:14infoPOST /api/checkout 500 2.31s
  14. 14:06:15warnretry pricing.load attempt=2
  15. 14:06:16infoGET /api/cart 200 84ms
  16. 14:06:18errorTypeError: reading 'amount' of undefined

Example trace and logs.

Real-user Web Vitals, on by default.

The browser SDK measures Core Web Vitals from every visit, with no extra code.

  • LCP, INP, CLS, FCP, and TTFB, rated with the standard thresholds.
  • Pick p50, p75, p90, p95, or p99. p75 is the default.
  • Break scores down by page, country, browser, or device.
  • Alert with a query monitor on p75, p95, or the share of poor samples.
Browser SDK
app.squasher.ai/acme/checkout-web/web-vitals

Web vitals

Find slow, unstable, and unresponsive experiences in real-user data.

Web Vital scoresP75 scores and quality distribution for this range.18,251 measurements · 24h
LCPLargest renderNeeds improvement

3.1 sP75

18,204 samples · 58% good

INPResponsivenessGood

164 msP75

11,930 samples · 81% good

CLSVisual stabilityGood

0.04P75

18,187 samples · 92% good

FCPInitial renderGood

1.4 sP75

18,240 samples · 79% good

TTFBServer responseNeeds improvement

920 msP75

18,251 samples · 64% good

Example data

Send your first trace.

Keep your OpenTelemetry setup and point it at Squasher. Add the browser SDK for Web Vitals.

  1. Point your exporter at Squasher

    OTLP over HTTP, as protobuf or JSON. gRPC is not supported, so set the protocol.

    OTEL_EXPORTER_OTLP_ENDPOINT="https://ingest.squasher.ai"OTEL_EXPORTER_OTLP_HEADERS="x-squasher-key=$SQUASHER_API_KEY"OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"
    OpenTelemetry guide
  2. Add the browser SDK

    Initialize it once. Web Vitals, browser errors, and session replay start on their own.

    npm install @squasher-ai/browser
    Browser SDK
  3. Find the slowest trace

    Open Explore, switch to Traces, and sort by duration.

Paste into your coding agent
Install Squasher for this project. If Squasher skills or MCP are not configured in this agent environment, run `bash <(curl -fsSL https://squasher.ai/install.sh) --agents -y`. Then read https://skills.squasher.ai/squasher-onboard/SKILL.md, map every runnable app/service/worker/frontend/agent in the repo, choose the matching Squasher SDK, log drain, OTLP, or Agent SDK path, initialize with SQUASHER_API_KEY and SQUASHER_PROJECT_ID from environment variables, send one real verification event, and report the files changed plus the verification step. Do not hardcode or reveal real API keys.
bash <(curl -fsSL https://squasher.ai/install.sh) --agents -y

What is built, and what is not yet.

Squasher is not a full APM suite yet. Here is the line, so you can decide what to keep.

Distributed tracing

Status
Yes
Details
OTLP over HTTP, as protobuf or JSON. No gRPC.

Span waterfall

Status
Yes
Details
Search, errors only, zoom, attributes, events, and links.

Latency trends

Status
Yes
Details
p95 per trace on Home. p50 and p95 per operation in the CLI and API.

Real-user monitoring

Status
Yes
Details
Web Vitals and session replay.

Host metrics

Status
Yes
Details
CPU, memory, disk, and network from OpenTelemetry host metrics.

Service map

Status
Yes
Details
Services, their calls, and their databases, from your traces.

Latency alerts

Status
Partly
Details
Service p95 anomalies, Web Vitals, and uptime response time. No span duration threshold.

Browser-to-backend traces

Status
No
Details
The browser SDK does not send traceparent headers.

Profiling

Status
No
Details
Not available.

Database query insights

Status
No
Details
Not in the dashboard.

Checked against the product on September 24, 2026.

Questions, answered.

What is application performance monitoring (APM)?

APM measures how fast your application responds and where the time goes. It is usually built on distributed traces: a record of each request as it moves through your services, split into timed spans.

Is Squasher a full APM suite?

Not yet. Squasher has distributed traces, span waterfalls, p95 latency trends, a service map, release health, latency anomaly detection, real-user Web Vitals, and host metrics. It has no profiler, no database query view, and no threshold alerts on span duration. If you need those today, keep your APM and send the same traces to Squasher.

How do I send traces to Squasher?

Export OTLP over HTTP to https://ingest.squasher.ai/v1/traces with your API key in the x-squasher-key header. JSON and protobuf both work, with or without gzip. gRPC does not. On Vercel, the Squasher integration adds a trace drain for you.

Does Squasher instrument my code automatically?

Use the OpenTelemetry instrumentation for your language, and Squasher reads the spans it produces. The Squasher SDKs create spans in two places: Cloudflare Workers handlers wrapped with withSquasher, and Node.js handlers wrapped with withHttpRequest.

How do traces connect to errors and logs?

A span that ends with an ERROR status is also stored as an error log with the same trace and span IDs. A trace lists its related logs, and a log with a trace ID opens its waterfall.

Can I alert on latency?

Yes for Web Vitals, with a query monitor on p75, p95, or the share of poor samples, and for uptime checks that respond slowly. Not yet for span or trace duration.

How long does Squasher keep traces?

Traces are kept 7 to 30 days, depending on your plan. They count toward your plan's telemetry volume together with logs and metrics.

Can I sample traces?

The Squasher SDKs sample by trace ID, with separate rates for successful, failed, and slow requests. For tail sampling, run the OpenTelemetry Collector before you export.

Priced by volume, never by seat.

Start free. Invite the whole team. AI triage is included on every plan.

Compare every plan

Free

For side projects, evals, and internal tools.

$0/ month

No card needed. No overage charges.

Start free
10 GB telemetry
5K replays
500 AI credits

Included

  • AI triage on new issues
  • 500 AI credits / month (an investigation uses 50)
  • 1 project

Pro

For small production apps that want one tool, not five.

$29/ month

Flat price. No per-seat fees.

Start on Pro
100 GB telemetry
10K replays
3K AI credits

Everything in Free, plus

  • 3,000 AI credits / month (an investigation uses 50)
  • 5 projects
  • 30 monitors with 30-second checks

Team

Most Popular

For product teams replacing separate error, replay, and status tools.

$99/ month

Flat price. No per-seat fees.

Start on Team
250 GB telemetry
40K replays
12K AI credits

Everything in Pro, plus

  • 12,000 AI credits / month (an investigation uses 50)
  • Unlimited projects
  • 25 status pages

Scale

For high-volume teams with security, procurement, and support needs.

$299/ month

Flat price. No per-seat fees.

Start on Scale
1 TB telemetry
150K replays
30K AI credits

Everything in Team, plus

  • 30,000 AI credits / month (an investigation uses 50)
  • 100 status pages
  • 250 monitors with 30-second checks

Need more volume, a security review, or custom terms? Get in touch.

Go squash some bugs.

Connect one service and send one real event. The crew takes it from there.

Free plan. No credit card required.