Skip to content
This is a live Site & Rise template —Back to templates

API observability and incident alerting

Know which endpoint broke, and who to wake up.

Latency, errors, uptime, and log anomalies for every route you ship — with on-call routing attached to the same signal that found the problem.

No card. Free forever for one service. Install is one middleware — npm i @tracepoint/node

checkout-api
last 6h
p991,412msp95966msp50176ms
SEV2INC-2291 · 14:32

p99 above 800ms for 3m on POST /v2/checkout/:cartId

Paged @northwind/payments — Priya, 8s after detection

Median detect-to-page
8.4s
Ingest availability, trailing 90d
99.98%
Probe regions, all included
4
Full-resolution retention
30d

what it watches

Four signals, and no fifth one to configure

Everything Tracepoint collects exists to answer one of two questions: is this endpoint slow, and is this endpoint broken. Anything that does not help answer those is not in the product.

Latency

p50 / p95 / p99

Per-route percentiles, not a service-wide average. A p99 that doubles on one checkout endpoint is invisible in an aggregate and obvious here.

Every request is timed at the edge and bucketed by route pattern, so /orders/:id stays one series instead of fragmenting into a million cardinality bombs. Percentiles are computed over rolling one-minute windows and kept at full resolution for 24 hours, then rolled to five-minute buckets for the rest of retention.

Error rate

5xx + 4xx

Split by status class and by route, with the deploy SHA that was live when the rate moved.

5xx is the alerting default. 4xx is tracked separately because a spike in 401s is an auth regression and a spike in 404s is usually a broken client — treating them as one number hides both.

Availability

4 regions

Synthetic checks from four regions on a 30-second interval, with a two-region agreement rule before anything pages.

A single probe failing is a probe problem. Tracepoint requires two regions to agree before it opens an incident, which is the difference between an on-call rotation people trust and one they mute.

Log anomalies

baseline shift

Volume and pattern baselining per service, so a new stack trace appearing 400 times an hour raises itself.

Tracepoint fingerprints log lines into patterns and learns each pattern's normal hourly volume over 14 days. You get alerted on the shape changing — a novel pattern, or a known one moving several deviations — rather than on a keyword someone remembered to grep for.

the console

This is the screen you open at 2am

Not a marketing render — the real layout, on a sample workspace, mid-incident. The guided tour walks through what each panel is for.

Northwind Commerceproduction3

services

5
  • checkout-api1,412ms
  • catalog-api184ms
  • identity96ms
  • fulfilment308ms
  • webhooks-out742ms

owner: @northwind/payments

checkout-api · latency

p99 1,412ms
09:0010:0011:0012:0013:0014:00

5xx rate · peak 3.34%

deploys in window

2
  • 9d3be71checkout-api · 14:10suspected cause
  • a41f0c2catalog-api · 12:00

slowest routes

by p99
routep99err
POST/v2/checkout/:cartId1,412ms3.10%
POST/v2/checkout/:cartId/pay884ms1.40%
GET/v2/cart/:cartId212ms0.02%
GET/v2/products/:sku141ms0.01%
POST/v2/sessions96ms0.11%

open incidents

3
  • SEV2INC-2291 · 14:32unacked

    p99 latency above 1s on POST /v2/checkout/:cartId

    @northwind/payments · Priya on call

  • SEV3INC-2290 · 14:33ack 14:35

    5xx rate above 1% on POST /v2/checkout/:cartId

    @northwind/payments · Priya on call

  • SEV3INC-2287 · 14:36ack 14:38

    Novel log pattern: PoolTimeoutError, 312/hr

    @northwind/platform · Sam on call

attached logs · INC-2291

novel pattern
  • 14:32:04warnpool.acquire waited 2140ms (size=10, in_use=10)
  • 14:32:06errorPoolTimeoutError: could not acquire connection in 3000ms
  • 14:32:06infocheckout.cart_id=c_8812f retry=1 backoff=250ms
  • 14:32:09errorPoolTimeoutError: could not acquire connection in 3000ms
  • 14:32:11warnpool.acquire waited 2884ms (size=10, in_use=10)

PoolTimeoutError · 312/hr · first seen today

service map

observed
edgeidentitycatalog-apicheckout-apipayments-pgfulfilment

instead of

The two things teams do instead

Most teams find out an endpoint is failing from a customer, then spend the first ten minutes of an incident deciding which dashboard to open. Tracepoint watches every route you ship — p50/p95/p99 latency, error rate, availability, and unusual log volume — and pages the owning engineer with the specific endpoint, the deploy that changed it, and the last fifty matching log lines already attached.

Rolling your own

Prometheus, Grafana, Alertmanager, Loki, and a synthetic checker is four services to run, four upgrade paths, and a recording-rules file only one person on the team understands. It works. It also costs roughly a quarter of an engineer forever, and the alert routing is the part that always stays half-finished.


Tracepoint is one agent and one config file. Export to Prometheus and Grafana whenever you want the raw series back — the endpoint is documented, not a retention hostage.

Enterprise APM

Per-host pricing on a platform priced for a 500-engineer org, an eleven-week onboarding, and a bill that reprices itself the month you autoscale. Most of the surface is features a nine-person backend team will never open.


Usage-based on events ingested, with a hard cap you set. No per-seat charge, no per-host charge, and the price a scaling event produces is one you can compute in advance from the calculator on the pricing page.

built for

Teams with a rotation and no observability team

01

Backend teams of 5 to 40

Big enough to have a real on-call rotation, small enough that nobody's full-time job is the observability stack.

02

Platform teams supporting product squads

One ingest config per service, ownership routed from your existing service catalog, and per-team views that don't require an admin to create.

03

API-first companies

If your product is the endpoint, the p99 on it is the product's quality. Tracepoint is built around route patterns rather than around hosts.

pricing

Priced on events, not on engineers

Three tiers, one metered dimension, and a calculator that will tell you what a traffic spike costs before it happens.

Starter

$0

For a single service and a team that wants to see whether any of this is true before paying for it.

Team

most teams

$90/mo

The plan almost everyone runs. Every signal, every region, full on-call routing, and a price that moves with traffic rather than with headcount.

Enterprise

Custom

For teams with a compliance surface: single-tenant deployment, audit trails, and a support agreement with a number in it.

questions

The ones engineers actually ask

Point it at one service and see if we are telling the truth

The free plan covers a single service forever, with latency percentiles, error rates, and alerting. If the first incident it catches is one you would have heard about from a customer, that is the whole pitch.