See why a request is slow, down to the line of code.
Fig. 1 A checkout request, traced
1
Install the agent
Add one package and start your server with it. Spanrow finds your web framework, database clients and HTTP calls on its own.
npm install @spanrow/node
node -r @spanrow/node/auto server.js
2
Send real traffic
Every request becomes a trace: one row per step, timed to the microsecond, across each service it touches.
storefront-api 14 spans
pricing 24 spans
payments 3 spans
3
Open the slow one
Spanrow ranks requests by the time they cost you and names the span, the query and the line behind each one.
pricing/quote.ts:42
N+1 query, 23 calls
Before 4f1c9a2
1.31 s
After 4f1c9a2
0.44 s
Target
0.50 s
Every chart knows what you shipped.
Deploys show up as markers on your latency charts. When p95 moves, Spanrow names the release that moved it and links to the diff.
Maya Okafor, Staff Engineer at Halden
What Spanrow records
Everything below arrives from the one package in step 1.
Spans
Every call between services, with start time, duration and status.
Queries
The statement, row count and time of each database call, with values removed.
Logs
Log lines written during a span, attached to that span.
Deploys
Commit, author and time of each release, drawn on every chart.
Targets
A p95 goal for each route, and how much of this month’s budget is left.
Retention
30 days of full traces on Team, 90 days on Enterprise.
Free for one service. No card needed.